0001437749-24-014358.txt : 20240502 0001437749-24-014358.hdr.sgml : 20240502 20240502160520 ACCESSION NUMBER: 0001437749-24-014358 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 73 CONFORMED PERIOD OF REPORT: 20240331 FILED AS OF DATE: 20240502 DATE AS OF CHANGE: 20240502 FILER: COMPANY DATA: COMPANY CONFORMED NAME: NORTHWEST PIPE CO CENTRAL INDEX KEY: 0001001385 STANDARD INDUSTRIAL CLASSIFICATION: STEEL PIPE & TUBES [3317] ORGANIZATION NAME: 04 Manufacturing IRS NUMBER: 930557988 STATE OF INCORPORATION: OR FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 000-27140 FILM NUMBER: 24908094 BUSINESS ADDRESS: STREET 1: 201 NE PARK PLAZA DRIVE STREET 2: SUITE 100 CITY: VANCOUVER STATE: WA ZIP: 98684 BUSINESS PHONE: 3603976250 MAIL ADDRESS: STREET 1: 201 NE PARK PLAZA DRIVE STREET 2: SUITE 100 CITY: VANCOUVER STATE: WA ZIP: 98684 10-Q 1 nwpx20240331_10q.htm FORM 10-Q nwpx20240331_10q.htm
0001001385 Northwest Pipe Co. false --12-31 Q1 2024 159 121 129,510 126,359 0.01 0.01 10,000,000 10,000,000 0 0 0 0 0.01 0.01 15,000,000 15,000,000 9,872,897 9,872,897 9,985,580 9,985,580 0 11 8 0 5 58 6.6 1.1 6.4 1.1 6.7 1.1 6.4 1.1 1 64 0.75 28 1 2019 2020 2021 2022 2023 2024 false false false false The number of PSAs disclosed in this table are at the target level of 100%. The weighted-average number of antidilutive shares not included in the computation of diluted net income per share was approximately 6,000 for the three months ended March 31, 2024. There were no antidilutive shares for the three months ended March 31, 2023. 00010013852024-01-012024-03-31 xbrli:shares 00010013852024-04-23 iso4217:USD 00010013852023-01-012023-03-31 iso4217:USDxbrli:shares 0001001385us-gaap:PensionPlansDefinedBenefitMember2024-01-012024-03-31 0001001385us-gaap:PensionPlansDefinedBenefitMember2023-01-012023-03-31 0001001385us-gaap:ForeignExchangeForwardMember2024-01-012024-03-31 0001001385us-gaap:ForeignExchangeForwardMember2023-01-012023-03-31 0001001385us-gaap:InterestRateSwapMember2024-01-012024-03-31 0001001385us-gaap:InterestRateSwapMember2023-01-012023-03-31 00010013852024-03-31 00010013852023-12-31 0001001385us-gaap:CommonStockMember2023-12-31 0001001385us-gaap:AdditionalPaidInCapitalMember2023-12-31 0001001385us-gaap:RetainedEarningsMember2023-12-31 0001001385us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-12-31 0001001385us-gaap:CommonStockMember2024-01-012024-03-31 0001001385us-gaap:AdditionalPaidInCapitalMember2024-01-012024-03-31 0001001385us-gaap:RetainedEarningsMember2024-01-012024-03-31 0001001385us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-01-012024-03-31 0001001385us-gaap:PensionPlansDefinedBenefitMemberus-gaap:CommonStockMember2024-01-012024-03-31 0001001385us-gaap:PensionPlansDefinedBenefitMemberus-gaap:AdditionalPaidInCapitalMember2024-01-012024-03-31 0001001385us-gaap:PensionPlansDefinedBenefitMemberus-gaap:RetainedEarningsMember2024-01-012024-03-31 0001001385us-gaap:PensionPlansDefinedBenefitMemberus-gaap:AccumulatedOtherComprehensiveIncomeMember2024-01-012024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:CommonStockMember2024-01-012024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:AdditionalPaidInCapitalMember2024-01-012024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:RetainedEarningsMember2024-01-012024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:AccumulatedOtherComprehensiveIncomeMember2024-01-012024-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:CommonStockMember2024-01-012024-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:AdditionalPaidInCapitalMember2024-01-012024-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:RetainedEarningsMember2024-01-012024-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:AccumulatedOtherComprehensiveIncomeMember2024-01-012024-03-31 0001001385us-gaap:CommonStockMember2024-03-31 0001001385us-gaap:AdditionalPaidInCapitalMember2024-03-31 0001001385us-gaap:RetainedEarningsMember2024-03-31 0001001385us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-03-31 0001001385us-gaap:CommonStockMember2022-12-31 0001001385us-gaap:AdditionalPaidInCapitalMember2022-12-31 0001001385us-gaap:RetainedEarningsMember2022-12-31 0001001385us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-12-31 00010013852022-12-31 0001001385us-gaap:CommonStockMember2023-01-012023-03-31 0001001385us-gaap:AdditionalPaidInCapitalMember2023-01-012023-03-31 0001001385us-gaap:RetainedEarningsMember2023-01-012023-03-31 0001001385us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-01-012023-03-31 0001001385us-gaap:PensionPlansDefinedBenefitMemberus-gaap:CommonStockMember2023-01-012023-03-31 0001001385us-gaap:PensionPlansDefinedBenefitMemberus-gaap:AdditionalPaidInCapitalMember2023-01-012023-03-31 0001001385us-gaap:PensionPlansDefinedBenefitMemberus-gaap:RetainedEarningsMember2023-01-012023-03-31 0001001385us-gaap:PensionPlansDefinedBenefitMemberus-gaap:AccumulatedOtherComprehensiveIncomeMember2023-01-012023-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:CommonStockMember2023-01-012023-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:AdditionalPaidInCapitalMember2023-01-012023-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:RetainedEarningsMember2023-01-012023-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:AccumulatedOtherComprehensiveIncomeMember2023-01-012023-03-31 0001001385us-gaap:CommonStockMember2023-03-31 0001001385us-gaap:AdditionalPaidInCapitalMember2023-03-31 0001001385us-gaap:RetainedEarningsMember2023-03-31 0001001385us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-03-31 00010013852023-03-31 xbrli:pure 0001001385nwpx:DeferredCompensationPlanMember2024-03-31 0001001385nwpx:DeferredCompensationPlanMemberus-gaap:FairValueInputsLevel1Member2024-03-31 0001001385nwpx:DeferredCompensationPlanMemberus-gaap:FairValueInputsLevel2Member2024-03-31 0001001385nwpx:DeferredCompensationPlanMemberus-gaap:FairValueInputsLevel3Member2024-03-31 0001001385us-gaap:ForeignExchangeForwardMember2024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:FairValueInputsLevel1Member2024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:FairValueInputsLevel2Member2024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:FairValueInputsLevel3Member2024-03-31 0001001385us-gaap:InterestRateSwapMember2024-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:FairValueInputsLevel1Member2024-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:FairValueInputsLevel2Member2024-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:FairValueInputsLevel3Member2024-03-31 0001001385us-gaap:FairValueInputsLevel1Member2024-03-31 0001001385us-gaap:FairValueInputsLevel2Member2024-03-31 0001001385us-gaap:FairValueInputsLevel3Member2024-03-31 0001001385nwpx:DeferredCompensationPlanMember2023-12-31 0001001385nwpx:DeferredCompensationPlanMemberus-gaap:FairValueInputsLevel1Member2023-12-31 0001001385nwpx:DeferredCompensationPlanMemberus-gaap:FairValueInputsLevel2Member2023-12-31 0001001385nwpx:DeferredCompensationPlanMemberus-gaap:FairValueInputsLevel3Member2023-12-31 0001001385us-gaap:ForeignExchangeForwardMember2023-12-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:FairValueInputsLevel1Member2023-12-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:FairValueInputsLevel2Member2023-12-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:FairValueInputsLevel3Member2023-12-31 0001001385us-gaap:InterestRateSwapMember2023-12-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:FairValueInputsLevel1Member2023-12-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:FairValueInputsLevel2Member2023-12-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:FairValueInputsLevel3Member2023-12-31 0001001385us-gaap:FairValueInputsLevel1Member2023-12-31 0001001385us-gaap:FairValueInputsLevel2Member2023-12-31 0001001385us-gaap:FairValueInputsLevel3Member2023-12-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:DesignatedAsHedgingInstrumentMember2024-03-31 iso4217:CAD 0001001385nwpx:ForeignExchangeForward1Memberus-gaap:DesignatedAsHedgingInstrumentMember2024-03-31 iso4217:EUR 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:NondesignatedMember2024-03-31 0001001385nwpx:ForeignExchangeForward1Memberus-gaap:NondesignatedMember2024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:DesignatedAsHedgingInstrumentMember2023-12-31 0001001385nwpx:ForeignExchangeForward1Memberus-gaap:DesignatedAsHedgingInstrumentMember2023-12-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:NondesignatedMember2023-12-31 0001001385nwpx:ForeignExchangeForward1Memberus-gaap:NondesignatedMember2023-12-31 0001001385nwpx:The1941InterestRateSwapMember2024-03-31 0001001385nwpx:The1941InterestRateSwapMemberus-gaap:CashFlowHedgingMember2024-03-31 0001001385nwpx:The1941InterestRateSwapMemberus-gaap:CashFlowHedgingMember2023-12-31 0001001385nwpx:The296InterestRateSwapMemberus-gaap:CashFlowHedgingMember2023-04-03 0001001385nwpx:The296InterestRateSwapMemberus-gaap:CashFlowHedgingMember2024-03-31 0001001385nwpx:The296InterestRateSwapMemberus-gaap:CashFlowHedgingMember2023-12-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:NondesignatedMemberus-gaap:SalesMember2024-01-012024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:NondesignatedMemberus-gaap:SalesMember2023-01-012023-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:NondesignatedMembernwpx:PropertyAndEquipmentMember2024-01-012024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:NondesignatedMembernwpx:PropertyAndEquipmentMember2023-01-012023-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:NondesignatedMemberus-gaap:InterestExpenseMember2024-01-012024-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:NondesignatedMemberus-gaap:InterestExpenseMember2023-01-012023-03-31 0001001385us-gaap:NondesignatedMember2024-01-012024-03-31 0001001385us-gaap:NondesignatedMember2023-01-012023-03-31 0001001385nwpx:ReclassifiedToNetSalesMember2024-01-012024-03-31 0001001385nwpx:ReclassifiedToInterestExpenseMember2024-01-012024-03-31 0001001385nwpx:ShareRepurchaseProgramMember2023-11-02 0001001385nwpx:ShareRepurchaseProgramMember2023-12-01 0001001385nwpx:ShareRepurchaseProgramMember2024-01-012024-03-31 0001001385nwpx:ShareRepurchaseProgramMember2023-01-012023-03-31 0001001385us-gaap:CostOfSalesMember2024-01-012024-03-31 0001001385us-gaap:CostOfSalesMember2023-01-012023-03-31 0001001385us-gaap:SellingGeneralAndAdministrativeExpensesMember2024-01-012024-03-31 0001001385us-gaap:SellingGeneralAndAdministrativeExpensesMember2023-01-012023-03-31 0001001385nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember2023-12-31 0001001385nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember2024-01-012024-03-31 0001001385nwpx:RestrictedStockUnitsMember2024-01-012024-03-31 0001001385nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember2024-03-31 0001001385us-gaap:PerformanceSharesMember2024-03-31 0001001385us-gaap:PerformanceSharesMembersrt:MinimumMember2024-01-012024-03-31 0001001385us-gaap:PerformanceSharesMembersrt:MaximumMember2024-01-012024-03-31 utr:Y 0001001385nwpx:LowerWillametteGroupMember2017-01-31 0001001385nwpx:PortlandHarborSuperfundSiteMember2017-01-012017-01-31 0001001385nwpx:PortlandHarborSuperfundSiteMember2017-01-31 0001001385nwpx:PortlandHarborNaturalreSourcesTrusteeCouncilMember2014-06-30 0001001385us-gaap:CapitalAdditionsMember2024-03-31 0001001385us-gaap:TransferredOverTimeMember2024-01-012024-03-31 0001001385us-gaap:TransferredOverTimeMember2023-01-012023-03-31 0001001385us-gaap:TransferredAtPointInTimeMember2024-01-012024-03-31 0001001385us-gaap:TransferredAtPointInTimeMember2023-01-012023-03-31 00010013852024-04-012024-03-31 00010013852025-01-012024-03-31 thunderdome:item 0001001385us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember2023-12-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2023-12-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2023-12-31 0001001385us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember2024-01-012024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2024-01-012024-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2024-01-012024-03-31 0001001385us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember2024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2024-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2024-03-31 0001001385us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember2022-12-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2022-12-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2022-12-31 0001001385us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember2023-01-012023-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2023-01-012023-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2023-01-012023-03-31 0001001385us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember2023-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2023-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2023-03-31 0001001385us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMemberus-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember2024-01-012024-03-31 0001001385us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMemberus-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember2023-01-012023-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2024-01-012024-03-31 0001001385us-gaap:ForeignExchangeForwardMemberus-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2023-01-012023-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2024-01-012024-03-31 0001001385us-gaap:InterestRateSwapMemberus-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMemberus-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember2023-01-012023-03-31 0001001385us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember2024-01-012024-03-31 0001001385us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember2023-01-012023-03-31 0001001385us-gaap:OperatingSegmentsMembernwpx:EngineeredSteelPressurePipeMember2024-01-012024-03-31 0001001385us-gaap:OperatingSegmentsMembernwpx:EngineeredSteelPressurePipeMember2023-01-012023-03-31 0001001385us-gaap:OperatingSegmentsMembernwpx:PrecastInfrastructureAndEngineeredSystemsMember2024-01-012024-03-31 0001001385us-gaap:OperatingSegmentsMembernwpx:PrecastInfrastructureAndEngineeredSystemsMember2023-01-012023-03-31 0001001385us-gaap:OperatingSegmentsMember2024-01-012024-03-31 0001001385us-gaap:OperatingSegmentsMember2023-01-012023-03-31
 

Table of Contents



UNITED STATES

SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

 

FORM 10-Q

 

QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934

 

For the quarterly period ended: March 31, 2024

or

 

TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934

 

For the transition period from _______to _______

 

Commission File Number: 0-27140

 

NORTHWEST PIPE COMPANY

(Exact name of registrant as specified in its charter)

 

Oregon

93-0557988

(State or other jurisdiction of incorporation or organization)

(I.R.S. Employer Identification No.)

 

201 NE Park Plaza Drive, Suite 100

Vancouver, Washington 98684

(Address of principal executive offices and Zip Code)

 

3603976250

(Registrant’s telephone number, including area code)

 

Securities registered pursuant to Section 12(b) of the Act:

 

Title of each class

Trading Symbol(s)

Name of each exchange on which registered

Common Stock, par value $0.01 per share

NWPX

Nasdaq Global Select Market

 

Indicate by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days. Yes ☒ No ☐

 

Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S‑T (§232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files). Yes ☒ No ☐

 

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 “large accelerated filer,” “accelerated filer,” “smaller reporting company,” and “emerging growth company” in Rule 12b‑2 of the Exchange Act.

 

Large accelerated filer

Accelerated filer

Non-accelerated filer

Smaller reporting company

  

Emerging growth company

 

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. ☐

 

Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b‑2 of the Exchange Act). Yes No ☒

 

The number of shares outstanding of the registrant’s common stock as of April 23, 2024 was 9,915,489 shares.



 

 

NORTHWEST PIPE COMPANY

FORM 10Q

TABLE OF CONTENTS

 

 

Page

PARTI- FINANCIAL INFORMATION

 
   

Item1. Financial Statements (Unaudited):

 
   

Condensed Consolidated Statements of Operations for the three months ended March 31, 2024 and 2023

2
   

Condensed Consolidated Statements of Comprehensive Income for the three months ended March 31, 2024 and 2023

3
   

Condensed Consolidated Balance Sheets as of March 31, 2024 and December31, 2023

4
   

Condensed Consolidated Statements of Stockholders’ Equity for the three months ended March 31, 2024 and 2023

5
   

Condensed Consolidated Statements of Cash Flows for the three months ended March 31, 2024 and 2023

6

   

Notes to Condensed Consolidated Financial Statements

7
   

Item2. Managements Discussion and Analysis of Financial Condition and Results of Operations

19
   

Item3. Quantitative and Qualitative Disclosures About Market Risk

25
   

Item4. Controls and Procedures

25
   

PARTII- OTHER INFORMATION

 
   

Item1. Legal Proceedings

25
   

Item1A. Risk Factors

26
   
Item 2. Unregistered Sales of Equity Securities and Use of Proceeds 26
   

Item5. Other Information

26
   

Item6. Exhibits

27
   

Signatures

28
 

 

 

PartI FINANCIAL INFORMATION

 

Item1. Financial Statements

 

NORTHWEST PIPE COMPANY AND SUBSIDIARIES

CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS

(Unaudited)

(In thousands, except per share amounts)

 

   

Three Months Ended March 31,

 
   

2024

   

2023

 
                 

Net sales

  $ 113,215     $ 99,097  

Cost of sales

    93,081       82,520  

Gross profit

    20,134       16,577  

Selling, general, and administrative expense

    11,444       11,866  

Operating income

    8,690       4,711  

Other income (expense)

    7       (29 )

Interest expense

    (1,474 )     (1,369 )

Income before income taxes

    7,223       3,313  

Income tax expense

    1,985       951  

Net income

  $ 5,238     $ 2,362  
                 

Net income per share:

               

Basic

  $ 0.53     $ 0.24  

Diluted

  $ 0.52     $ 0.23  
                 

Shares used in per share calculations:

               

Basic

    9,916       9,940  

Diluted

    10,045       10,087  

 

The accompanying notes are an integral part of these condensed consolidated financial statements.

 

 

NORTHWEST PIPE COMPANY AND SUBSIDIARIES

CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME

(Unaudited)

(In thousands)

 

   

Three Months Ended March 31,

 
   

2024

   

2023

 
                 

Net income

  $ 5,238     $ 2,362  
                 

Other comprehensive income (loss), net of tax:

               

Pension liability adjustment

    21       29  

Unrealized gain on foreign currency forward contracts designated as cash flow hedges

    10       22  

Unrealized gain (loss) on interest rate swaps designated as cash flow hedges

    24       (178 )

Other comprehensive income (loss), net of tax

    55       (127 )
                 

Comprehensive income

  $ 5,293     $ 2,235  

 

The accompanying notes are an integral part of these condensed consolidated financial statements.

 

 

NORTHWEST PIPE COMPANY AND SUBSIDIARIES

CONDENSED CONSOLIDATED BALANCE SHEETS

(Unaudited)

(Dollar amounts in thousands, except per share amounts)

 

  

March 31, 2024

  

December 31, 2023

 

Assets

        

Current assets:

        

Cash and cash equivalents

 $4,262  $4,068 

Trade and other receivables, net of allowance of $159 and $121

  52,396   47,645 

Contract assets

  135,715   120,516 

Inventories

  96,481   91,229 

Prepaid expenses and other

  7,840   9,026 

Total current assets

  296,694   272,484 

Property and equipment, less accumulated depreciation and amortization of $129,510 and $126,359

  145,323   143,955 

Operating lease right-of-use assets

  86,978   88,155 

Goodwill

  55,504   55,504 

Intangible assets, net

  30,066   31,074 

Other assets

  6,735   6,709 

Total assets

 $621,300  $597,881 
         

Liabilities and Stockholders’ Equity

        

Current liabilities:

        

Current debt

 $10,756  $10,756 

Accounts payable

  26,365   31,142 

Accrued liabilities

  22,489   27,913 

Contract liabilities

  18,596   21,450 

Current portion of operating lease liabilities

  5,067   4,933 

Total current liabilities

  83,273   96,194 

Borrowings on line of credit

  89,863   54,485 

Operating lease liabilities

  84,211   85,283 

Deferred income taxes

  10,863   10,942 

Other long-term liabilities

  10,476   10,617 

Total liabilities

  278,686   257,521 
         

Commitments and contingencies (Note 7)

          
         

Stockholders’ equity:

        

Preferred stock, $.01 par value, 10,000,000 shares authorized, none issued or outstanding

  -   - 

Common stock, $.01 par value, 15,000,000 shares authorized, 9,872,897 and 9,985,580 shares issued and outstanding as of March 31, 2024 and December 31, 2023, respectively

  99   100 

Additional paid-in-capital

  126,057   129,095 

Retained earnings

  217,363   212,125 

Accumulated other comprehensive loss

  (905)  (960)

Total stockholders’ equity

  342,614   340,360 

Total liabilities and stockholders’ equity

 $621,300  $597,881 

 

The accompanying notes are an integral part of these condensed consolidated financial statements.

 

 

NORTHWEST PIPE COMPANY AND SUBSIDIARIES

CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY

(Unaudited)

(Dollar amounts in thousands)

 

                  

Accumulated

     
          

Additional

      

Other

  

Total

 
  

Common Stock

  

Paid-In-

  

Retained

  

Comprehensive

  

Stockholders’

 
  

Shares

  

Amount

  

Capital

  

Earnings

  

Loss

  

Equity

 
                         

Balances, December 31, 2023

  9,985,580  $100  $129,095  $212,125  $(960) $340,360 

Net income

  -   -   -   5,238   -   5,238 

Other comprehensive income:

                        

Pension liability adjustment, net of tax expense of $0

  -   -   -   -   21   21 

Unrealized gain on foreign currency forward contracts designated as cash flow hedges, net of tax expense of $11

  -   -   -   -   10   10 

Unrealized gain on interest rate swaps designated as cash flow hedges, net of tax expense of $8

  -   -   -   -   24   24 

Issuance of common stock under stock compensation plans, net of tax withholdings

  14,692   -   (320)  -   -   (320)

Repurchase of common stock

  (127,375)  (1)  (3,743)  -   -   (3,744)

Share-based compensation expense

  -   -   1,025   -   -   1,025 

Balances, March 31, 2024

  9,872,897  $99  $126,057  $217,363  $(905) $342,614 

 

                  

Accumulated

     
          

Additional

      

Other

  

Total

 
  

Common Stock

  

Paid-In-

  

Retained

  

Comprehensive

  

Stockholders’

 
  

Shares

  

Amount

  

Capital

  

Earnings

  

Loss

  

Equity

 
                         

Balances, December 31, 2022

  9,927,360  $99  $127,911  $191,053  $(789) $318,274 

Net income

  -   -   -   2,362   -   2,362 

Other comprehensive income (loss):

                        

Pension liability adjustment, net of tax expense of $0

  -   -   -   -   29   29 

Unrealized gain on foreign currency forward contracts designated as cash flow hedges, net of tax expense of $5

  -   -   -   -   22   22 

Unrealized loss on interest rate swap designated as cash flow hedge, net of tax benefit of $58

  -   -   -   -   (178)  (178)

Issuance of common stock under stock compensation plans, net of tax withholdings

  70,932   1   (423)  -   -   (422)

Share-based compensation expense

  -   -   990   -   -   990 

Balances, March 31, 2023

  9,998,292  $100  $128,478  $193,415  $(916) $321,077 

 

 

NORTHWEST PIPE COMPANY AND SUBSIDIARIES

CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS

(Unaudited)

(In thousands)

 

   

Three Months Ended March 31,

 
   

2024

   

2023

 

Cash flows from operating activities:

               

Net income

  $ 5,238     $ 2,362  

Adjustments to reconcile net income to net cash provided by (used in) operating activities:

               

Depreciation and finance lease amortization

    3,405       2,799  

Amortization of intangible assets

    1,008       1,061  

Deferred income taxes

    (80 )     635  

Share-based compensation expense

    1,025       990  

Other, net

    159       473  

Changes in operating assets and liabilities:

               

Trade and other receivables

    (4,965 )     11,026  

Contract assets, net

    (18,054 )     13,775  

Inventories

    (5,252 )     59  

Prepaid expenses and other assets

    2,616       2,359  

Accounts payable

    (4,777 )     (1,518 )

Accrued and other liabilities

    (6,412 )     (7,739 )

Net cash provided by (used in) operating activities

    (26,089 )     26,282  
                 

Cash flows from investing activities:

               

Purchases of property and equipment

    (4,570 )     (4,382 )

Other investing activities

    48       -  

Net cash used in investing activities

    (4,522 )     (4,382 )
                 

Cash flows from financing activities:

               

Borrowings on line of credit

    64,664       34,602  

Repayments on line of credit

    (29,286 )     (55,682 )

Payments on finance lease obligations

    (381 )     (145 )

Tax withholdings related to net share settlements of equity awards

    (320 )     (422 )

Repurchase of common stock

    (3,872 )     -  

Net cash provided by (used in) financing activities

    30,805       (21,647 )

Change in cash and cash equivalents

    194       253  

Cash and cash equivalents, beginning of period

    4,068       3,681  

Cash and cash equivalents, end of period

  $ 4,262     $ 3,934  
                 

Noncash investing and financing activities:

               

Accrued property and equipment purchases

  $ 783     $ 750  

Right-of-use assets obtained in exchange for operating lease liabilities

    303       -  

Right-of-use assets obtained in exchange for finance lease liabilities

    233       394  

 

The accompanying notes are an integral part of these condensed consolidated financial statements.

 

 

NORTHWEST PIPE COMPANY AND SUBSIDIARIES

NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS

(Unaudited)

 

 

1.

Organization and Basis of Presentation

 

Northwest Pipe Company (collectively with its subsidiaries, the “Company”) is a leading manufacturer of water-related infrastructure products, and operates in two segments, Engineered Steel Pressure Pipe (“SPP”) and Precast Infrastructure and Engineered Systems (“Precast”). This segment presentation is consistent with how the Company’s chief operating decision maker, its Chief Executive Officer, evaluates the performance of the Company and makes decisions regarding the allocation of resources. See Note 12, “Segment Information” for detailed descriptions of these segments.

 

In addition to being the largest manufacturer of engineered steel water pipeline systems in North America, the Company manufactures stormwater and wastewater technology products; high-quality precast and reinforced concrete products; pump lift stations; steel casing pipe, bar-wrapped concrete cylinder pipe, and one of the largest offerings of pipeline system joints, fittings, and specialized components. Strategically positioned to meet growing water and wastewater infrastructure needs, the Company provides solution-based products for a wide range of markets under the ParkUSA, Geneva Pipe and Precast, Permalok®, and Northwest Pipe Company lines. The Company is headquartered in Vancouver, Washington, and has 13 manufacturing facilities across North America.

 

The Condensed Consolidated Financial Statements are expressed in United States Dollars and include the accounts of the Company and its subsidiaries over which the Company exercises control as of the financial statement date. Intercompany accounts and transactions have been eliminated.

 

The accompanying unaudited interim Condensed Consolidated Financial Statements have been prepared in conformity with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial information. The financial information as of December 31, 2023 is derived from the audited Consolidated Financial Statements presented in the Company’s Annual Report on Form 10‑K for the year ended December 31, 2023 (“2023 Form 10‑K”). Certain information and footnote disclosures normally included in consolidated financial statements prepared in accordance with U.S. GAAP have been condensed or omitted, pursuant to the rules and regulations of the Securities and Exchange Commission and the accounting standards for interim financial statements. In the opinion of management, the accompanying Condensed Consolidated Financial Statements include all adjustments necessary (which are of a normal and recurring nature) for the fair statement of the results of the interim periods presented. The Condensed Consolidated Financial Statements should be read in conjunction with the Consolidated Financial Statements and Notes thereto together with management’s discussion and analysis of financial condition and results of operations contained in the Company’s 2023 Form 10‑K.

 

Operating results for the three months ended March 31, 2024 are not necessarily indicative of the results that may be expected for the entire fiscal year ending December 31, 2024.

 

 

2.

Inventories

 

Inventories consist of the following (in thousands):

 

  

March 31, 2024

  

December 31, 2023

 
         

Raw materials

 $71,801  $68,110 

Work-in-process

  9,084   8,912 

Finished goods

  13,274   11,911 

Supplies

  2,322   2,296 

Total inventories

 $96,481  $91,229 

 

7

 

3.

Fair Value Measurements

 

Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability, in the principal or most advantageous market for the asset or liability, in an orderly transaction between market participants at the measurement date.

 

The authoritative guidance establishes a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels. These levels are: Level 1 (inputs are quoted prices in active markets for identical assets or liabilities); Level 2 (inputs are other than quoted prices that are observable, either directly or indirectly through corroboration with observable market data); and Level 3 (inputs are unobservable, with little or no market data that exists, such as internal financial forecasts). The Company is required to maximize the use of observable inputs and minimize the use of unobservable inputs when measuring fair value.

 

The following table summarizes information regarding the Company’s financial assets and liabilities that are measured at fair value on a recurring basis (in thousands):

 

  

Total

  

Level 1

  

Level 2

  

Level 3

 

As of March 31, 2024

                

Financial assets:

                

Deferred compensation plan

 $3,960  $3,485  $475  $- 

Foreign currency forward contracts

  14   -   14   - 

Interest rate swaps

  358   -   358   - 

Total financial assets

 $4,332  $3,485  $847  $- 
                 

As of December 31, 2023

                

Financial assets:

                

Deferred compensation plan

 $3,912  $3,391  $521   - 

Foreign currency forward contracts

  42   -   42   - 

Interest rate swaps

  326   -   326   - 

Total financial assets

 $4,280  $3,391  $889  $- 
                 

Financial liabilities:

                

Foreign currency forward contracts

 $(115) $-  $(115) $- 

 

The deferred compensation plan assets consist of cash and several publicly traded stock and bond mutual funds, valued using quoted market prices in active markets, classified as Level 1 within the fair value hierarchy, as well as guaranteed investment contracts, valued at principal plus interest credited at contract rates, classified as Level 2 within the fair value hierarchy. Deferred compensation plan assets are included within Other assets in the Condensed Consolidated Balance Sheets.

 

The foreign currency forward contracts and interest rate swaps are derivatives valued using various pricing models or discounted cash flow analyses that incorporate observable market parameters, such as interest rate yield curves and currency rates, and are classified as Level 2 within the fair value hierarchy. Derivative valuations incorporate credit risk adjustments that are necessary to reflect the probability of default by the counterparty or the Company. The foreign currency forward contracts and interest rate swaps are presented at their gross fair values. Foreign currency forward contract and interest rate swap assets are included within Prepaid expenses and other and foreign currency forward contract liabilities are included within Accrued liabilities in the Condensed Consolidated Balance Sheets.

 

The net carrying amounts of cash and cash equivalents, trade and other receivables, accounts payable, accrued liabilities, and current debt approximate fair value due to the short-term nature of these instruments. The net carrying amount of the borrowings on the line of credit approximates fair value due to its variable interest rate based on market.

 

8

 

4.

Derivative Instruments and Hedging Activities

 

In the normal course of business, the Company is exposed to interest rate and foreign currency exchange rate fluctuations. Consistent with the Company’s strategy for financial risk management, the Company has established a program that utilizes foreign currency forward contracts and interest rate swaps to offset the risks associated with the effects of these exposures.

 

For each derivative entered into in which the Company seeks to obtain cash flow hedge accounting treatment, the Company formally documents all relationships between hedging instruments and hedged items, as well as its risk management objective and strategy for undertaking the hedge transaction, the nature of the risk being hedged, how the hedging instrument’s effectiveness in offsetting the hedged risk will be assessed prospectively and retrospectively, and a description of the method of measuring ineffectiveness. This process includes linking all derivatives to specific firm commitments or forecasted transactions and designating the derivatives as cash flow hedges. The Company also formally assesses, both at the hedge’s inception and on an ongoing basis, whether the derivatives that are used in hedging transactions are highly effective in offsetting changes in cash flows of hedged items. The effective portion of these hedged items is reflected in Unrealized gain (loss) on cash flow hedges on the Condensed Consolidated Statements of Comprehensive Income. If it is determined that a derivative is not highly effective, or that it has ceased to be a highly effective hedge, the Company is required to discontinue hedge accounting with respect to that derivative prospectively.

 

As of March 31, 2024, the total notional amount of the foreign currency forward contracts was $4.9 million (CAD$6.6 million) and $1.1 million (EUR€1.1 million), which included $4.8 million (CAD$6.4 million) and $1.1 million (EUR€1.1 million) of foreign currency forward contracts not designated as cash flow hedges. As of December 31, 2023, the total notional amount of the foreign currency forward contracts was $5.1 million (CAD$6.7 million) and $1.2 million (EUR€1.1 million), which included $4.9 million (CAD$6.4 million) and $1.2 million (EUR€1.1 million) of foreign currency forward contracts not designated as cash flow hedges. As of March 31, 2024, the Company’s foreign currency forward contracts mature at various dates through April 2025 and are subject to an enforceable master netting arrangement.

 

The Company has entered into interest rate swaps which effectively convert a portion of its variable-rate debt to fixed-rate debt, and are designated as cash flow hedges. For one cash flow hedge, the Company receives floating interest payments monthly based on Secured Overnight Finance Rate (“SOFR”) and pays a fixed rate of 1.941% to the counterparty on the total notional amount of $1.7 million and $6.7 million as of March 31, 2024 and December 31, 2023, respectively, which amortizes ratably on a monthly basis to zero by the April 2024 maturity date. For a second cash flow hedge, beginning April 3, 2023, the Company receives floating interest payments monthly based on the SOFR Average 30 day and pays a fixed rate of 2.96% to the counterparty on the total notional amount of $12.3 million and $13.0 million as of March 31, 2024 and December 31, 2023, respectively, which amortizes ratably on a monthly basis to zero by the April 2028 maturity date.

 

The following table summarizes the gains (losses) recognized on derivatives in the Condensed Consolidated Financial Statements (in thousands):

 

  

Three Months Ended March 31,

 
  

2024

  

2023

 

Foreign currency forward contracts:

        

Net sales

 $100  $(282)

Property and equipment

  -   (87)
         

Interest rate swaps:

        

Interest expense

  120   158 

Total

 $220  $(211)

 

As of March 31, 2024, unrealized pretax gains (losses) on outstanding cash flow hedges in Accumulated other comprehensive loss was $0.4 million, of which approximately $0 and $0.2 million are expected to be reclassified to Net sales and Interest expense, respectively, within the next twelve months as a result of underlying hedged transactions also being recorded in these line items. See Note 10, “Accumulated Other Comprehensive Loss” for additional quantitative information regarding foreign currency forward contract and interest rate swap gains and losses.

 

9

 

5.

Stockholders’ Equity

 

Share Repurchase Program

 

On November 2, 2023, the Company announced its authorization of a share repurchase program of up to $30 million of its outstanding common stock. The program does not commit to any particular timing or quantity of purchases, and the program may be suspended or discontinued at any time. Under the program, shares may be purchased in open market, including through plans adopted pursuant to Rule 10b5‑1 of the Securities Exchange Act of 1934, as amended, or in privately negotiated transactions administered by its broker, D.A. Davidson Companies. At this time, the Company has elected to limit its share repurchase transactions to only those under the Rule 10b5‑1 trading plan it executed in November 2023, which designates up to $10 million for daily share repurchases with volumes that fluctuate with changes in the trading price of its common stock.

 

During the three months ended March 31, 2024, the Company repurchased approximately 127,000 shares of the Company’s common stock for an aggregate amount of $3.7 million. There were no share repurchases authorized during the three months ended March 31, 2023. All shares reacquired in connection with the Company’s share repurchase program are retired and treated as authorized and unissued shares. As of March 31, 2024, $25.4 million of the share repurchase authorization remained available for repurchases under this program.

 

 

6.

Share-based Compensation

 

The Company has one active stock incentive plan for employees and directors, the 2022 Stock Incentive Plan, which provides for awards of stock options to purchase shares of common stock, stock appreciation rights, restricted and unrestricted shares of common stock, restricted stock units (“RSUs”), and performance share awards (“PSAs”). In addition, the Company has one inactive stock incentive plan, the 2007 Stock Incentive Plan, under which previously granted awards remain outstanding.

 

The Company recognizes the compensation cost of employee and director services received in exchange for awards of equity instruments based on the grant date estimated fair value of the awards. The Company estimates the fair value of RSUs and PSAs using the value of the Company’s stock on the date of grant. Share-based compensation cost is recognized over the period during which the employee or director is required to provide service in exchange for the award and, as forfeitures occur, the associated compensation cost recognized to date is reversed. For awards with performance-based payout conditions, the Company recognizes compensation cost based on the probability of achieving the performance conditions, with changes in expectations recognized as an adjustment to earnings in the period of change. Any recognized compensation cost is reversed if the conditions are ultimately not met.

 

The following table summarizes share-based compensation expense recorded (in thousands):

 

  

Three Months Ended March 31,

 
  

2024

  

2023

 
         

Cost of sales

 $352  $275 

Selling, general, and administrative expense

  673   715 

Total

 $1,025  $990 

 

10

 

Restricted Stock Units and Performance Share Awards

 

The Company’s stock incentive plan provides for equity instruments, such as RSUs and PSAs, which grant the right to receive a specified number of shares at specified times. RSUs and PSAs are service-based awards that vest according to the terms of the grant. PSAs have performance-based payout conditions.

 

The following table summarizes the Company’s RSU and PSA activity:

 

  

Number of RSUs and PSAs (1)

  

Weighted-Average Grant Date Fair Value

 
         

Unvested RSUs and PSAs as of December 31, 2023

  226,391  $29.66 

RSUs and PSAs granted

  120,143   34.68 

RSUs vested

  (25,819)  30.35 

Unvested RSUs and PSAs as of March 31, 2024

  320,715   31.49 

 

(1)

The number of PSAs disclosed in this table are at the target level of 100%.

 

The unvested balance of RSUs and PSAs as of March 31, 2024 includes approximately 260,000 PSAs at the target level of 100%. The vesting of these awards is subject to the achievement of specified performance-based conditions, and the actual number of common shares that will ultimately be issued will be determined by multiplying this number of PSAs by a payout percentage ranging from 0% to 200%.

 

Based on the estimated level of achievement of the performance targets associated with the PSAs as of March 31, 2024, unrecognized compensation expense related to the unvested portion of the Company’s RSUs and PSAs was $6.9 million, which is expected to be recognized over a weighted-average period of 2.0 years.

 

 

7.

Commitments and Contingencies

 

Portland Harbor Superfund Site

 

In 2000, a section of the lower Willamette River known as the Portland Harbor Superfund Site was included on the National Priorities List at the request of the United States Environmental Protection Agency (“EPA”). While the Company’s Portland, Oregon manufacturing facility does not border the Willamette River, an outfall from the facility’s stormwater system drains into a neighboring property’s privately owned stormwater system and slip. Also in 2000, the Company was notified by the EPA and the Oregon Department of Environmental Quality (“ODEQ”) of potential liability under the Comprehensive Environmental Response, Compensation, and Liability Act (“CERCLA”). A remedial investigation and feasibility study of the Portland Harbor Superfund Site was directed by a group of 14 potentially responsible parties known as the Lower Willamette Group under agreement with the EPA. The EPA finalized the remedial investigation report in 2016, and the feasibility study in 2016, which identified multiple remedial alternatives. In 2017, the EPA issued its Record of Decision selecting the remedy for cleanup at the Portland Harbor Superfund Site, which it believes will cost approximately $1 billion at net present value and 13 years to complete. The EPA has not yet determined who is responsible for the costs of cleanup or how the cleanup costs will be allocated among the more than 150 potentially responsible parties. Because of the large number of potentially responsible parties and the variability in the range of remediation alternatives, the Company is unable to estimate an amount or an amount within a range of costs for its obligation with respect to the Portland Harbor Superfund Site matters, and no further adjustment to the Consolidated Financial Statements has been recorded as of the date of this filing.

 

The ODEQ is separately providing oversight of voluntary investigations and source control activities by the Company involving the Company’s site, which are focused on controlling any current “uplands” releases of contaminants into the Willamette River. No liabilities have been established in connection with these investigations because the extent of contamination and the Company’s responsibility for the contamination have not yet been determined.

 

11

 

Concurrent with the activities of the EPA and the ODEQ, the Portland Harbor Natural Resources Trustee Council (“Trustees”) sent some or all of the same parties, including the Company, a notice of intent to perform a Natural Resource Damage Assessment (“NRDA”) for the Portland Harbor Superfund Site to determine the nature and extent of natural resource damages under CERCLA Section 107. The Trustees for the Portland Harbor Superfund Site consist of representatives from several Northwest Indian Tribes, three federal agencies, and one state agency. The Trustees act independently of the EPA and the ODEQ. The Trustees have encouraged potentially responsible parties to voluntarily participate in the funding of their injury assessments and several of those parties have agreed to do so. In 2014, the Company agreed to participate in the injury assessment process, which included funding $0.4 million of the assessment. The Company has not assumed any additional payment obligations or liabilities with the participation with the NRDA, nor does the Company expect to incur significant future costs in the resolution of the NRDA.

 

In 2017, the Confederated Tribes and Bands of the Yakama Nation, a Trustee until they withdrew from the council in 2009, filed a complaint against the potentially responsible parties including the Company to recover costs related to their own injury assessment and compensation for natural resources damages. The case has been stayed until 2025, and the Company does not have sufficient information at this time to determine the likelihood of a loss in this matter or the amount of damages that could be allocated to the Company.

 

The Company has insurance policies for defense costs, as well as indemnification policies it believes will provide reimbursement for the remediation assessed. However, the Company can provide no assurance that those policies will cover all of the costs which the Company may incur.

 

All Sites

 

The Company operates its facilities under numerous governmental permits and licenses relating to air emissions, stormwater runoff, and other environmental matters. The Company’s operations are also governed by many other laws and regulations, including those relating to workplace safety and worker health, principally the Occupational Safety and Health Act and regulations thereunder which, among other requirements, establish noise and dust standards. The Company believes it is in material compliance with its permits and licenses and these laws and regulations, and the Company does not believe that future compliance with such laws and regulations will have a material adverse effect on its financial position, results of operations, or cash flows.

 

Other Contingencies and Legal Proceedings

 

From time to time, the Company is party to a variety of legal actions, including claims, suits, complaints, and investigations arising out of the ordinary course of its business. The Company maintains insurance coverage against potential claims in amounts that are believed to be adequate. To the extent that insurance does not cover legal, defense, and indemnification costs associated with a loss contingency, the Company records accruals when such losses are considered probable and reasonably estimable. The Company believes that it is not presently a party to legal actions, the outcomes of which would have a material adverse effect on its business, financial condition, results of operations, or cash flows.

 

Commitments

 

As of March 31, 2024, the Company’s commitments include approximately $1.1 million remaining relating to its investment in the primary component of the new reinforced concrete pipe mill for which the Company has not yet received the equipment and approximately $4.6 million remaining relating to the construction of a building for the new mill at the Company’s facility in Salt Lake City, Utah.

 

Guarantees

 

The Company has entered into certain letters of credit that total $1.1 million as of March 31, 2024. The letters of credit relate to workers’ compensation insurance.

 

12

 

8.

Revenue

 

The Company manufactures water infrastructure steel pipe products, which are generally made to custom specifications for installation contractors serving projects funded by public water agencies, as well as precast and reinforced concrete products. Generally, each of the Company’s contracts with its customers contains a single performance obligation, as the promise to transfer products is not separately identifiable from other promises in the contract and, therefore, is not distinct. The Company generally does not recognize revenue on a contract until the contract has approval and commitment from both parties, the contract rights and payment terms can be identified, the contract has commercial substance, and its collectability is probable.

 

SPP revenue for water infrastructure steel pipe products is recognized over time as the manufacturing process progresses because of the Company’s right to payment for work performed to date plus a reasonable profit on cancellations for unique products that have no alternative use to the Company. Revenue is measured by the costs incurred to date relative to the estimated total direct costs to fulfill each contract (cost-to-cost method). Contract costs include all material, labor, and other direct costs incurred in satisfying the performance obligations. The cost of steel material is recognized as a contract cost when the steel is introduced into the manufacturing process. Changes in job performance, job conditions, and estimated profitability, including those arising from contract change orders, contract penalty provisions, foreign currency exchange rate movements, changes in raw materials costs, and final contract settlements may result in revisions to estimates of revenue, costs, and income, and are recognized in the period in which the revisions are determined. Provisions for losses on uncompleted contracts, included in Accrued liabilities, are estimated by comparing total estimated contract revenue to the total estimated contract costs and a loss is recognized during the period in which it becomes probable and can be reasonably estimated.

 

Net revisions in contract estimates resulted in an increase in SPP net sales of $1.9 million and $0.4 million for the three months ended March 31, 2024 and 2023, respectively.

 

Precast revenue for water infrastructure concrete pipe and precast concrete products is recognized at the time control is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for the products. All variable consideration that may affect the total transaction price, including contractual discounts, returns, and credits, is included in net sales. Estimates for variable consideration are based on historical experience, anticipated performance, and management’s judgment. The Company’s contracts do not contain significant financing.

 

Disaggregation of Revenue

 

The following table disaggregates revenue by recognition over time or at a point in time, as the Company believes it best depicts how the nature, amount, timing, and uncertainty of its revenue and cash flows are affected by economic factors (in thousands):

 

  

Three Months Ended March 31,

 
  

2024

  

2023

 
         

Over time

 $80,007  $63,546 

Point in time

  33,208   35,551 

Net sales

 $113,215  $99,097 

 

13

 

Contract Assets and Contract Liabilities

 

Contract assets primarily represent revenue earned over time but not yet billable based on the terms of the contracts. These amounts will be billed based on the terms of the contracts, which can include certain milestones, partial shipments, or completion of the contracts. Payment terms of amounts billed vary based on the customer, but are typically due within 30 days of invoicing. Contract liabilities represent advance billings on contracts, typically for steel.

 

The difference between the opening and closing balances of the Company’s contract assets and contract liabilities primarily results from the timing difference between the Company’s performance and billings.

 

The following is a summary of the changes in contract assets (in thousands):

 

  Three Months Ended March 31, 
  

2024

  

2023

 
         

Balance, beginning of period

 $120,516  $121,778 

Revenue recognized in advance of billings

  70,640   53,048 

Billings

  (54,772)  (56,916)

Other

  (669)  (1,569)

Balance, end of period

 $135,715  $116,341 

 

The following is a summary of the changes in contract liabilities (in thousands):

 

  Three Months Ended March 31, 
  

2024

  

2023

 
         

Balance, beginning of period

 $21,450  $17,456 

Billings

  6,512   18,675 

Revenue recognized

  (9,367)  (10,498)

Other

  1   161 

Balance, end of period

 $18,596  $25,794 

 

Backlog

 

Backlog represents the balance of remaining performance obligations under signed contracts for SPP water infrastructure steel pipe products for which revenue is recognized over time. As of March 31, 2024, backlog was $255 million. The Company expects to recognize approximately 64% of the remaining performance obligations in 2024, 28% in 2025, and the balance thereafter.

 

 

9.

Income Taxes

 

The Company files income tax returns in the United States Federal jurisdiction, in a limited number of foreign jurisdictions, and in many state jurisdictions. With few exceptions, the Company is no longer subject to United States Federal, state, or foreign income tax examinations for years before 2019.

 

The Company recorded income tax expense at an estimated effective income tax rate of 27.5% and 28.7% for the three months ended March 31, 2024 and 2023, respectively. The Company’s estimated effective income tax rates for the three months ended March 31, 2024 and 2023 were primarily impacted by non-deductible permanent differences.

 

14

 

10.

Accumulated Other Comprehensive Loss

 

The following tables summarize changes in the components of Accumulated other comprehensive loss (in thousands). All amounts are net of income tax:

 

  

Pension Liability Adjustment

  

Unrealized Loss on Foreign Currency Forward Contracts Designated as Cash Flow Hedges

  

Unrealized Gain on Interest Rate Swaps Designated as Cash Flow Hedges

  

Total

 
                 

Balances, December 31, 2023

 $(1,193) $(13) $246  $(960)
                 

Other comprehensive income before reclassifications

  18   8   115   141 

Amounts reclassified from Accumulated other comprehensive loss

  3   2   (91)  (86)

Net current period other comprehensive income

  21   10   24   55 
                 

Balances, March 31, 2024

 $(1,172) $(3) $270  $(905)
                 
  Pension Liability Adjustment  Unrealized Gain on Foreign Currency Forward Contracts Designated as Cash Flow Hedges  Unrealized Gain on Interest Rate Swaps Designated as Cash Flow Hedges  Total 
                 

Balances, December 31, 2022

 $(1,532) $94  $649  $(789)
                 

Other comprehensive income (loss) before reclassifications

  26   (10)  (59)  (43)

Amounts reclassified from Accumulated other comprehensive loss

  3   32   (119)  (84)

Net current period other comprehensive income (loss)

  29   22   (178)  (127)
                 

Balances, March 31, 2023

 $(1,503) $116  $471  $(916)

 

15

 

The following table provides additional detail about Accumulated other comprehensive loss components that were reclassified to the Condensed Consolidated Statements of Operations (in thousands):

 

  

Amount reclassified from Accumulated Other Comprehensive Loss

  

Affected line item in the Condensed Consolidated

Details about Accumulated Other

 

Three Months Ended March 31,

  

Statements

Comprehensive Loss Components

 

2024

  

2023

  

of Operations

           

Pension liability adjustment:

          

Net periodic pension cost:

          

Service cost

 $(3) $(3) 

Cost of sales

   (3)  (3) 

Net of tax

           

Unrealized gain (loss) on foreign currency forward contracts:

          

Gain (loss) on cash flow hedges

  (2)  44  

Net sales

Loss on cash flow hedges

  -   (87) 

Property and equipment

Associated income tax benefit

  -   11  

Income tax expense

   (2)  (32) 

Net of tax

           

Unrealized gain on interest rate swaps:

          

Gain on cash flow hedges

  120   158  

Interest expense

Associated income tax expense

  (29)  (39) 

Income tax expense

   91   119  

Net of tax

           

Total reclassifications for the period

 $86  $84   

 

 

11.

Net Income per Share

 

Basic net income per share is computed by dividing the net income by the weighted-average number of shares of common stock outstanding during the period. Diluted net income per share is computed by giving effect to all dilutive potential shares of common stock, including RSUs and PSAs, assumed to be outstanding during the period using the treasury stock method. Performance-based PSAs are considered dilutive when the related performance conditions have been met assuming the end of the reporting period represents the end of the performance period. In periods with a net loss, all potential shares of common stock are excluded from the computation of diluted net loss per share as the impact would be antidilutive.

 

16

 

Net income per basic and diluted weighted-average common share outstanding was calculated as follows (in thousands, except per share amounts):

 

  

Three Months Ended March 31,

 
  

2024

  

2023

 
         

Net income

 $5,238  $2,362 
         

Basic weighted-average common shares outstanding

  9,916   9,940 

Effect of potentially dilutive common shares (1)

  129   147 

Diluted weighted-average common shares outstanding

  10,045   10,087 
         

Net income per common share:

        

Basic

 $0.53  $0.24 

Diluted

 $0.52  $0.23 

 

 

(1)

The weighted-average number of antidilutive shares not included in the computation of diluted net income per share was approximately 6,000 for the three months ended March 31, 2024. There were no antidilutive shares for the three months ended March 31, 2023.

 

 

12.

Segment Information

 

The operating segments reported below are based on the nature of the products sold and the manufacturing process used by the Company and are the segments of the Company for which separate financial information is available and for which operating results are regularly evaluated by the Company’s chief operating decision maker, its Chief Executive Officer, to make decisions about resources to be allocated to the segment and assess its performance. Management evaluates segment performance based on gross profit. The Company does not allocate selling, general, and administrative expenses, interest, other non-operating income or expense items, or taxes to segments.

 

The Company’s Engineered Steel Pressure Pipe (SPP) segment manufactures large-diameter, high-pressure steel pipeline systems for use in water infrastructure applications, which are primarily related to drinking water systems. These products are also used for hydroelectric power systems, wastewater systems, seismic resiliency, and other applications. In addition, SPP makes products for industrial plant piping systems and certain structural applications. SPP has manufacturing facilities located in Portland, Oregon; Adelanto and Tracy, California; Parkersburg, West Virginia; Saginaw, Texas; St. Louis, Missouri; and San Luis Río Colorado, Mexico.

 

The Company’s Precast Infrastructure and Engineered Systems (Precast) segment manufactures stormwater and wastewater technology products, high-quality precast and reinforced concrete products, including reinforced concrete pipe, manholes, box culverts, vaults, and catch basins, pump lift stations, oil water separators, biofiltration units, and other environmental and engineered solutions. Precast has manufacturing facilities located in Dallas, Houston, and San Antonio, Texas; and Orem, Salt Lake City, and St. George, Utah.

 

17

 

The following table disaggregates revenue and gross profit based on the Company’s reportable segments (in thousands):

 

  

Three Months Ended March 31,

 
  

2024

  

2023

 

Net sales:

        

Engineered Steel Pressure Pipe

 $80,007  $63,546 

Precast Infrastructure and Engineered Systems

  33,208   35,551 

Total net sales

 $113,215  $99,097 
         

Gross profit:

        

Engineered Steel Pressure Pipe

 $14,242  $7,782 

Precast Infrastructure and Engineered Systems

  5,892   8,795 

Total gross profit

 $20,134  $16,577 

 

 

13.

Recent Accounting and Reporting Developments

 

There have been no developments to recently issued accounting standards, including the expected dates of adoption and estimated effects on the Company’s Condensed Consolidated Financial Statements and disclosures in Notes to Condensed Consolidated Financial Statements, from those disclosed in the Company’s 2023 Form 10‑K, except for the following.

 

Accounting Changes

 

In March 2023, the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) No. 2023‑01 “Leases (Topic 842): Common Control Arrangements” (“ASU 2023‑01”) which requires leasehold improvements associated with common control leases be (1) amortized by the lessee over the useful life of the leasehold improvements to the common control group as long as the lessee controls the use of the underlying asset through a lease and (2) accounted for as a transfer between entities under common control through an adjustment to equity if, and when, the lessee no longer controls the use of the underlying asset. The Company adopted ASU 2023‑01 on January 1, 2024 and the impact was not material to its financial position, results of operations, or cash flows.

 

Recent Accounting Standards

 

In November 2023, the FASB issued ASU No. 2023‑07, “Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures” (“ASU 2023‑07”) which requires disclosure of incremental segment information, primarily through enhanced disclosures about significant segment expenses, on an annual and interim basis for all public entities. ASU 2023‑07 will be applied retrospectively, and will be effective for the Company’s 2024 annual reporting, and for interim periods beginning in 2025, with early adoption permitted. The Company does not expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.

 

In December 2023, the FASB issued ASU No. 2023‑09, “Income Taxes (Topic 740): Improvements to Income Tax Disclosures” (“ASU 2023‑09”) which improves the transparency, effectiveness, and comparability of income tax disclosures and allows investors to better assess, in their capital allocation decisions, how an entity’s worldwide operations and related tax risks and tax planning and operation opportunities affect its income tax rate and prospects for future cash flows. ASU 2023‑09 will be applied prospectively, and will be effective for the Company’s 2025 annual reporting, with early adoption permitted. The Company is currently assessing the impact of ASU 2023‑09 on its disclosures in the notes to the consolidated financial statements.

 

18

 

Item2. Managements Discussion and Analysis of Financial Condition and Results of Operations

 

Forward-Looking Statements

 

This Management’s Discussion and Analysis of Financial Condition and Results of Operations and other sections of this Quarterly Report on Form 10‑Q for the quarter ended March 31, 2024 (“2024 Q1 Form 10‑Q”) contain “forward-looking statements” within the meaning of the Private Securities Litigation Reform Act of 1995 and Section 21E of the Securities Exchange Act of 1934, as amended, that are based on current expectations, estimates, and projections about our business, management’s beliefs, and assumptions made by management. Words such as “expects,” “anticipates,” “intends,” “plans,” “believes,” “seeks,” “estimates,” “forecasts,” “should,” “could,” and variations of such words and similar expressions are intended to identify such forward-looking statements. These statements are not guarantees of future performance and involve risks and uncertainties that are difficult to predict. Therefore, actual outcomes and results may differ materially from what is expressed or forecasted in such forward-looking statements as a result of a variety of important factors. While it is impossible to identify all such factors, those that could cause actual results to differ materially from those estimated by us include:

 

 

changes in demand and market prices for our products;

 

product mix;

 

bidding activity and order modifications or cancelations;

 

timing of customer orders and deliveries;

 

production schedules;

 

price and availability of raw materials;

 

excess or shortage of production capacity;

 

international trade policy and regulations;

 

changes in tariffs and duties imposed on imports and exports and related impacts on us;

 

economic uncertainty and associated trends in macroeconomic conditions, including potential recession, inflation, and the state of the housing market;

 

interest rate risk and changes in market interest rates, including the impact on our customers and related demand for our products;

 

our ability to identify and complete internal initiatives and/or acquisitions in order to grow our business;

 

our ability to effectively integrate future acquisitions into our business and operations and achieve significant administrative and operational cost synergies and accretion to financial results;

 

effects of security breaches, computer viruses, and cybersecurity incidents;

  timing and amount of share repurchases;
 

impacts of U.S. tax reform legislation on our results of operations;

 

adequacy of our insurance coverage;

 

supply chain challenges;

 

labor shortages;

 

ongoing military conflicts in areas such as Ukraine and Israel, and related consequences;

 

operating problems at our manufacturing operations including fires, explosions, inclement weather, and floods and other natural disasters;

 

material weaknesses in our internal control over financial reporting and our ability to remediate such weaknesses;

 

impacts of pandemics, epidemics, or other public health emergencies; and

 

other risks discussed in Part I — Item 1A. “Risk Factors” of our Annual Report on Form 10‑K for the year ended December 31, 2023 (“2023 Form 10‑K”) and from time to time in our other Securities and Exchange Commission (the “SEC”) filings and reports.

 

Such forward-looking statements speak only as of the date on which they are made, and we do not undertake any obligation to update any forward-looking statement to reflect events or circumstances after the date of this 2024 Q1 Form 10‑Q. If we do update or correct one or more forward-looking statements, investors and others should not conclude that we will make additional updates or corrections with respect thereto or with respect to other forward-looking statements.

 

 

Overview

 

Northwest Pipe Company is a leading manufacturer of water-related infrastructure products, and operates in two segments, Engineered Steel Pressure Pipe (“SPP”) and Precast Infrastructure and Engineered Systems (“Precast”). For detailed descriptions of these segments, see Note 12, “Segment Information” of the Notes to Condensed Consolidated Financial Statements in Part I – Item 1. “Financial Statements” of this 2024 Q1 Form 10‑Q.

 

In addition to being the largest manufacturer of engineered steel water pipeline systems in North America, we manufacture stormwater and wastewater technology products; high-quality precast and reinforced concrete products; pump lift stations; steel casing pipe, bar-wrapped concrete cylinder pipe, and one of the largest offerings of pipeline system joints, fittings, and specialized components. Strategically positioned to meet growing water and wastewater infrastructure needs, we provide solution-based products for a wide range of markets under the ParkUSA, Geneva Pipe and Precast, Permalok®, and Northwest Pipe Company lines. Our diverse team is committed to safety, quality, and innovation while demonstrating our core values of accountability, commitment, and teamwork. We are headquartered in Vancouver, Washington, and have 13 manufacturing facilities across North America.

 

Our water infrastructure products are sold generally to installation contractors, who include our products in their bids to federal, state, and municipal agencies, privately-owned water companies, or developers for specific projects. We believe our sales are substantially driven by spending on urban growth and new water infrastructure with a recent trend towards spending on water infrastructure replacement, repair, and upgrade. Within the total range of products, our steel pipe best addresses the larger-diameter, higher-pressure pipeline applications, while our precast concrete products mainly serve stormwater and sanitary sewer systems.

 

Our Current Economic Environment

 

Demand for our Precast products is generally influenced by general economic conditions such as housing starts, population growth, interest rates, and rates of inflation. According to the United States Census Bureau, privately-owned housing starts were at a seasonally adjusted annual rate of 1.3 million in March 2024 and 1.5 million in December 2023, and the population of the United States is expected to increase by approximately 2 million people in 2024. While these two indicators point to a strong housing market, particularly in Texas and Utah which are two of the five fastest growing markets in the United States according to the November 2022 Bluefield Research Insight Report – U.S. & Canada Municipal Water Outlook: Utility CAPEX & OPEX Forecasts, 2022-2030 and the states in which our Precast manufacturing facilities are located, the current elevated federal funds rate could continue to temper demand for our precast products.

 

Our SPP projects are often planned for many years in advance, as we operate that business with a long-term time horizon for which the projects are sometimes part of 50 year build-out plans. Even though we experienced a relatively modest level of project bidding in 2023, our backlog for SPP has remained elevated, and long-term demand for water infrastructure projects in the United States appears strong. Additionally, while our SPP business faces possible head winds from recessionary concerns in the broader domestic economy, we currently believe it more likely a modest increase in funding will be brought on by the Bipartisan Infrastructure Deal (“IIJA”) and the Inflation Reduction Act. According to the February 2024 Bluefield Research Insight Report – Infrastructure Investment & Jobs Act: Tracking the Spending, Q1 2024, approximately $1 billion earmarked under the IIJA has currently been outlaid by the Federal Government to date, leaving most of the $55 billion spending package still to be appropriated; we expect to benefit from this spending late in the cycle due to the long project timelines.

 

Purchased steel typically represents approximately 35% of cost of sales, and higher steel costs generally result in higher selling prices and revenue; however, volatile fluctuations in steel markets can affect our business. SPP contracts are generally quoted on a fixed-price basis, and volatile steel markets can result in selling prices that no longer correlate to the cost available at the time of steel purchase. Our average price of purchased steel was $997 per ton in the first three months of 2024, as compared to annual averages of $994 per ton in 2023 and $1,174 per ton in 2022.

 

Economic uncertainty, including the impacts of raw material shortages, inflationary pressures, potential risks of a recession, and disruptions in the financial markets could have an adverse effect on our business. The extent of the impact of these broader economic forces on our business will depend on future developments, which cannot be predicted.

 

 

Results of Operations

 

The following table sets forth, for the periods indicated, certain financial information regarding costs and expenses expressed in dollars (in thousands) and as a percentage of total net sales.

 

   

Three Months Ended

   

Three Months Ended

 
    March 31, 2024     March 31, 2023  
   

$

   

% of Net Sales

   

$

   

% of Net Sales

 

Net sales:

                               

Engineered Steel Pressure Pipe

  $ 80,007       70.7 %   $ 63,546       64.1 %

Precast Infrastructure and Engineered Systems

    33,208       29.3       35,551       35.9  

Total net sales

    113,215       100.0       99,097       100.0  

Cost of sales:

                               

Engineered Steel Pressure Pipe

    65,765       58.1       55,764       56.3  

Precast Infrastructure and Engineered Systems

    27,316       24.1       26,756       27.0  

Total cost of sales

    93,081       82.2       82,520       83.3  

Gross profit:

                               

Engineered Steel Pressure Pipe

    14,242       12.6       7,782       7.8  

Precast Infrastructure and Engineered Systems

    5,892       5.2       8,795       8.9  

Total gross profit

    20,134       17.8       16,577       16.7  

Selling, general, and administrative expense

    11,444       10.1       11,866       11.9  

Operating income

    8,690       7.7       4,711       4.8  

Other income (expense)

    7       -       (29 )     -  

Interest expense

    (1,474 )     (1.3 )     (1,369 )     (1.5 )

Income before income taxes

    7,223       6.4       3,313       3.3  

Income tax expense

    1,985       1.8       951       0.9  

Net income

  $ 5,238       4.6 %   $ 2,362       2.4 %

 

Three Months Ended March 31, 2024 Compared to Three Months Ended March 31, 2023

 

Net sales. Net sales increased 14.2% to $113.2 million in the first quarter of 2024 compared to $99.1 million in the first quarter of 2023.

 

SPP net sales increased 25.9% to $80.0 million in the first quarter of 2024 compared to $63.5 million in the first quarter of 2023 driven by a 54% increase in tons produced resulting primarily from changes in project timing, partially offset by an 18% decrease in selling price per ton primarily due to product mix. Bidding activity, backlog, and production levels may vary significantly from period to period affecting sales volumes.

 

Precast net sales decreased 6.6% to $33.2 million in the first quarter of 2024 compared to $35.6 million in the first quarter of 2023, despite a 23% increase in volume shipped, due to a 24% decrease in selling prices driven by changes in product mix.

 

Gross profit. Gross profit increased 21.5% to $20.1 million (17.8% of net sales) in the first quarter of 2024 compared to $16.6 million (16.7% of net sales) in the first quarter of 2023.

 

SPP gross profit increased 83.0% to $14.2 million (17.8% of SPP net sales) in the first quarter of 2024 compared to $7.8 million (12.2% of SPP net sales) in the first quarter of 2023 primarily due to increased volume and changes in product mix.

 

Precast gross profit decreased 33.0% to $5.9 million (17.7% of Precast net sales) in the first quarter of 2024 compared to $8.8 million (24.7% of Precast net sales) in the first quarter of 2023 primarily due to changes in product mix.

 

 

Selling, general, and administrative expense. Selling, general, and administrative expense decreased 3.6% to $11.4 million (10.1% of net sales) in the first quarter of 2024 compared to $11.9 million (11.9% of net sales) in the first quarter of 2023 primarily due to $0.5 million in lower incentive compensation expense.

 

Income taxes. Income tax expense was $2.0 million in the first quarter of 2024 (an effective income tax rate of 27.5%) compared to $1.0 million in the first quarter of 2023 (an effective income tax rate of 28.7%). The estimated effective income tax rates for the first quarter of 2024 of 2023 were primarily impacted by non-deductible permanent differences. The estimated effective income tax rate can change significantly depending on the relationship of permanent income tax differences to estimated pre-tax income or loss. Accordingly, the comparison of estimated effective income tax rates between periods is not meaningful in all situations.

 

Liquidity and Capital Resources

 

Sources and Uses of Cash

 

Our principal sources of liquidity generally include operating cash flows and the Credit Agreement dated June 30, 2021 with Wells Fargo Bank, National Association (“Wells Fargo”), as administrative agent, and the lenders from time to time party thereto, including the initial sole lender, Wells Fargo (the “Lenders”), as amended by the Incremental Amendment dated October 22, 2021, the Second Amendment to Credit Agreement dated April 29, 2022, and the Third Amendment to Credit Agreement dated June 29, 2023 (together, the “Amended Credit Agreement”). From time to time our long-term capital needs may be met through the issuance of additional debt or equity. Our principal uses of liquidity generally include capital expenditures, working capital, organic growth initiatives, acquisitions, share repurchases, and debt service. Information regarding our cash flows for the three months ended March 31, 2024 are presented in our Condensed Consolidated Statements of Cash Flows contained in Part I – Item 1. “Financial Statements” of this 2024 Q1 Form 10‑Q, and are further discussed below.

 

As of March 31, 2024, our working capital (current assets minus current liabilities) was $213.4 million compared to $176.3 million as of December 31, 2023. Cash and cash equivalents totaled $4.3 million and $4.1 million as of March 31, 2024 and December 31, 2023, respectively.

 

Fluctuations in SPP working capital accounts result from timing differences between production, shipment, invoicing, and collection, as well as changes in levels of production and costs of materials. We typically have a relatively large investment in working capital, as we generally pay for materials, labor, and other production costs in the initial stages of a project, while payments from our customers are generally received after finished product is delivered. A portion of our revenues are recognized over time as the manufacturing process progresses; therefore, cash receipts typically occur subsequent to when revenue is recognized and the elapsed time between when revenue is recorded and when cash is received can be significant. As such, our payment cycle is a significantly shorter interval than our collection cycle, although the effect of this difference in the cycles may vary by project, and from period to period.

 

As of March 31, 2024, we had $89.9 million of outstanding revolving loan borrowings, $10.8 million of outstanding current debt, $89.3 million of operating lease liabilities, and $7.3 million of finance lease liabilities. As of December 31, 2023, we had $54.5 million of outstanding revolving loan borrowings, $10.8 million of outstanding current debt, $90.2 million of operating lease liabilities, and $7.5 million of finance lease liabilities. The increase in our revolving loan borrowings was primarily due to increased production and temporary changes in SPP working capital needs.

 

Net Cash Provided by (Used in) Operating Activities

 

Net cash provided by (used in) operating activities was ($26.1) million in the first three months of 2024 compared to $26.3 million in the first three months of 2023. Net income, adjusted for non-cash items, provided $10.8 million of operating cash flow in the first three months of 2024 compared to $8.3 million of operating cash flow in the first three months of 2023. The net change in working capital provided (used) ($36.8) million of operating cash flow in the first three months of 2024 compared to $18.0 million of operating cash flow in the first three months of 2023.

 

 

Net Cash Used in Investing Activities

 

Net cash used in investing activities was $4.5 million in the first three months of 2024 compared to $4.4 million in the first three months of 2023. Capital expenditures were $4.6 million in the first three months of 2024 compared to $4.4 million in the first three months of 2023, which includes $0.5 million in the first three months of 2024 and $1.9 million in the first three months of 2023 of investment in our new reinforced concrete pipe mill, $0.5 million in the first three months of 2024 for the construction of a building at our Salt Lake City, Utah facility for the new mill, and the remainder primarily for standard capital replacement. We currently expect capital expenditures in 2024 to be approximately $19 million to $22 million, which includes approximately $2 million of investment in our new reinforced concrete pipe mill, and associated ancillary equipment, approximately $5 million for the construction of a building at our Salt Lake City, Utah facility for the new mill, and the remainder primarily for standard capital replacement.

 

Net Cash Provided by (Used in) Financing Activities

 

Net cash provided by (used in) financing activities was $30.8 million in the first three months of 2024 compared to ($21.6) million in the first three months of 2023. Net borrowings (repayments) on the line of credit were $35.4 million in the first three months of 2024 compared to ($21.1) million in the first three months of 2023. Repurchases of common stock were $3.9 million in the first three months of 2024.

 

We anticipate that our existing cash and cash equivalents, cash flows expected to be generated by operations, and additional borrowing capacity under the Amended Credit Agreement and other loans will be adequate to fund our working capital, debt service, capital expenditure requirements, and share repurchases for the foreseeable future. To the extent necessary, we may also satisfy capital requirements through additional bank borrowings, senior notes, term notes, subordinated debt, and finance and operating leases, if such resources are available on satisfactory terms. We have from time to time evaluated and continue to evaluate opportunities for acquisitions and expansion. Any such transactions, if consummated, may necessitate additional bank borrowings or other sources of funding.

 

On December 4, 2023, our shelf registration statement on Form S‑3 (Registration No. 333‑275691) covering the potential future sale of up to $150 million of our equity and/or debt securities or combinations thereof, was declared effective by the SEC. This shelf registration statement, which replaced the registration statement on Form S‑3 that expired on November 3, 2023, provides another potential source of capital, in addition to other alternatives already in place. We cannot be certain that funding will be available on favorable terms or available at all. To the extent that we raise additional funds by issuing equity securities, our shareholders may experience significant dilution. As of the date of this 2024 Q1 Form 10‑Q, we have not yet sold any securities under this registration statement, nor do we have an obligation to do so. Please refer to the factors discussed in Part I – Item 1A. “Risk Factors” in our 2023 Form 10‑K.

 

On November 2, 2023, we announced our authorization of a share repurchase program of up to $30 million of our outstanding common stock. The program does not commit to any particular timing or quantity of purchases, and the program may be suspended or discontinued at any time. Under the program, shares may be purchased in open market, including through plans adopted pursuant to Rule 10b5‑1 of the Exchange Act, or in privately negotiated transactions administered by our broker, D.A. Davidson Companies. At this time, we have elected to limit our share repurchase transactions to only those under the Rule 10b5‑1 trading plan we executed in November 2023, which we believe considers our liquidity, including availability of borrowings and covenant compliance under our Amended Credit Agreement, and other capital allocation priorities of the business. Our Rule 10b5‑1 trading plan designates up to $10 million for daily share repurchases with volumes that fluctuate with changes in the trading price of our common stock. We expect to consider share repurchase strategies beyond the current Rule 10b5‑1 trading plan at a future date. For a summary of shares repurchased during the first quarter of 2024, see Part II — Item 2. “Unregistered Sales of Equity Securities and Use of Proceeds” of this 2024 Q1 Form 10‑Q. Please refer to the factors discussed in Part I – Item 1A. “Risk Factors” in our 2023 Form 10‑K.

 

Credit Agreement

 

The Amended Credit Agreement provides for a revolving loan, swingline loan, and letters of credit in the aggregate amount of up to $125 million (“Revolver Commitment”), with an option for us to increase that amount by $50 million, subject to provisions of the Amended Credit Agreement. The Amended Credit Agreement will expire, and all obligations outstanding will mature, on June 29, 2028. We may prepay outstanding amounts at our discretion without penalty at any time, subject to applicable notice requirements. As of March 31, 2024 under the Amended Credit Agreement, we had $89.9 million of outstanding revolving loan borrowings, $1.1 million of outstanding letters of credit, and additional borrowing capacity of approximately $34 million.

 

 

Revolving loans under the Amended Credit Agreement bear interest at rates related to, at our option and subject to the provisions of the Amended Credit Agreement, either: (i) Base Rate (as defined in the Amended Credit Agreement) plus the Applicable Margin; (ii) Adjusted Term Secured Overnight Finance Rate (“SOFR”) (as defined in the Amended Credit Agreement) plus the Applicable Margin; or (iii) Adjusted Daily Simple SOFR (as defined in the Amended Credit Agreement) plus the Applicable Margin. The “Applicable Margin” is 1.75% to 2.35%, depending on our Consolidated Senior Leverage Ratio (as defined in the Amended Credit Agreement) and the interest rate option chosen. Interest on outstanding revolving loans is payable monthly. Swingline loans under the Amended Credit Agreement bear interest at the Base Rate plus the Applicable Margin. As of March 31, 2024, the weighted-average interest rate for outstanding borrowings was 7.41%. The Amended Credit Agreement requires the payment of a commitment fee of between 0.30% and 0.40%, based on the amount by which the Revolver Commitment exceeds the average daily balance of outstanding borrowings (as defined in the Amended Credit Agreement). Such fee is payable monthly in arrears. We are also obligated to pay additional fees customary for credit facilities of this size and type.

 

The letters of credit outstanding as of March 31, 2024 relate to workers’ compensation insurance. Based on the nature of these arrangements and our historical experience, we do not expect to make any material payments under these arrangements.

 

The Amended Credit Agreement contains customary representations and warranties, as well as customary affirmative and negative covenants, events of default, and indemnification provisions in favor of the Lenders. The negative covenants include restrictions regarding the incurrence of liens and indebtedness, annual capital expenditures, certain investments, acquisitions, and dispositions, and other matters, all subject to certain exceptions. The Amended Credit Agreement requires us to regularly provide financial information to Wells Fargo and to maintain a consolidated senior leverage ratio no greater than 3.00 to 1.00 (subject to certain exceptions) and a minimum consolidated earnings before interest, taxes, depreciation, and amortization (“EBITDA”) (as defined in the Amended Credit Agreement) of at least $35 million for the four consecutive fiscal quarters most recently ended. Pursuant to the Amended Credit Agreement, we have also agreed that we will not sell, assign, or otherwise dispose or encumber, any of our owned real property. The occurrence of an event of default could result in the acceleration of the obligations under the Amended Credit Agreement. We were in compliance with our financial covenants as of March 31, 2024, and expect to continue to be in compliance in the near term.

 

Our obligations under the Amended Credit Agreement are secured by a senior security interest in substantially all of our and our subsidiaries’ assets.

 

Current Debt

 

The Interim Funding Agreement dated August 2, 2022 with Wells Fargo Equipment Finance, Inc. (“WFEF”), as amended January 23, 2023, March 15, 2023, July 21, 2023, and November 2, 2023 (together, the “IFA”), provides for aggregate interim funding advances up to $10.8 million of equipment purchased for a new reinforced concrete pipe mill, to be converted into a term loan upon final delivery and acceptance of the financed equipment. As of March 31, 2024, the outstanding balance of the IFA was $10.8 million, which was classified as a current liability since there was not a firm commitment for long-term debt financing. The IFA bears interest at the SOFR Average plus 2.00%. As of March 31, 2024, the weighted-average interest rate for outstanding borrowings was 7.07%. The IFA requires monthly payments of accrued interest and grants a security interest in the equipment to WFEF. Effective November 2, 2023, the IFA requires us to maintain a consolidated senior leverage ratio no greater than 3.00 to 1.00 (subject to certain exceptions) and to maintain a minimum consolidated EBITDA (as defined in the IFA) of at least $35 million for the four consecutive fiscal quarters most recently ended. We were in compliance with our financial covenants as of March 31, 2024, and expect to continue to be in compliance in the near term.

 

Recent Accounting Pronouncements

 

For a description of recent accounting pronouncements affecting our company, including the dates of adoption and estimated effects on financial position, results of operations, and cash flows, see Note 13, “Recent Accounting and Reporting Developments” of the Notes to Condensed Consolidated Financial Statements in Part I – Item 1. “Financial Statements” of this 2024 Q1 Form 10‑Q.

 

 

Critical Accounting Estimates

 

The discussion and analysis of our financial condition and results of operations are based upon our Condensed Consolidated Financial Statements included in Part I – Item 1. “Financial Statements” of this 2024 Q1 Form 10‑Q, which have been prepared in accordance with accounting principles generally accepted in the United States of America. The preparation of our Condensed Consolidated Financial Statements requires us to make estimates and judgments that affect the reported amounts of assets, liabilities, revenues, and expenses, and disclosure of contingent assets and liabilities. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable under the circumstances. On an ongoing basis, we evaluate all of our estimates, including those related to revenue recognition, goodwill, income taxes, and litigation and other contingencies. Actual results may differ from these estimates under different assumptions or conditions.

 

There have been no significant changes in our critical accounting estimates during the three months ended March 31, 2024 as compared to the critical accounting estimates disclosed in our 2023 Form 10‑K.

 

 

Item3. Quantitative and Qualitative Disclosures About Market Risk

 

For a discussion of our market risk associated with commodity prices, interest rates, and foreign currency exchange rates, see Part II – Item 7A. “Quantitative and Qualitative Disclosures About Market Risk” in our 2023 Form 10‑K.

 

 

Item4. Controls and Procedures

 

Evaluation of Disclosure Controls and Procedures

 

Disclosure controls and procedures (as defined in Rules 13a‑15(e) and 15d‑15(e) under the Securities Exchange Act of 1934, as amended (the “Exchange Act”)) are designed to provide reasonable assurance that information required to be disclosed in reports we file or submit under the Exchange Act is recorded, processed, summarized, and reported within the time periods specified in the rules and forms of the Securities and Exchange Commission and that such information is accumulated and communicated to our management, including our Chief Executive Officer (“CEO”) and Chief Financial Officer (“CFO”), as appropriate, to allow timely decisions regarding required disclosures.

 

In connection with the preparation of this Quarterly Report on Form 10‑Q for the quarter ended March 31, 2024, our management, under the supervision and with the participation of our CEO and CFO, evaluated the effectiveness of the design and operation of our disclosure controls and procedures as of March 31, 2024. As a result of the assessment, our CEO and CFO have concluded that, as of March 31, 2024, our disclosure controls and procedures were effective.

 

Changes in Internal Control over Financial Reporting

 

There were no significant changes in our internal control over financial reporting that occurred during the quarter ended March 31, 2024 that materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.

 

 

PartII OTHER INFORMATION

 

Item1. Legal Proceedings

 

We are party to a variety of legal actions arising out of the ordinary course of business. Plaintiffs occasionally seek punitive or exemplary damages. We do not believe that such normal and routine litigation will have a material impact on our consolidated financial results. We are also involved in other kinds of legal actions, some of which assert or may assert claims or seek to impose fines, penalties, and other costs in substantial amounts. See Note 7, “Commitments and Contingencies” of the Notes to Condensed Consolidated Financial Statements in Part I – Item 1. “Financial Statements” of this 2024 Q1 Form 10‑Q.

 

 

Item1A. Risk Factors

 

In addition to the other information set forth in this 2024 Q1 Form 10‑Q, the factors discussed in Part I – Item 1A. “Risk Factors” in our 2023 Form 10‑K and any subsequently filed quarterly reports on Form 10‑Q could materially affect our business, financial condition, or operating results. The risks described in our 2023 Form 10‑K and subsequent Form 10‑Q’s are not the only risks facing us. There are additional risks and uncertainties not currently known to us or that we currently deem to be immaterial, that may also materially adversely affect our business, financial condition, or operating results.


 

Item 2. Unregistered Sales of Equity Securities and Use of Proceeds

 

On November 2, 2023, we announced our authorization of a share repurchase program of up to $30 million of our outstanding common stock. The program does not commit to any particular timing or quantity of purchases, and the program may be suspended or discontinued at any time. Under the program, shares may be purchased in open market, including through plans adopted pursuant to Rule 10b5‑1 of the Exchange Act, or in privately negotiated transactions administered by our broker, D.A. Davidson Companies. At this time, we have elected to limit our share repurchase transactions to only those under the Rule 10b5‑1 trading plan we executed in November 2023, which we believe considers our liquidity, including availability of borrowings and covenant compliance under our Amended Credit Agreement, and other capital allocation priorities of the business. Our Rule 10b5‑1 trading plan designates up to $10 million for daily share repurchases with volumes that fluctuate with changes in the trading price of our common stock. We expect to consider share repurchase strategies beyond the current Rule 10b5‑1 trading plan at a future date.

 

The following table provides information relating to our repurchase of common stock during the three months ended March 31, 2024 pursuant to our share repurchase program.

 

Period

 

Total Number of Shares Purchased

   

Average Price Paid Per Share (1)

   

Total Number of Shares Purchased as Part of Publicly Announced Plans or Programs

   

Approximate Dollar Value of Shares That May Yet Be Purchased Under the Plans or Programs

 
                                 

January 1, 2024 to January 31, 2024

    58,774     $ 29.19       58,774     $ 27,448,886  

February 1, 2024 to February 29, 2024

    61,274       29.51       61,274       25,640,430  

March 1, 2024 to March 31, 2024

    7,327       29.98       7,327       25,420,733  

Total

    127,375       29.39       127,375          

 

 

Item5. Other Information

 

None of our directors or officers adopted, modified, or terminated a Rule 10b5‑1 trading arrangement or a non-Rule 10b5‑1 trading arrangement during the three months ended March 31, 2024, as such terms are defined under Item 408(a) of Regulation S‑K.

 

26

 

 

Item6. Exhibits

 

(a) The exhibits filed as part of this 2024 Q1 Form 10‑Q are listed below:

 

Exhibit

Number

 

Description

     
10.1   Form of Performance Share Unit Agreement, incorporated by reference to the Company’s Current Report on Form 8‑K, as filed with the Securities and Exchange Commission on April 3, 2024*
     
10.2   Form of Restricted Stock Unit Agreement, incorporated by reference to the Company’s Current Report on Form 8‑K, as filed with the Securities and Exchange Commission on April 3, 2024*
     
10.3   Change in Control Agreement dated April 1, 2020 between Northwest Pipe Company and Eric Stokes
     
10.4   Change in Control Agreement dated December 9, 2021 between Northwest Pipe Company and Michael Wray
     

31.1

 

Certification Pursuant to 18 U.S.C. Section 1350, as Adopted Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

     

31.2

 

Certification Pursuant to 18 U.S.C. Section 1350, as Adopted Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

     

32.1

 

Certification Pursuant to 18 U.S.C. Section 1350, as Adopted Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002

     

32.2

 

Certification Pursuant to 18 U.S.C. Section 1350, as Adopted Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002

     

101.INS

 

Inline XBRL Instance Document

     

101.SCH

 

Inline XBRL Taxonomy Extension Schema Document

     

101.CAL

 

Inline XBRL Taxonomy Extension Calculation Document

     

101.DEF

 

Inline XBRL Taxonomy Definition Linkbase Document

     

101.LAB

 

Inline XBRL Taxonomy Extension Label Linkbase Document

     

101.PRE

 

Inline XBRL Taxonomy Extension Presentation Linkbase Document

     

104

 

Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101)

 

*

This exhibit constitutes a management contract or compensatory plan or arrangement.

 

 

SIGNATURES

 

Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned thereunto duly authorized.

 

Dated: May 2, 2024

 

 

NORTHWEST PIPE COMPANY

   
 

By:

/s/ Scott Montross

     
   

Scott Montross

   

Director, President, and Chief Executive Officer

   

(principal executive officer)

     
 

By:

/s/ Aaron Wilkins

     
   

Aaron Wilkins

   

Senior Vice President, Chief Financial Officer, and Corporate Secretary

   

(principal financial and accounting officer)

 

 

28
EX-10.3 2 ex_659246.htm EXHIBIT 10.3 ex_659246.htm

Exhibit 10.3

 

ex_659246img001.jpg

 

 

April 1, 2020

 

Eric Stokes

 

 

Northwest Pipe Company, an Oregon corporation (the “Company”), considers the establishment and maintenance of a sound and vital management to be essential to protecting and enhancing the best interests of the Company and its shareholders. In this connection, the Company recognizes that, as is the case with many publicly held corporations, the possibility of a Change in Control (as defined in Section 3 hereof) may exist and that such possibility, and the uncertainty and questions which it may raise among management, may result in the departure or distraction of management personnel to the detriment of the Company and its shareholders. Accordingly, the Board of Directors of the Company (the “Board”) has determined that appropriate steps should be taken to reinforce and encourage the continued attention and dedication of members of the Company’s management to their assigned duties without distraction in circumstances arising from the possibility of a Change in Control of the Company.

 

In order to induce you to remain in the employ of the Company, this letter agreement (“Agreement”), which has been approved by the Board, sets forth the severance benefits which the Company agrees will be provided to you in the event your employment with the Company is terminated in connection with a Change in Control of the Company under the circumstances described below.

 

1.        Right to Terminate. The Company or you may terminate your employment at any time, subject to the Company’s obligations to provide the benefits hereinafter specified in accordance with the terms hereof.

 

2.        Term of Agreement. This Agreement shall commence on the date hereof and shall continue in effect until July 31, 2021; provided, however, that commencing on August 1, 2021 and each August 1st thereafter, the term of this Agreement shall automatically be extended for one additional year unless at least ninety (90) days prior to such August 1st date, the Company or you shall have given notice that this Agreement shall not be extended; provided, however, that this Agreement shall continue in effect for a period of twenty-four (24) months beyond the term provided herein if a Change in Control shall have occurred during such term. Notwithstanding anything in this Section 2 to the contrary, this Agreement shall terminate if you or the Company terminate your employment prior to the earlier of Shareholder Approval (as defined in Section 3 hereof), if applicable, or a Change in Control.

 

 

 

3.        Change in Control; Shareholder Approval; Person.

 

3.1    For purposes of this Agreement, a “Change in Control” shall mean the occurrence of any of the following events:

 

3.1.1 The consummation of:

 

(a)    any consolidation, merger or plan of share exchange involving the Company (a “Merger”) other than a Merger which would result in securities of the Company ordinarily having the right to vote for the election of directors (“Voting Securities”) outstanding immediately prior thereto continuing to represent (either by remaining outstanding or by being converted into Voting Securities of the surviving entity or a parent of the surviving entity) more than 50% of the combined voting power of the Voting Securities of such surviving entity or parent outstanding immediately after the Merger;

 

(b)    any sale, lease, exchange or other transfer (in one transaction or a series of related transactions) of all, or substantially all, the assets of the Company: or

 

(c)    the adoption of any plan or proposal for the liquidation or dissolution of the Company.

 

3.1.2    At any time during a period of two consecutive years, individuals who at the beginning of such period constituted the Board (“Incumbent Directors”) shall cease for any reason to constitute at least a majority thereof unless each new director elected during such two-year period was nominated or elected by a vote of at least two-thirds (2/3rds) of the Incumbent Directors then in office and voting (with new directors nominated or elected by two- thirds (2/3rds) of the Incumbent Directors also being deemed to be Incumbent Directors); or

 

3.1.3    Any Person [(as hereinafter defined)] shall, as a result of any purchase or other acquisition of Company Shares from anyone other than the Company, have become the beneficial owner (within the meaning of Rule 13d-3 under the Securities Exchange Act of 1934, as amended), directly or indirectly, of Voting Securities representing twenty percent (20%) or more of the combined voting power of the then outstanding Voting Securities.

 

Notwithstanding anything in the foregoing to the contrary, unless otherwise determined by the Board, no Change in Control shall be deemed to have occurred for purposes of this Agreement if (1) you acquire (other than on the same basis as all other holders of the Voting Securities) an equity interest in an entity that acquires the Company in a Change in Control otherwise described under subparagraph 3.1.1 above, or (2) you are part of a group that constitutes a Person which becomes a beneficial owner of Voting Securities in a transaction that otherwise would have resulted in a Change in Control under subparagraph 3.1.3 above.

 

3.2    For purposes of this Agreement, “Shareholder Approval” shall be deemed to have occurred if the shareholders of the Company approve an agreement entered into by the Company, the consummation of which would result in the occurrence of a Change in Control.

 

Page 2

 

3.3    For purposes of this Agreement, the term “Person” shall mean and include any individual, corporation, partnership, group, association or other “person,” as such term is used in Section 13(d)(3) or Section 14(d)(2) of the Securities Exchange Act of 1934, as amended, other than the Company or any employee benefit plan(s) sponsored by the Company.

 

4.        Termination Following Shareholder Approval or Change In Control. If a Change in Control occurs and at any time after the earlier of Shareholder Approval, if applicable, or the Change in Control and on or before the second anniversary of the Change in Control, your employment is terminated, you shall be entitled to the benefits provided in Section 5.3 hereof unless such termination is (a) because of your death, (b) by the Company for Cause or Disability or (c) by you other than for Good Reason (as all such capitalized terms are hereinafter defined).

 

4.1    Disability. Termination by the Company of your employment based on “Disability” shall mean termination because of your absence from your duties with the Company on a full-time basis for one hundred eighty (180) consecutive days as a result of your incapacity due to physical or mental illness, unless within thirty (30) days after Notice of Termination (as hereinafter defined) is given to you following such absence you shall have returned to the full- time performance of your duties.

 

4.2    Cause. Termination by the Company of your employment for “Cause” shall mean termination upon (a) the willful and continued failure by you to substantially perform your reasonably assigned duties with the Company consistent with those duties assigned to you prior to the Change in Control (other than any such failure resulting from your incapacity due to physical or mental illness) which failure shall not have been corrected within thirty (30) days after a demand for substantial performance is delivered to you by the Chairman of the Board or President of the Company which specifically identifies the manner in which such executive believes that you have not substantially performed your duties and such notice is delivered within ninety (90) days of such circumstances, or (b) the willful engaging by you in illegal conduct which is materially and demonstrably injurious to the Company. For purposes of this paragraph 4.2, no act, or failure to act, on your part shall be considered “willful” unless done, or omitted to be done, by you in knowing bad faith and without reasonable belief that your action or omission was in, or not opposed to, the best interests of the Company. Any act, or failure to act, based upon authority given pursuant to a resolution duly adopted by the Board or based upon the advice of counsel for the Company shall be conclusively presumed to be done, or omitted to be done, by you in good faith and in the best interests of the Company. Notwithstanding the foregoing, you shall not be deemed to have been terminated for Cause unless and until there shall have been delivered to you a copy of a resolution duly adopted by the affirmative vote of not less than two-thirds (2/3rds) of the entire membership of the Board at a meeting of the Board called and held for the purpose (after reasonable notice to you and an opportunity for you, together with your counsel, to be heard before the Board), finding that in the good faith opinion of the Board you were guilty of the conduct set forth above in (a) or (b) of this paragraph 4.2 and specifying the particulars thereof in detail.

 

4.3    Good Reason. Termination by you of your employment for “Good Reason” shall mean termination by you of your employment with the Company based on the occurrence after Shareholder Approval, if applicable, or the Change in Control, of any of the following circumstances, provided you give Notice of Termination within ninety (90) days after notice to you of such circumstances and such circumstances are not fully corrected by the Company within thirty (30) days after your notice:

 

Page 3

 

4.3.1    a change in your status, title, position(s) or responsibilities as an employee of the Company which constitutes an adverse change from your status, title, position(s) and responsibilities as in effect immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control, or the assignment to you of any duties or responsibilities which are inconsistent with such status, title or position(s), or any removal of you from or any failure to reappoint or reelect you to such position(s), except in connection with the termination of your employment for Cause, Disability or as a result of your death or by you other than for Good Reason;

 

4.3.2    a reduction by the Company in your base salary as in effect on the date hereof or as the same may be increased from time to time except for across-the-board salary reductions similarly affecting all management personnel of the Company and all management personnel of any Person in control of the Company;

 

4.3.3    the failure by the Company to continue in effect any Plan (as hereinafter defined) in which you are participating immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control (or Plans providing you with at least substantially similar benefits) other than as a result of the normal expiration of any such Plan in accordance with its terms as in effect immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control, or the taking of any action, or the failure to act, by the Company which would adversely affect your continued participation in any of such Plans on at least as favorable a basis to you as is the case immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control or which would materially reduce your benefits in the future under any of such Plans or deprive you of any material benefit enjoyed by you immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control;

 

4.3.4    the failure by the Company to provide and credit you with the number of paid vacation days to which you are then entitled in accordance with the Company’s normal vacation policy as in effect immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control;

 

4.3.5    the Company’s requiring you to be based more than twenty-five (25) miles from where your office is located immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control except for required travel on the Company’s business to an extent substantially consistent with the business travel obligations which you undertook on behalf of the Company prior to the earlier of Shareholder Approval, if applicable, or the Change in Control;

 

4.3.6    the failure of the Company to pay to you any portion of your compensation or compensation under any deferred compensation program of the Company;

 

Page 4

 

4.3.7    the failure by the Company to obtain from any Successor (as hereinafter defined) the assumption or assent to this Agreement contemplated by Section 6 hereof within thirty (30) days after a Change in Control;

 

4.3.8    any material breach of this Agreement by the Company; or

 

4.3.9    any purported termination by the Company of your employment which is not effected pursuant to a Notice of Termination satisfying the requirements of paragraph 4.4 below (and, if applicable, paragraph 4.2 above); and for purposes of this Agreement no such purported termination shall be effective.

 

For purposes of this Agreement, “Plan” shall mean any compensation plan such as an incentive, stock option or restricted stock plan or any employee benefit plan such as a thrift, pension, profit sharing, medical, disability, accident, life insurance, or relocation plan or policy or any other plan, program or policy of the Company intended to benefit employees.

 

4.4    Notice of Termination. Any purported termination by the Company or by you following the earlier of Shareholder Approval, if applicable, or a Change in Control shall be communicated by written Notice of Termination to the other party hereto. For purposes of this Agreement, a “Notice of Termination” shall mean a notice which shall indicate the specific termination provision in this Agreement relied upon and shall set forth in reasonable detail the facts and circumstances claimed to provide a basis for termination of your employment under the provision so indicated.

 

4.5    Date of Termination. “Date of Termination” shall mean the date your employment with the Company is terminated following the earlier of Shareholder Approval, if applicable, or a Change in Control, which date shall be determined as follows: (a) if your employment is to be terminated for Disability, thirty (30) days after Notice of Termination is given (provided that you shall not have returned to the performance of your duties on a full-time basis during such thirty (30) day period), (b) if your employment is to be terminated by the Company for Cause, the date on which a Notice of Termination is given, and (c) if your employment is to be terminated by you or by the Company for any other reason, the date specified in the Notice of Termination (which, in the case of termination for Good Reason shall be not less than thirty (30) days nor more than sixty (60) days from the date such Notice of Termination is given), unless an earlier date has been agreed to by the party receiving the Notice of Termination either in advance of, or after, receiving such Notice of Termination. Notwithstanding anything in the foregoing to the contrary, if the party receiving the Notice of Termination has not previously agreed to the termination, then within thirty (30) days after any Notice of Termination is given, or, if later, prior to the Date of Termination, the party receiving such Notice of Termination may notify the other party that a dispute exists concerning the termination, in which event the Date of Termination shall be the date set either by mutual written agreement of the parties or by the arbitrators in a proceeding as provided in Section 12 hereof; and provided, further, that the Date of Termination shall be extended by a notice of dispute only if such notice is given in good faith and the party giving such notice pursues the resolution of such dispute with reasonable diligence. You shall not be obligated to perform any services after the Date of Termination that would prevent the termination of your employment on such Date of Termination from qualifying as a “separation from service” as defined in Treasury Regulation Section 1.409A-1(h).

 

Page 5

 

 

5.        Compensation Upon Termination or During Disability.

 

5.1    During any period following the earlier of Shareholder Approval, if applicable, or a Change in Control that you fail to perform your duties as a result of incapacity due to physical or mental illness, you shall continue to receive your full base salary at the rate then in effect and any benefits or awards under any Plans shall continue to accrue during such period, to the extent not inconsistent with such Plans, until your employment is terminated pursuant to and in accordance with paragraphs 4.1, 4.4 and 4.5 hereof. Thereafter, your benefits shall be determined in accordance with the Plans then in effect.

 

5.2    If your employment shall be terminated for Cause or as a result of your death following the earlier of Shareholder Approval, if applicable, or a Change in Control of the Company, the Company shall pay you your full base salary through the Date of Termination at the rate in effect just prior to the time a Notice of Termination is given plus any benefits or awards (including both the cash and stock components) which pursuant to the terms of any Plans have been earned or become payable, but which have not yet been paid to you. Thereupon the Company shall have no further obligations to you under this Agreement.

 

5.3    If a Change in Control occurs and after the earlier of Shareholder Approval, if applicable, or the Change in Control and on or before the second anniversary of the Change in Control your employment with the Company shall be terminated (a) by the Company other than for Cause or Disability or (b) by you for Good Reason, then, you shall be entitled to, and shall be paid, without regard to any contrary provisions of any Plan, a severance benefit as follows:

 

5.3.1    Within five (5) days of the Date of Termination, the Company shall pay your full base salary through the Date of Termination at the rate in effect just prior to the time a Notice of Termination is given plus any benefits or awards (including both cash and stock components) which pursuant to the terms of any Plans have been earned or become payable, but which have not yet been paid to you (including amounts which previously had been deferred at your request);

 

5.3.2    as severance pay and in lieu of any further salary for periods subsequent to the Date of Termination, within five (5) days of the later of the Date of Termination or the Change in Control, the Company shall pay to you in a single payment an amount in cash equal to (i) the higher of (A) one (1) time your annual base salary at the rate in effect just prior to the time a Notice of Termination is given, or (B) one (1) time your annual base salary in effect immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control, plus (ii) one (1) times the average of the cash bonuses paid to you during the previous three (3) years;

 

5.3.3    for a twelve (12) month period after the Date of Termination (specifically including a Date of Termination that occurs after Shareholder Approval and prior to a Change in Control), the Company shall arrange to provide you and your dependents with life, accident, medical and dental insurance benefits substantially similar to those which you were receiving immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control. Notwithstanding the foregoing, the Company shall not provide any benefit otherwise receivable by you pursuant to this paragraph 5.3.3 to the extent that a similar benefit is actually received by you from a subsequent employer during such twelve (12) month period, and any such benefit actually received by you shall be reported to the Company;

 

Page 6

 

5.3.4    any and all outstanding equity compensation awards (whether options, restricted stock units or otherwise) under any Plan held by you shall immediately vest and become exercisable in full; provided, however, that if the award agreement for any such award provides different vesting terms on a change in control of the Company, the terms of the award agreement shall control and this paragraph 5.3.4 shall not apply; and

 

5.3.5    within five (5) days of the Date of Termination, the Company shall pay you for any vacation time earned but not taken at the Date of Termination, at an hourly rate equal to your annual base salary as in effect immediately prior to the time a Notice of Termination is given divided by 2080.

 

5.4    Notwithstanding any other provision in this Agreement or any other agreement or arrangement between the Company and you with respect to compensation or benefits (each an “Other Arrangement”), if any portion of the Specified Benefits (as defined below) would be subject to the excise tax payable by you imposed by Sections 280G and 4999 of the Internal Revenue Code of 1986, as amended, or any successor provisions (the “IRC”), and if you would receive a greater after-tax benefit from the Capped Benefit (as defined below) than from the Specified Benefits, the Capped Benefit shall be paid to you in lieu of the Specified Benefits. The “Specified Benefits” are the amounts (including the monetary value of any non- cash benefits) otherwise payable pursuant to this Agreement and any Other Arrangement. The “Capped Benefit” equals the Specified Benefits, reduced by the minimum amount necessary to prevent any portion of the Specified Benefits from being a “parachute payment” as defined in IRC Section 280G(b)(2). For purposes of determining whether you would receive a greater after-tax benefit from the Capped Benefit than from the Specified Benefits, there shall be taken into account any excise tax that would be imposed under IRC Section 4999 and all federal, state and local taxes required to be paid by you in respect of the receipt of such payments. If you receive the Capped Benefit, you may determine the extent to which each of the Specified Benefits shall be reduced. The parties recognize that there is some uncertainty regarding the computations under IRC Section 280G which must be applied to determine the Capped Benefit. Accordingly, the parties agree that, after the severance benefit is paid, the amount of the Capped Benefit may be retroactively adjusted to the extent any subsequent Internal Revenue Service regulations, rulings, audits or other pronouncements establish that the original calculation of the Capped Benefit was incorrect. In that case, amounts shall be paid or reimbursed between the parties so that you will have received the severance benefit you would have received if the Capped Benefit had originally been calculated correctly. Moreover, in determining whether you will receive the Specified Benefits or the Capped Benefit, any potential tax consequences to the Company under IRC Section 280G or otherwise will not be taken into account.

 

5.5    Except as specifically provided above, the amount of any payment provided for in this Section 5 shall not be reduced, offset or subject to recovery by the Company by reason of any compensation earned by you as the result of employment by another employer after the Date of Termination, or otherwise. Your entitlements under Section 5.3 are in addition to, and not in lieu of any rights, benefits or entitlements you may have under the terms or provisions of any Plan.

 

Page 7

 

 

6.        Successors; Binding Agreement.

 

6.1    The Company will seek to have any Successor (as hereinafter defined), by agreement in form and substance satisfactory to you, assume the Company’s obligations under this Agreement or assent to the fulfillment by the Company of its obligations under this Agreement. This Agreement will be binding upon and inure to the benefit of the Company and any Successor (and such Successor shall thereafter be deemed the “Company” for purposes of this Agreement), but will not otherwise be assignable, transferable or delegable by the Company. For purposes of this Agreement, “Successor” shall mean any Person that succeeds to, or has the practical ability to control (either immediately or with the passage of time), the Company’s business directly, by merger, consolidation or purchase of assets, or indirectly, by purchase of the Voting Securities or otherwise.

 

6.2    This Agreement shall inure to the benefit of and be enforceable by your personal or legal representatives, executors, administrators, successors, heirs, distributees, devisees and legatees. If you should die while any amount would still be payable to you hereunder if you had continued to live, all such amounts, unless otherwise provided herein, shall be paid in accordance with the terms of this Agreement to your devisee, legatee or other designee or, if there be no such designee, to your estate.

 

7.        Fees and Expenses. The Company shall pay all legal fees and related legal expenses incurred by you as a result of (i) your termination following the earlier of Shareholder Approval, if applicable, or a Change in Control (including all such fees and expenses, if any, incurred in contesting or disputing any such termination) or (ii) your seeking to obtain or enforce any right or benefit provided by this Agreement.

 

8.        Survival. The respective obligations of, and benefits afforded to, the Company and you as provided in Section 5, 6, 7 and 12 of this Agreement shall survive termination of this Agreement.

 

9.        Notice. For the purposes of this Agreement, notices and all other communications provided for in this Agreement shall be in writing and shall be deemed to have been duly given when delivered or mailed by United States registered mail, return receipt requested, postage prepaid and addressed to the address of the respective party set forth on the first page of this Agreement, provided that all notices to the Company shall be directed to the attention of the Chairman of the Board or President of the Company, with a copy to the Secretary of the Company, or to such other address as either party may have furnished to the other in writing in accordance herewith, except that notice of change of address shall be effective only upon receipt.

 

10.        Miscellaneous. No provision of this Agreement may be modified, waived or discharged unless such modification, waiver or discharge is agreed to in a writing signed by you and the Chairman of the Board or President of the Company. No waiver by either party hereto at any time of any breach by the other party hereto of, or of compliance with, any condition or provision of this Agreement to be performed by such other party shall be deemed a waiver of similar or dissimilar provisions or conditions at the same or at any prior or subsequent time. No agreements or representations, oral or otherwise, express or implied, with respect to the subject matter hereof have been made by either party which are not expressly set forth in this Agreement. The validity, interpretation, construction and performance of this Agreement shall be governed by the laws of the State of Oregon.

 

Page 8

 

11.        Validity. The invalidity or unenforceability of any provision of this Agreement shall not affect the validity or enforceability of any other provision of this Agreement, which shall remain in full force and effect.

 

12.        Arbitration. Any dispute or controversy arising under or in connection with this Agreement shall be settled exclusively by arbitration in Portland, Oregon by three arbitrators in accordance with the rules of the American Arbitration Association then in effect. Judgment may be entered on the arbitrators’ award in any court having jurisdiction; provided, however, that you shall be entitled to seek specific performance of your right to be paid until the Date of Termination during the pendency of any dispute or controversy arising under or in connection with this Agreement. The Company shall bear all costs and expenses arising in connection with any arbitration proceeding pursuant to this Section 12.

 

13.        Agreement. Nothing in this Agreement shall prevent or limit your continuing or future participation in any plan, program, policy or practice provided by the Company and for which you may qualify, nor shall anything in this Agreement limit or otherwise affect such rights as you may have under any contract or agreement with the Company. Amounts which are vested benefits or which you are otherwise entitled to receive under any plan, policy, practice or program of, or any contract or agreement with, the Company at or subsequent to this Agreement shall be payable in accordance with such plan, policy, practice or program or contract or agreement except as explicitly modified by this Agreement.

 

14.        Counterparts. This Agreement may be executed in several counterparts, each of which shall be deemed to be an original, but all of which together will constitute one and the same instrument.

 

15.        409A Interpretation. This Agreement (and all payments and other benefits provided under this Agreement and provided under any other agreement incorporated by reference) are intended to be exempt from the requirements of IRC Section 409A to the maximum extent possible, whether pursuant to the short-term deferral exception described in Treasury Regulation Section 1.409A-1(b)(4), the involuntary separation pay plan exception described in Treasury Regulation Section 1.409A‑1(b)(9)(iii), or otherwise. To the extent IRC Section 409A is applicable to such payments and benefits, the Company intends that this Agreement (and such payments and benefits) comply with the deferral, payout and other limitations and restrictions imposed under IRC Section 409A. Notwithstanding any other provision of this Agreement to the contrary, this Agreement shall be interpreted, operated and administered in a manner consistent with such intentions.

 

Page 9

 

16.        Payments to Specified Employee. Notwithstanding any other provision of this Agreement to the contrary, you shall not be entitled to any payment pursuant to this Agreement prior to the earliest date permitted under IRC Section 409A. If at the time of your termination of employment, you are a “specified employee,” as defined in Treasury Regulation Section 1.409A‑1(i) and determined using the identification methodology selected by the Company from time to time, or if none, the default methodology under IRC Section 409A, and a payment or benefit provided for in this Agreement would be subject to additional tax under IRC Section 409A if such payment or benefit is paid within six (6) months after your termination, then such payment or benefit required under this Agreement shall not be paid (or commence to be paid) during the six (6) month period immediately following your termination, but shall instead be accumulated and paid to you (or, if you have died, to your estate) on the earlier of (i) the tenth (10th) business day following your death or (ii) the first (1st) business day of the seventh month following your termination of employment.

 

If this Agreement correctly sets forth our agreement on the subject matter hereof, kindly sign and return to the Company the enclosed copy of this Agreement which will then constitute our agreement on this subject.

 

 

Sincerely,

   
 

/s/ Scott J. Montross

 

Scott J. Montross

 

President and Chief Executive Officer

   

AGREED AND ACCEPTED:

 
   

/s/ Eric Stokes

 

 

Page 10
EX-10.4 3 ex_659247.htm EXHIBIT 10.4 ex_659247.htm

Exhibit 10.4

 

 

a01.jpg

 

December 9, 2021

 

 

Michael Wray

 

 

Northwest Pipe Company, an Oregon corporation (the "Company"), considers the establishment and maintenance of a sound and vital management to be essential to protecting and enhancing the best interests of the Company and its shareholders. In this connection, the Company recognizes that, as is the case with many publicly held corporations, the possibility of a Change in Control (as defined in Section 3 hereof) may exist and that such possibility, and the uncertainty and questions which it may raise among management, may result in the departure or distraction of management personnel to the detriment of the Company and its shareholders. Accordingly, the Board of Directors of the Company (the "Board") has determined that appropriate steps should be taken to reinforce and encourage the continued attention and dedication of members of the Company's management to their assigned duties without distraction in circumstances arising from the possibility of a Change in Control of the Company.

 

In order to induce you to remain in the employ of the Company, this letter agreement ("Agreement"), which has been approved by the Board, sets forth the severance benefits which the Company agrees will be provided to you in the event your employment with the Company is terminated in connection with a Change in Control of the Company under the circumstances described below. Right to Terminate. The Company or you may terminate your employment at any time, subject to the Company's obligations to provide the benefits hereinafter specified in accordance with the terms hereof.

 

1.         Term of Agreement. This Agreement shall commence on the date hereof and shall continue in effect until July 31, 2022; provided, however, that commencing on August 1, 2022 and each August 1 thereafter, the term of this Agreement shall automatically be extended for one additional year unless at least ninety (90) days prior to such August 1 date, the Company or you shall have given notice that this Agreement shall not be extended; provided, however, that this Agreement shall continue in effect for a period of twenty-four (24) months beyond the term provided herein if a Change in Control shall have occurred during such term. Notwithstanding anything in this Section 2 to the contrary, this Agreement shall terminate if you or the Company terminate your employment prior to the earlier of Shareholder Approval (as defined in Section 3 hereof), if applicable, or a Change in Control.

 

2.         Change in Control: Shareholder Approval: Person.

 

2.1         For purposes of this Agreement, a "Change in Control" shall mean the occurrence of any of the following events:

 

2.1.1         The consummation of:

 

(a)         any consolidation, merger or plan of share exchange involving the Company (a "Merger") other than a Merger which would result in securities of the Company ordinarily having the right to vote for the election of directors ("Voting Securities") outstanding immediately prior thereto continuing to represent (either by remaining outstanding or by being converted into Voting Securities of the surviving entity or a parent of the surviving entity) more than 50% of the combined voting power of the Voting Securities of such surviving entity or parent outstanding immediately after the Merger;

 

a02.jpg
Page 1

 

 

 

NORTHWEST PIPE COMPANY


 

(b)         any sale, lease, exchange or other transfer (in one transaction or a series of related transactions) of all, or substantially all, the assets of the Company: or

 

(c)         the adoption of any plan or proposal for the liquidation or dissolution of the Company.

 

3.1.2         At any time during a period of two consecutive years, individuals who at the beginning of such period constituted the Board ("Incumbent Directors") shall cease for any reason to constitute at least a majority thereof unless each new director elected during such two-year period was nominated or elected by a vote of at least two-thirds (2/3rds) of the Incumbent Directors then in office and voting (with new directors nominated or elected by two-thirds (2/3rds) of the Incumbent Directors also being deemed to be Incumbent Directors); or

 

3.1.3         Any Person (as hereinafter defined) shall, as a result of any purchase or other acquisition of Company Shares from anyone other than the Company, have become the beneficial owner (within the meaning of Rule 13d‑3 under the Securities Exchange Act of 1934, as amended), directly or indirectly, of Voting Securities representing twenty percent (20%) or more of the combined voting power of the then outstanding Voting Securities.

 

Notwithstanding anything in the foregoing to the contrary, unless otherwise determined by the Board, no Change in Control shall be deemed to have occurred for purposes of this Agreement if (1) you acquire (other than on the same basis as all other holders of the Voting Securities) an equity interest in an entity that acquires the Company in a Change in Control otherwise described under subparagraph 3.1.1 above, or (2) you are part of a group that constitutes a Person which becomes a beneficial owner of Voting Securities in a transaction that otherwise would have resulted in a Change in Control under subparagraph 3.1.3 above.

 

3.2         For purposes of this Agreement, "Shareholder Approval" shall be deemed to have occurred if the shareholders of the Company approve an agreement entered into by the Company, the consummation of which would result in the occurrence of a Change in Control.

 

3.3         For purposes of this Agreement, the term "Person" shall mean and include any individual, corporation, partnership, group, association or other "person," as such term is used in Section 13(d)(3) or Section 14(d)(2) of the Securities Exchange Act of 1934, as amended, other than the Company or any employee benefit plan(s) sponsored by the Company.

 

4.         Termination Following Shareholder Approval or Change In Control. If a Change in Control occurs and at any time after the earlier of Shareholder Approval, if applicable, or the Change in Control and on or before the second anniversary of the Change in Control, your employment is terminated, you shall be entitled to the benefits provided in Section 5.3 hereof unless such termination is (a) because of your death, (b) by the Company for Cause or Disability or (c) by you other than for Good Reason (as all such capitalized terms are hereinafter defined).

 

4.1         Disability. Termination by the Company of your employment based on "Disability" shall mean termination because of your absence from your duties with the Company on a full-time basis for one hundred eighty (180) consecutive days as a result of your incapacity due to physical or mental illness, unless within thirty (30) days after Notice of Termination (as hereinafter defined) is given to you following such absence you shall have returned to the full-time performance of your duties.

 

a02.jpg
Page 2

 

 

 

NORTHWEST PIPE COMPANY


 

4.2         Cause. Termination by the Company of your employment for "Cause" shall mean termination upon (a) the willful and continued failure by you to substantially perform your reasonably assigned duties with the Company consistent with those duties assigned to you prior to the Change in Control (other than any such failure resulting from your incapacity due to physical or mental illness) which failure shall not have been corrected within thirty (30) days after a demand for substantial performance is delivered to you by the Chairman of the Board or President of the Company which specifically identifies the manner in which such executive believes that you have not substantially performed your duties and such notice is delivered within ninety (90) days of such circumstances, or (b) the willful engaging by you in illegal conduct which is materially and demonstrably injurious to the Company. For purposes of this paragraph 4.2, no act, or failure to act, on your part shall be considered "willful" unless done, or omitted to be done, by you in knowing bad faith and without reasonable belief that your action or omission was in, or not opposed to, the best interests of the Company. Any act, or failure to act, based upon authority given pursuant to a resolution duly adopted by the Board or based upon the advice of counsel for the Company shall be conclusively presumed to be done, or omitted to be done, by you in good faith and in the best interests of the Company. Notwithstanding the foregoing, you shall not be deemed to have been terminated for Cause unless and until there shall have been delivered to you a copy of a resolution duly adopted by the affirmative vote of not less than two-thirds (2/3rds) of the entire membership of the Board at a meeting of the Board called and held for the purpose (after reasonable notice to you and an opportunity for you, together with your counsel, to be heard before the Board), finding that in the good faith opinion of the Board you were guilty of the conduct set forth above in (a) or (b) of this paragraph 4.2 and specifying the particulars thereof in detail.

 

4.3         Good Reason. Termination by you of your employment for "Good Reason" shall mean termination by you of your employment with the Company based on the occurrence after Shareholder Approval, if applicable, or the Change in Control, of any of the following circumstances, provided you give Notice of Termination within ninety (90) days after notice to you of such circumstances and such circumstances are not fully corrected by the Company within thirty (30) days after your notice:

 

4.3.1         a change in your status, title, position(s) or responsibilities as an employee of the Company which constitutes an adverse change from your status, title, position(s) and responsibilities as in effect immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control, or the assignment to you of any duties or responsibilities which are inconsistent with such status, title or position(s), or any removal of you from or any failure to reappoint or reelect you to such position(s), except in connection with the termination of your employment for Cause, Disability or as a result of your death or by you other than for Good Reason;

 

4.3.2         a reduction by the Company in your base salary as in effect on the date hereof or as the same may be increased from time to time except for across-the-board salary reductions similarly affecting all management personnel of the Company and all management personnel of any Person in control of the Company;

 

a02.jpg
Page 3

 

 

 

NORTHWEST PIPE COMPANY


 

4.3.3         the failure by the Company to continue in effect any Plan (as hereinafter defined) in which you are participating immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control (or Plans providing you with at least substantially similar benefits) other than as a result of the normal expiration of any such Plan in accordance with its terms as in effect immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control, or the taking of any action, or the failure to act, by the Company which would adversely affect your continued participation in any of such Plans on at least as favorable a basis to you as is the case immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control or which would materially reduce your benefits in the future under any of such Plans or deprive you of any material benefit enjoyed by you immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control;

 

4.3.4         the failure by the Company to provide and credit you with the number of paid vacation days to which you are then entitled in accordance with the Company's normal vacation policy as in effect immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control;

 

4.3.5         the Company's requiring you to be based more than twenty-five (25) miles from where your office is located immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control except for required travel on the Company's business to an extent substantially consistent with the business travel obligations which you undertook on behalf of the Company prior to the earlier of Shareholder Approval, if applicable, or the Change in Control;

 

4.3.6         the failure of the Company to pay to you any portion of your compensation or compensation under any deferred compensation program of the Company;

 

4.3.7         the failure by the Company to obtain from any Successor (as hereinafter defined) the assumption or assent to this Agreement contemplated by Section 6 hereof within thirty (30) days after a Change in Control;

 

4.3.8         any material breach of this Agreement by the Company; or

 

4.3.9         any purported termination by the Company of your employment which is not effected pursuant to a Notice of Termination satisfying the requirements of paragraph 4.4 below (and, if applicable, paragraph 4.2 above); and for purposes of this Agreement no such purported termination shall be effective.

 

For purposes of this Agreement, "Plan" shall mean any compensation plan such as an incentive, stock option or restricted stock plan or any employee benefit plan such as a thrift, pension, profit sharing, medical, disability, accident, life insurance, or relocation plan or policy or any other plan, program or policy of the Company intended to benefit employees.

 

4.4         Notice of Termination. Any purported termination by the Company or by you following the earlier of Shareholder Approval, if applicable, or a Change in Control shall be communicated by written Notice of Termination to the other party hereto. For purposes of this Agreement, a "Notice of Termination" shall mean a notice which shall indicate the specific termination provision in this Agreement relied upon and shall set forth in reasonable detail the facts and circumstances claimed to provide a basis for termination of your employment under the provision so indicated.

 

a02.jpg
Page 4

 

 

 

NORTHWEST PIPE COMPANY


 

4.5         Date of Termination. "Date of Termination" shall mean the date your employment with the Company is terminated following the earlier of Shareholder Approval, if applicable, or a Change in Control, which date shall be determined as follows: (a) if your employment is to be terminated for Disability, thirty (30) days after Notice of Termination is given (provided that you shall not have returned to the performance of your duties on a full-time basis during such thirty (30) day period), (b) if your employment is to be terminated by the Company for Cause, the date on which a Notice of Termination is given, and (c) if your employment is to be terminated by you or by the Company for any other reason, the date specified in the Notice of Termination (which, in the case of termination for Good Reason shall be not less than thirty (30) days nor more than sixty (60) days from the date such Notice of Termination is given), unless an earlier date has been agreed to by the party receiving the Notice of Termination either in advance of, or after, receiving such Notice of Termination. Notwithstanding anything in the foregoing to the contrary, if the party receiving the Notice of Termination has not previously agreed to the termination, then within thirty (30) days after any Notice of Termination is given, or, if later, prior to the Date of Termination, the party receiving such Notice of Termination may notify the other party that a dispute exists concerning the termination, in which event the Date of Termination shall be the date set either by mutual written agreement of the parties or by the arbitrators in a proceeding as provided in Section 12 hereof; and provided, further, that the Date of Termination shall be extended by a notice of dispute only if such notice is given in good faith and the party giving such notice pursues the resolution of such dispute with reasonable diligence. You shall not be obligated to perform any services after the Date of Termination that would prevent the termination of your employment on such Date of Termination from qualifying as a "separation from service" as defined in Treasury Regulation Section 1.409A‑1(h).

 

5.         Compensation Upon Termination or During Disability.

 

5.1         During any period following the earlier of Shareholder Approval, if applicable, or a Change in Control that you fail to perform your duties as a result of incapacity due to physical or mental illness, you shall continue to receive your full base salary at the rate then in effect and any benefits or awards under any Plans shall continue to accrue during such period, to the extent not inconsistent with such Plans, until your employment is terminated pursuant to and in accordance with paragraphs 4.1, 4.4 and 4.5 hereof. Thereafter, your benefits shall be determined in accordance with the Plans then in effect.

 

5.2         If your employment shall be terminated for Cause or as a result of your death following the earlier of Shareholder Approval, if applicable, or a Change in Control of the Company, the Company shall pay you your full base salary through the Date of Termination at the rate in effect just prior to the time a Notice of Termination is given plus any benefits or awards (including both the cash and stock components) which pursuant to the terms of any Plans have been earned or become payable, but which have not yet been paid to you. Thereupon the Company shall have no further obligations to you under this Agreement.

 

5.3         If a Change in Control occurs and after the earlier of Shareholder Approval, if applicable, or the Change in Control and on or before the second anniversary of the Change in Control your employment with the Company shall be terminated (a) by the Company other than for Cause or Disability or (b) by you for Good Reason, then, you shall be entitled to, and shall be paid, without regard to any contrary provisions of any Plan, a severance benefit as follows:

 

5.3.1         Within five (5) days of the Date of Termination, the Company shall pay your full base salary through the Date of Termination at the rate in effect just prior to the time a Notice of Termination is given plus any benefits or awards (including both cash and stock components) which pursuant to the terms of any Plans have been earned or become payable, but which have not yet been paid to you (including amounts which previously had been deferred at your request);

 

a02.jpg
Page 5

 

 

 

NORTHWEST PIPE COMPANY


 

5.3.2         as severance pay and in lieu of any further salary for periods subsequent to the Date of Termination, within five (S) days of the later of the Date of Termination or the Change in Control, the Company shall pay to you in a single payment an amount in cash equal to (i) the higher of (A) one (1) times your annual base salary at the rate in effect just prior to the time a Notice of Termination is given, or (B) one (1) times your annual base salary in effect immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control, plus (ii) one (1) times the average of the cash bonuses paid to you during the previous three (3) years;

 

5.3.3         for a twenty-four (24) month period after the Date of Termination (specifically including a Date of Termination that occurs after Shareholder Approval and prior to a Change in Control), the Company shall arrange to provide you and your dependents with life, accident, medical and dental insurance benefits substantially similar to those which you were receiving immediately prior to the earlier of Shareholder Approval, if applicable, or the Change in Control. Notwithstanding the foregoing, the Company shall not provide any benefit otherwise receivable by you pursuant to this paragraph 5.3.3 to the extent that a similar benefit is actually received by you from a subsequent employer during such twenty-four (24) month period, and any such benefit actually received by you shall be reported to the Company;

 

5.3.4         any and all outstanding equity compensation awards (whether options, restricted stock units or otherwise) under any Plan held by you shall immediately vest and become exercisable in full; provided, however, that if the award agreement for any such award provides different vesting terms on a change in control of the Company, the terms of the award agreement shall control and this paragraph 5.3.4 shall not apply; and

 

5.3.5         within five (5) days of the Date of Termination, the Company shall pay you for any vacation time earned but not taken at the Date of Termination, at an hourly rate equal to your annual base salary as in effect immediately prior to the time a Notice of Termination is given divided by 2080.

 

5.4         Notwithstanding any other provision in this Agreement or any other agreement or arrangement between the Company and you with respect to compensation or benefits (each an "Other Arrangement"), if any portion of the Specified Benefits (as defined below) would be subject to the excise tax payable by you imposed by Sections 280G and 4999 of the Internal Revenue Code of 1986, as amended, or any successor provisions (the "IRC"), and if you would receive a greater after-tax benefit from the Capped Benefit (as defined below) than from the Specified Benefits, the Capped Benefit shall be paid to you in lieu of the Specified Benefits. The "Specified Benefits" are the amounts (including the monetary value of any non-cash benefits) otherwise payable pursuant to this Agreement and any Other Arrangement. The "Capped Benefit" equals the Specified Benefits, reduced by the minimum amount necessary to prevent any portion of the Specified Benefits from being a "parachute payment" as defined in IRC Section 280G(b)(2). For purposes of determining whether you would receive a greater after-tax benefit from the Capped Benefit than from the Specified Benefits, there shall be taken into account any excise tax that would be imposed under IRC Section 4999 and all federal, state and local taxes required to be paid by you in respect of the receipt of such payments. If you receive the Capped Benefit, you may determine the extent to which each of the Specified Benefits shall be reduced. The parties recognize that there is some uncertainty regarding the computations under IRC Section 280G which must be applied to determine the Capped Benefit. Accordingly, the parties agree that, after the severance benefit is paid, the amount of the Capped Benefit may be retroactively adjusted to the extent any subsequent Internal Revenue Service regulations, rulings, audits or other pronouncements establish that the original calculation of the Capped Benefit was incorrect. In that case, amounts shall be paid or reimbursed between the parties so that you will have received the severance benefit you would have received if the Capped Benefit had originally been calculated correctly. Moreover, in determining whether you will receive the Specified Benefits or the Capped Benefit, any potential tax consequences to the Company under IRC Section 280G or otherwise will not be taken into account.

 

a02.jpg
Page 6

 

 

 

 

NORTHWEST PIPE COMPANY


 

5.5         Except as specifically provided above, the amount of any payment provided for in this Section 5 shall not be reduced, offset or subject to recovery by the Company by reason of any compensation earned by you as the result of employment by another employer after the Date of Termination, or otherwise. Your entitlements under Section 5.3 are in addition to, and not in lieu of any rights, benefits or entitlements you may have under the terms or provisions of any Plan.

 

6.         Successors; Binding Agreement.

 

6.1         The Company will seek to have any Successor (as hereinafter defined), by agreement in form and substance satisfactory to you, assume the Company's obligations under this Agreement or assent to the fulfillment by the Company of its obligations under this Agreement. This Agreement will be binding upon and inure to the benefit of the Company and any Successor (and such Successor shall thereafter be deemed the "Company" for purposes of this Agreement), but will not otherwise be assignable, transferable or delegable by the Company. For purposes of this Agreement, "Successor" shall mean any Person that succeeds to, or has the practical ability to control (either immediately or with the passage of time), the Company's business directly, by merger, consolidation or purchase of assets, or indirectly, by purchase of the Voting Securities or otherwise.

 

6.2         This Agreement shall inure to the benefit of and be enforceable by your personal or legal representatives, executors, administrators, successors, heirs, distributees, devisees and legatees. If you should die while any amount would still be payable to you hereunder if you had continued to live, all such amounts, unless otherwise provided herein, shall be paid in accordance with the terms of this Agreement to your devisee, legatee or other designee or, if there be no such designee, to your estate.

 

7.         Fees and Expenses. The Company shall pay all legal fees and related legal expenses incurred by you as a result of (i) your termination following the earlier of Shareholder Approval, if applicable, or a Change in Control (including all such fees and expenses, if any, incurred in contesting or disputing any such termination) or (ii) your seeking to obtain or enforce any right or benefit provided by this Agreement.

 

8.         Survival. The respective obligations of, and benefits afforded to, the Company and you as provided in Section 5, 6, 7 and 12 of this Agreement shall survive termination of this Agreement.

 

9.         Notice. For the purposes of this Agreement, notices and all other communications provided for in this Agreement shall be in writing and shall be deemed to have been duly given when delivered or mailed by United States registered mail, return receipt requested, postage prepaid and addressed to the address of the respective party set forth on the first page of this Agreement, provided that all notices to the Company shall be directed to the attention of the Chairman of the Board or President of the Company, with a copy to the Secretary of the Company, or to such other address as either party may have furnished to the other in writing in accordance herewith, except that notice of change of address shall be effective only upon receipt.

 

a02.jpg
Page 7

 

 

 

NORTHWEST PIPE COMPANY


 

10.         Miscellaneous. No provision of this Agreement may be modified, waived or discharged unless such modification, waiver or discharge is agreed to in a writing signed by you and the Chairman of the Board or President of the Company. No waiver by either party hereto at any time of any breach by the other party hereto of, or of compliance with, any condition or provision of this Agreement to be performed by such other party shall be deemed a waiver of similar or dissimilar provisions or conditions at the same or at any prior or subsequent time. No agreements or representations, oral or otherwise, express or implied, with respect to the subject matter hereof have been made by either party which are not expressly set forth in this Agreement. The validity, interpretation, construction and performance of this Agreement shall be governed by the laws of the State of Oregon.

 

11.         Validity. The invalidity or unenforceability of any provision of this Agreement shall not affect the validity or enforceability of any other provision of this Agreement, which shall remain in full force and effect.

 

12.         Arbitration. Any dispute or controversy arising under or in connection with this Agreement shall be settled exclusively by arbitration in Portland, Oregon by three arbitrators in accordance with the rules of the American Arbitration Association then in effect. Judgment may be entered on the arbitrators' award in any court having jurisdiction; provided, however, that you shall be entitled to seek specific performance of your right to be paid until the Date of Termination during the pendency of any dispute or controversy arising under or in connection with this Agreement. The Company shall bear all costs and expenses arising in connection with any arbitration proceeding pursuant to this Section 12.

 

13.         Related Agreement.

 

13.1         You and the Company are parties to Long Term Incentive Plan Agreements ("LTIP Agreements"). For the avoidance of doubt, the LTIP Agreements shall be considered an Other Arrangement for purposes of Section 5.4 of this Agreement.

 

13.2         Except as provided in this Section 13, nothing in this Agreement shall prevent or limit your continuing or future participation in any plan, program, policy or practice provided by the Company and for which you may qualify, nor shall anything in this Agreement limit or otherwise affect such rights as you may have under any contract or agreement with the Company. Amounts which are vested benefits or which you are otherwise entitled to receive under any plan, policy, practice or program of, or any contract or agreement with, the Company at or subsequent to this Agreement shall be payable in accordance with such plan, policy, practice or program or contract or agreement except as explicitly modified by this Agreement.

 

14.         Counterparts. This Agreement may be executed in several counterparts, each of which shall be deemed to be an original, but all of which together will constitute one and the same instrument.

 

15.         409A Interpretation. This Agreement (and all payments and other benefits provided under this Agreement and provided under any other agreement incorporated by reference) are intended to be exempt from the requirements of IRC Section 409A to the maximum extent possible, whether pursuant to the short-term deferral exception described in Treasury Regulation Section 1.409A‑1(b)(4), the involuntary separation pay plan exception described in Treasury Regulation Section 1.409A‑1(b)(9)(iii), or otherwise. To the extent IRC Section 409A is applicable to such payments and benefits, the Company intends that this Agreement (and such payments and benefits) comply with the deferral, payout and other limitations and restrictions imposed under IRC Section 409A. Notwithstanding any other provision of this Agreement to the contrary, this Agreement shall be interpreted, operated and administered in a manner consistent with such intentions.

 

a02.jpg
Page 8

 

 

 

NORTHWEST PIPE COMPANY


 

16.         Payments to Specified Employee. Notwithstanding any other provision of this Agreement to the contrary, you shall not be entitled to any payment pursuant to this Agreement prior to the earliest date permitted under IRC Section 409A. If at the time of your termination of employment, you are a "specified employee," as defined in Treasury Regulation Section 1.409A‑1(i) and determined using the identification methodology selected by the Company from time to time, or if none, the default methodology under IRC Section 409A, and a payment or benefit provided for in this Agreement would be subject to additional tax under IRC Section 409A if such payment or benefit is paid within six (6) months after your termination, then such payment or benefit required under this Agreement shall not be paid (or commence to be paid) during the six (6) month period immediately following your termination, but shall instead be accumulated and paid to you (or, if you have died, to your estate) on the earlier of (i) the tenth (10th) business day following your death or (ii) the first (1st) business day of the seventh month following your termination of employment.

 

If this Agreement correctly sets forth our agreement on the subject matter hereof, kindly sign and return to the Company the enclosed copy of this Agreement which will then constitute our agreement on this subject.

 

 

Sincerely,

   
 

/s/ Scott J. Montross

 

Scott J. Montross

 

President and Chief Executive Officer

   

AGREED AND ACCEPTED:

 
   

/s/ Michael Wray

 

 

a02.jpg
Page 9

 

 
EX-31.1 4 ex_630880.htm EXHIBIT 31.1 ex_630880.htm

Exhibit 31.1

 

CERTIFICATION PURSUANT TO 18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002

 

I, Scott Montross, certify that:

 

 

1.

I have reviewed this Quarterly Report on Form 10‑Q of Northwest Pipe Company;

 

 

2.

Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;

 

 

3.

Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;

 

 

4.

The registrant’s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:

 

 

a.

Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;

 

 

b.

Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;

 

 

c.

Evaluated the effectiveness of the registrant’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

 

 

d.

Disclosed in this report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter (the registrant’s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and

 

 

5.

The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of the registrant’s board of directors (or persons performing the equivalent functions):

 

 

a.

All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and

 

 

b.

Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.

 

 

Date: May 2, 2024

By:

/s/ Scott Montross

   

Scott Montross

   

Director, President, and Chief Executive Officer

   

(principal executive officer)

 

 

 
EX-31.2 5 ex_630881.htm EXHIBIT 31.2 ex_630881.htm

Exhibit 31.2

 

CERTIFICATION PURSUANT TO 18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002

 

I, Aaron Wilkins, certify that:

 

 

1.

I have reviewed this Quarterly Report on Form 10‑Q of Northwest Pipe Company;

 

 

2.

Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;

 

 

3.

Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;

 

 

4.

The registrant’s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:

 

 

a.

Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;

 

 

b.

Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;

 

 

c.

Evaluated the effectiveness of the registrant’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

 

 

d.

Disclosed in this report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter (the registrant’s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and

 

 

5.

The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of the registrant’s board of directors (or persons performing the equivalent functions):

 

 

a.

All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and

 

 

b.

Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.

 

 

Date: May 2, 2024

By:

/s/ Aaron Wilkins

   

Aaron Wilkins

   

Senior Vice President, Chief Financial Officer, and Corporate Secretary

   

(principal financial officer)

 

 

 
EX-32.1 6 ex_630882.htm EXHIBIT 32.1 ex_630882.htm

Exhibit 32.1

 

CERTIFICATION PURSUANT TO 18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002

 

In connection with the Quarterly Report of Northwest Pipe Company (the “Company”) on Form 10‑Q for the period ended March as filed with the Securities and Exchange Commission on the date hereof (the “Report”), I, Scott Montross, Director, President, and Chief Executive Officer of the Company, certify, pursuant to 18 U.S.C. § 1350, as adopted pursuant to § 906 of the Sarbanes-Oxley Act of 2002, that:

 

(1)

The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934; and

 

(2)

The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.

 

 

/s/ Scott Montross

 

Scott Montross

 

Director, President, and Chief Executive Officer

 

May 2, 2024

 

 

 

 
EX-32.2 7 ex_630883.htm EXHIBIT 32.2 ex_630883.htm

Exhibit 32.2

 

CERTIFICATION PURSUANT TO 18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002

 

In connection with the Quarterly Report of Northwest Pipe Company (the “Company”) on Form 10‑Q for the period ended March as filed with the Securities and Exchange Commission on the date hereof (the “Report”), I, Aaron Wilkins, Senior Vice President, Chief Financial Officer, and Corporate Secretary of the Company, certify, pursuant to 18 U.S.C. § 1350, as adopted pursuant to § 906 of the Sarbanes-Oxley Act of 2002, that:

 

(1)

The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934; and

 

(2)

The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.

 

 

/s/ Aaron Wilkins

 

Aaron Wilkins

 

Senior Vice President, Chief Financial Officer, and Corporate Secretary

 

May 2, 2024

 

 

 
EX-101.SCH 8 nwpx-20240331.xsd XBRL TAXONOMY EXTENSION SCHEMA 000 - Document - Document And Entity Information link:calculationLink link:definitionLink link:presentationLink 001 - Statement - Condensed Consolidated Statements of Operations (Unaudited) link:calculationLink link:definitionLink link:presentationLink 002 - Statement - Condensed Consolidated Statements of Comprehensive Income (Unaudited) link:calculationLink link:definitionLink link:presentationLink 003 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) link:calculationLink link:definitionLink link:presentationLink 004 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) link:calculationLink link:definitionLink link:presentationLink 005 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited) link:calculationLink link:definitionLink link:presentationLink 006 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited) (Parentheticals) link:calculationLink link:definitionLink link:presentationLink 007 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited) link:calculationLink link:definitionLink link:presentationLink 008 - Disclosure - Note 1 - Organization and Basis of Presentation link:calculationLink link:definitionLink link:presentationLink 009 - Disclosure - Note 2 - Inventories link:calculationLink link:definitionLink link:presentationLink 010 - Disclosure - Note 3 - Fair Value Measurements link:calculationLink link:definitionLink link:presentationLink 011 - Disclosure - Note 4 - Derivative Instruments and Hedging Activities link:calculationLink link:definitionLink link:presentationLink 012 - Disclosure - Note 5 - Stockholders' Equity link:calculationLink link:definitionLink link:presentationLink 013 - Disclosure - Note 6 - Share-based Compensation link:calculationLink link:definitionLink link:presentationLink 014 - Disclosure - Note 7 - Commitments and Contingencies link:calculationLink link:definitionLink link:presentationLink 015 - Disclosure - Note 8 - Revenue link:calculationLink link:definitionLink link:presentationLink 016 - Disclosure - Note 9 - Income Taxes link:calculationLink link:definitionLink link:presentationLink 017 - Disclosure - Note 10 - Accumulated Other Comprehensive Loss link:calculationLink link:definitionLink link:presentationLink 018 - Disclosure - Note 11 - Net Income Per Share link:calculationLink link:definitionLink link:presentationLink 019 - Disclosure - Note 12 - Segment Information link:calculationLink link:definitionLink link:presentationLink 020 - Disclosure - Note 13 - Recent Accounting and Reporting Developments link:calculationLink link:definitionLink link:presentationLink 995467 - Disclosure - Note 2 - Inventories (Tables) link:calculationLink link:definitionLink link:presentationLink 995468 - Disclosure - Note 3 - Fair Value Measurements (Tables) link:calculationLink link:definitionLink link:presentationLink 995469 - Disclosure - Note 4 - Derivative Instruments and Hedging Activities (Tables) link:calculationLink link:definitionLink link:presentationLink 995470 - Disclosure - Note 6 - Share-based Compensation (Tables) link:calculationLink link:definitionLink link:presentationLink 995471 - Disclosure - Note 8 - Revenue (Tables) link:calculationLink link:definitionLink link:presentationLink 995472 - Disclosure - Note 10 - Accumulated Other Comprehensive Loss (Tables) link:calculationLink link:definitionLink link:presentationLink 995473 - Disclosure - Note 11 - Net Income Per Share (Tables) link:calculationLink link:definitionLink link:presentationLink 995474 - Disclosure - Note 12 - Segment Information (Tables) link:calculationLink link:definitionLink link:presentationLink 995475 - Disclosure - Note 1 - Organization and Basis of Presentation (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995476 - Disclosure - Note 2 - Inventories - Components of Inventories (Details) link:calculationLink link:definitionLink link:presentationLink 995477 - Disclosure - Note 3 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details) link:calculationLink link:definitionLink link:presentationLink 995478 - Disclosure - Note 4 - Derivative Instruments and Hedging Activities (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995479 - Disclosure - Note 4 - Derivative Instruments and Hedging Activities - Summary of Gains (Losses) (Details) link:calculationLink link:definitionLink link:presentationLink 995480 - Disclosure - Note 5 - Stockholders' Equity (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995481 - Disclosure - Note 6 - Share-based Compensation (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995482 - Disclosure - Note 6 - Share-based Compensation - Share-based Compensation Expense (Details) link:calculationLink link:definitionLink link:presentationLink 995483 - Disclosure - Note 6 - Share-based Compensation - RSU and PSA Activity (Details) link:calculationLink link:definitionLink link:presentationLink 995484 - Disclosure - Note 7 - Commitments and Contingencies (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995485 - Disclosure - Note 8 - Revenue 1 (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995486 - Disclosure - Note 8 - Revenue 2 (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995487 - Disclosure - Note 8 - Revenue - Disaggregation of Revenue (Details) link:calculationLink link:definitionLink link:presentationLink 995488 - Disclosure - Note 8 - Revenue - Contract With Customer Assets and Liabilities (Details) link:calculationLink link:definitionLink link:presentationLink 995489 - Disclosure - Note 9 - Income Taxes (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995490 - Disclosure - Note 10 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details) link:calculationLink link:definitionLink link:presentationLink 995491 - Disclosure - Note 10 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details) link:calculationLink link:definitionLink link:presentationLink 995492 - Disclosure - Note 11 - Net Income Per Share (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995493 - Disclosure - Note 11 - Net Income Per Share - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details) link:calculationLink link:definitionLink link:presentationLink 995494 - Disclosure - Note 12 - Segment Information - Information Related to the Operations of the Company's Operating Segments (Details) link:calculationLink link:definitionLink link:presentationLink EX-101.CAL 9 nwpx-20240331_cal.xml XBRL TAXONOMY EXTENSION CALCULATION LINKBASE EX-101.DEF 10 nwpx-20240331_def.xml XBRL TAXONOMY EXTENSION DEFINITION LINKBASE EX-101.LAB 11 nwpx-20240331_lab.xml XBRL TAXONOMY EXTENSION LABEL LINKBASE Document And Entity Information us-gaap_DerivativeNotionalAmount Derivative, Notional Amount Note To Financial Statement Details Textual Note 2 - Inventories Note 3 - Fair Value Measurements Hedging Relationship [Domain] Note 4 - Derivative Instruments and Hedging Activities Note 6 - Share-based Compensation Cash Flow Hedging [Member] Note 8 - Revenue Note 10 - Accumulated Other Comprehensive Loss Not Designated as Hedging Instrument [Member] Note 11 - Net Income Per Share Note 12 - Segment Information Note 2 - Inventories - Components of Inventories (Details) Hedging Relationship [Axis] Income Tax Disclosure [Text Block] Borrowings on line of credit Note 3 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details) Note 4 - Derivative Instruments and Hedging Activities - Summary of Gains (Losses) (Details) Hedging Designation [Axis] Note 6 - Share-based Compensation - Share-based Compensation Expense (Details) Hedging Designation [Domain] Other assets us-gaap_ShareBasedCompensation Share-based compensation expense Note 6 - Share-based Compensation - RSU and PSA Activity (Details) Designated as Hedging Instrument [Member] us-gaap_LiabilitiesCurrent Total current liabilities Note 8 - Revenue - Disaggregation of Revenue (Details) Note 8 - Revenue - Contract With Customer Assets and Liabilities (Details) Note 10 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details) Note 10 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details) Note 11 - Net Income Per Share - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details) Note 12 - Segment Information - Information Related to the Operations of the Company's Operating Segments (Details) Notes To Financial Statements Notes To Financial Statements [Abstract] us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent Pension liability adjustment nwpx_PerformanceShareAwardTargetLevelPercentage Performance Share Award Target Level, Percentage Represents the target level percentage for performance share awards. Schedule of Changes in Accumulated Other Comprehensive Income Loss [Table Text Block] Represents schedule of changes in accumulated other comprehensive income loss. Total financial assets RSUs and PSAs granted (in dollars per share) RSUs vested (in dollars per share) us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue Unvested RSUs and PSAs, weighted average grant date fair value (in dollars per share) Unvested RSUs and PSAs, weighted average grant date fair value (in dollars per share) Restricted Stock Units [Member] Represents the restricted stock units. us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber Unvested RSUs and PSAs (in shares) Unvested RSUs and PSAs (in shares) Other comprehensive income before reclassifications Reclassified to Interest Expense [Member] Related to reclassified to interest expense. us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent Amounts reclassified from Accumulated other comprehensive loss RSUs and PSAs granted (in shares) us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod RSUs vested (in shares) Current debt Reclassified to Net Sales [Member] Related to reclassified to net sales. Other comprehensive income (loss), net of tax: us-gaap_AssetsCurrent Total current assets Equity [Text Block] nwpx_NumberOfManufacturingFacilities Number of Manufacturing Facilities Represents number of manufacturing facilities. Common stock, $.01 par value, 15,000,000 shares authorized, 9,872,897 and 9,985,580 shares issued and outstanding as of March 31, 2024 and December 31, 2023, respectively Adjustments to reconcile net income to net cash provided by (used in) operating activities: Common stock, shares authorized (in shares) Common stock, shares issued (in shares) Contract liabilities Common stock, par value (in dollars per share) Accrued liabilities Statistical Measurement [Domain] Pension Plan [Member] Share Repurchase Program [Member] Represents information regarding the share repurchase program. Maximum [Member] Noncash investing and financing activities: Minimum [Member] Accounts payable nwpx_Rule10b51TradingPlanDesignatedAmount Rule 10b5-1 Trading Plan, Designated Amount The amount of stock designated for repurchase under the Company's Rule 10b5-1 trading plan. Statistical Measurement [Axis] Retirement Plan Type [Axis] Retirement Plan Type [Domain] Accrued property and equipment purchases Contract assets Preferred stock, $.01 par value, 10,000,000 shares authorized, none issued or outstanding Preferred stock, shares issued (in shares) us-gaap_PolicyTextBlockAbstract Accounting Policies Preferred stock, shares authorized (in shares) Depreciation and finance lease amortization The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives and amount of amortization expense attributable to right-of-use asset from finance lease. Inventories Total inventories Portland Harbor Superfund Site [Member] Represents the Portland Harbor Superfund Site. Preferred stock, par value (in dollars per share) Net sales Fair Value, Inputs, Level 3 [Member] us-gaap_PaymentsToAcquirePropertyPlantAndEquipment Purchases of property and equipment Fair Value Hierarchy and NAV [Domain] Contract With Customer, Asset, Other Represents the other portion of contract with customer, asset. Contract With Customer, Asset, Billings Represents billings portion of the contract with customer, asset. The 1.941% Interest Rate Swap [Member] Relating to the 1.941% interest rate swap. Fair Value, Inputs, Level 1 [Member] Contract With Customer, Liability, Billings Represents the billings portion of the contract with customer liability. The 2.96% Interest Rate Swap [Member] Relating to the 2.96% interest rate swap. Fair Value, Inputs, Level 2 [Member] Shares used in per share calculations: Fair Value Hierarchy and NAV [Axis] Property and equipment Current liabilities: us-gaap_LossContingencyAccrualCarryingValueCurrent Loss Contingency, Accrual, Current Contract With Customer, Liability, Other Represents the other portion of contract with customer, liability. us-gaap_Assets Total assets Trade and other receivables, net of allowance of $159 and $121 us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions Share-Based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount nwpx_OtherCommitmentAmountPaidForEquipmentPurchasedYetNotReceived Other Commitment, Amount Paid for Equipment Purchased Yet Not Received Amount of commitment of payment for equipment purchased but not received. Cash flows from operating activities: us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year) Schedule of Segment Reporting Information, by Segment [Table Text Block] Statement [Line Items] Accumulated Defined Benefit Plans Adjustment Attributable to Parent [Member] us-gaap_NumberOfOperatingSegments Number of Operating Segments Engineered Steel Pressure Pipe [Member] Represents Engineered Steel Pressure Pipe segment. Precast Infrastructure and Engineered Systems [Member] Represents Precast Infrastructure and Engineered Systems segment. Accumulated Gain (Loss), Net, Cash Flow Hedge, Parent [Member] Deferred compensation plan Share-Based Payment Arrangement [Text Block] Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block] Additional paid-in-capital AOCI Attributable to Parent [Member] Stockholders’ equity: us-gaap_ContractWithCustomerAssetNet Balance, beginning of period Balance, end of period Other income (expense) Deferred Compensation Plan [Member] Represents deferred compensation plan. Segment Reporting Disclosure [Text Block] Award Type [Domain] Current assets: Fair Value Disclosures [Text Block] Award Type [Axis] Net income Net income Intangible assets, net us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations Cash and cash equivalents, beginning of period Cash and cash equivalents, end of period us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect Change in cash and cash equivalents us-gaap_Liabilities Total liabilities us-gaap_NetCashProvidedByUsedInFinancingActivities Net cash provided by (used in) financing activities us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice Contract with Customer, Liability, Cumulative Catch-up Adjustment to Revenue, Change in Estimate of Transaction Price Commitments and contingencies (Note 7) Performance Shares [Member] us-gaap_OperatingIncomeLoss Operating income us-gaap_NetCashProvidedByUsedInOperatingActivities Net cash provided by (used in) operating activities Revenue recognized Prepaid expenses and other us-gaap_NetCashProvidedByUsedInInvestingActivities Net cash used in investing activities Loss Contingency, Nature [Domain] Gross profit Gross profit Cost of sales Counterparty Name [Axis] Counterparty Name [Domain] Loss Contingency Nature [Axis] us-gaap_DeferredIncomeTaxLiabilitiesNet Deferred income taxes Consolidation Items [Domain] Commitments and Contingencies Disclosure [Text Block] Accumulated depreciation and amortization us-gaap_ContractWithCustomerLiability Balance, beginning of period Balance, end of period Property and equipment, less accumulated depreciation and amortization of $129,510 and $126,359 us-gaap_DerivativeLiabilities Foreign currency forward contracts Goodwill Consolidation Items [Axis] us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation Tax withholdings related to net share settlements of equity awards Capital Addition Purchase Commitments [Member] us-gaap_LettersOfCreditOutstandingAmount Letters of Credit Outstanding, Amount us-gaap_DerivativeAssets Derivative assets Derivative Instrument [Axis] Derivative Contract [Domain] Cash flows from investing activities: us-gaap_PaymentsForRepurchaseOfCommonStock Repurchase of common stock us-gaap_EarningsPerShareAbstract Net income per share: Retained Earnings [Member] Earnings Per Share [Text Block] nwpx_NumberOfInactiveStockIncentivePlans Number Of Inactive Stock Incentive Plans The number of inactive stock incentive plans. Additional Paid-in Capital [Member] Common Stock [Member] Income tax expense Tax (expense) benefit Equity Components [Axis] Equity Component [Domain] Environmental Remediation Site [Domain] us-gaap_RevenueRemainingPerformanceObligationPercentage Revenue, Remaining Performance Obligation, Percentage us-gaap_IncreaseDecreaseInAccountsPayable Accounts payable Gains (losses) recognized on derivatives us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1 Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Year) us-gaap_RevenueRemainingPerformanceObligation Revenue, Remaining Performance Obligation, Amount Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis] Environmental Remediation Site [Axis] us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest Income before income taxes Reclassification out of Accumulated Other Comprehensive Income [Member] us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax Pension liability adjustment, tax expense/benefit Revenue recognized in advance of billings Represents the revenue recognized in contract with customer, asset. Reclassification out of Accumulated Other Comprehensive Income [Axis] Reclassification out of Accumulated Other Comprehensive Income [Domain] Comprehensive Income (Loss) Note [Text Block] Reclassification out of Accumulated Other Comprehensive Income [Table Text Block] Cash and cash equivalents Timing of Transfer of Good or Service [Domain] Transferred at Point in Time [Member] Transferred over Time [Member] Disaggregation of Revenue [Table Text Block] us-gaap_AllocatedShareBasedCompensationExpense Share-based compensation expense Timing of Transfer of Good or Service [Axis] us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTaxParent Unrealized gain (loss) on cash flow hedges, tax expense/benefit Revenue from Contract with Customer [Text Block] Schedule Of Inventory Current And Non Current [Table Text Block] Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process. Includes current and non-current inventory balances. Document Quarterly Report Amendment Flag Entity Incorporation, State or Country Code Accounting Policies [Abstract] us-gaap_OpenTaxYear Open Tax Year us-gaap_ComprehensiveIncomeNetOfTax Comprehensive income Document Transition Report City Area Code nwpx_EstimatedCostOfEPASelectedRemedy Estimated Cost of EPA Selected Remedy The estimated cost of the remedy selected by EPA. nwpx_EstimatedTimeToCompleteSelectedEPARemedy Estimated Time to Complete Selected EPA Remedy (Year) The estimated amount of time to complete the selected EPA remedy. Selling, General and Administrative Expenses [Member] Entity Interactive Data Current nwpx_NumberOfPotentiallyResponsibleParties Number Of Potentially Responsible Parties Number of potentially responsible parties for Portland Harbor Superfund site. Portland Harbor Natural Resources Trustee Council [Member] The name or description of the loss contingency by its nature. us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities Accrued and other liabilities nwpx_NumberOfActiveStockIncentivePlans Number Of Active Stock Incentive Plans The number of active stock incentive plans. Interest Expense [Member] us-gaap_SharesOutstanding Balances (in shares) Balances (in shares) Security Exchange Name nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number At Target Level Of Performance (in shares) The number of non-vested equity-based payment instruments at a target level of performance, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date. Common stock, shares outstanding (in shares) nwpx_PerformanceAwardsIssuedMultiplier Performance Awards Issued Multiplier The percentage of the performance awards issued multiplier. Preferred stock, shares outstanding (in shares) Title of 12(b) Security Restricted Stock Units and Performance Stock Awards [Member] The type or description of the award. Current Fiscal Year End Date Cost of Sales [Member] us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets Prepaid expenses and other assets Document Fiscal Period Focus Sales [Member] Document Fiscal Year Focus Right-of-use assets obtained in exchange for finance lease liabilities Document Period End Date Right-of-use assets obtained in exchange for operating lease liabilities Statement of Income Location, Balance [Axis] Statement of Income Location, Balance [Domain] Entity File Number Entity Emerging Growth Company Document Type Entity Small Business Entity Shell Company Document Information [Line Items] Document Information [Table] Entity Filer Category Entity Current Reporting Status Segments [Axis] Segments [Domain] Property and Equipment [Member] Represents property and equipment. Effect of potentially dilutive common shares (in shares) Foreign Exchange Forward 1 [Member] Represents one forward exchange forward contract us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares) us-gaap_RepaymentsOfLinesOfCredit Repayments on line of credit us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding Diluted (in shares) Diluted weighted-average common shares outstanding (in shares) Share-based compensation expense us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables Trade and other receivables Statement of Comprehensive Income [Abstract] Entity Tax Identification Number Entity Central Index Key Entity Registrant Name us-gaap_ProceedsFromLinesOfCredit Borrowings on line of credit Entity [Domain] Legal Entity [Axis] Statement [Table] Entity Address, Address Line One Statement of Financial Position [Abstract] Diluted (in dollars per share) Diluted (in dollars per share) Basic (in shares) ecd_NonRule10b51ArrTrmntdFlag Non-Rule 10b5-1 Arrangement Terminated [Flag] us-gaap_AmortizationOfIntangibleAssets Amortization of intangible assets Entity Address, City or Town ecd_Rule10b51ArrTrmntdFlag Rule 10b5-1 Arrangement Terminated [Flag] us-gaap_EffectiveIncomeTaxRateContinuingOperations Effective Income Tax Rate Reconciliation, Percent ecd_Rule10b51ArrAdoptedFlag Rule 10b5-1 Arrangement Adopted [Flag] Entity Address, Postal Zip Code Basic (in dollars per share) Basic (in dollars per share) Entity Address, State or Province ecd_NonRule10b51ArrAdoptedFlag Non-Rule 10b5-1 Arrangement Adopted [Flag] Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block] Material Terms of Trading Arrangement [Text Block] Allowance for doubtful accounts Statement of Cash Flows [Abstract] Entity Common Stock, Shares Outstanding Statement of Stockholders' Equity [Abstract] us-gaap_StockRepurchasedAndRetiredDuringPeriodValue Stock Repurchased and Retired During Period, Value Repurchase of common stock us-gaap_StockRepurchasedAndRetiredDuringPeriodShares Stock Repurchased and Retired During Period, Shares (in shares) Repurchase of common stock (in shares) us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent Net current period other comprehensive income Income Statement [Abstract] us-gaap_IncreaseDecreaseInInventories Inventories Trading Symbol Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block] us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), before Reclassification and Tax Local Phone Number us-gaap_TableTextBlock Notes Tables us-gaap_OtherCommitment Other Commitment Accounting Standards Update and Change in Accounting Principle [Text Block] srt_StockRepurchaseProgramAuthorizedAmount1 Stock Repurchase Program, Authorized Amount Share Repurchase Program [Domain] Share Repurchase Program [Axis] Issuance of common stock under stock compensation plans, net of tax withholdings (in shares) Selling, general, and administrative expense Other Commitments [Axis] Other Commitments [Domain] us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation Issuance of common stock under stock compensation plans, net of tax withholdings us-gaap_PaymentsForProceedsFromOtherInvestingActivities Other investing activities Cash flows from financing activities: Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block] Other long-term liabilities Raw materials Supplies us-gaap_LiabilitiesAndStockholdersEquity Total liabilities and stockholders’ equity Finished goods Work-in-process Schedule of Unvested Restricted Stock Units and Performance Share Awards Activity [Table Text Block] Tabular disclosure of the change in restricted stock units (RSUs) and performance share awards (PSAs). us-gaap_IncreaseDecreaseInContractWithCustomerAsset Contract assets, net Retained earnings Accumulated other comprehensive loss Derivative Instruments, Gain (Loss) [Table Text Block] Gain on cash flow hedges Interest expense Lower Willamette Group [Member] Refers to information regarding the Lower Willamette Group. Changes in operating assets and liabilities: Foreign Exchange Forward [Member] us-gaap_StockholdersEquity Total stockholders’ equity Balance Balance us-gaap_DisclosureTextBlockAbstract Notes to Financial Statements Derivative Instruments and Hedging Activities Disclosure [Text Block] us-gaap_OtherNoncashIncomeExpense Other, net Inventory Disclosure [Text Block] Operating lease liabilities Class of Stock [Axis] Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] Current portion of operating lease liabilities Interest Rate Swap [Member] Reclassification, Type [Domain] Reclassification, Type [Axis] Unrealized gain on derivatives designated as cash flow hedges Operating Segments [Member] us-gaap_DerivativeFixedInterestRate Derivative, Fixed Interest Rate us-gaap_OperatingLeaseRightOfUseAsset Operating lease right-of-use assets us-gaap_FinanceLeasePrincipalPayments Payments on finance lease obligations Deferred income taxes us-gaap_CashFlowHedgeGainLossToBeReclassifiedWithinTwelveMonths Cash Flow Hedge Gain (Loss) to be Reclassified within 12 Months EX-101.PRE 12 nwpx-20240331_pre.xml XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE GRAPHIC 13 a01.jpg begin 644 a01.jpg M_]C_X 02D9)1@ ! 0$ E@"6 #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" A 9\# 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)B7J#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#L?@/^SW!^ MV5?^/?&'CCQAXCAU.UUV6RC2PN$$:QX#!0'5L ;L!1@ "L/XZ? 'X)_ _7K? MPY)XJ^(/BGQ;<*&31-%FMGE3(ROF$Q?*2.0H!;'.,$&O=O\ @FG_ ,B;\2?^ MQHE_]%I5/]ARSL-9^-GQPUO752;Q[#KI>\GKM=_>?.OPQ^%?P7\;>,K7PEXC MU7XE_#WQ#>,JVL&O2VZQSLQPJAO(4JQ/ W* 3P#GBO3OVA/V(]!^ /PCUOQ_ MX:\;>*_[;T5K>6V\ZZC"[GGCC)RB*P(#D@@]17KO_!2C2] D^ *ZIJ ABU^S MU&W&D7&0LV]F_>(IZX\L,Q'3* ]A6E^UC=:A??L':I<:L&&JS:3I4EV''/G& M>V+Y]]V:B.+JU)4:D)-1E*S3UZK;RU+E@Z5*-:E.*5E&7(SU.3R:^9K)*K M)+NSZJBW*E%OLC]5I_B#H:_#V;QO:WBZEX<33&U=+NRQ()K98C+N3IG*CBOC MC_A\E\!/^?3QA_X*XO\ X_7C7_!./]H+6/@Q\0M:_9:^+\7V5TN9;71UOL/' M',V2]H2>&BF#;XST)8CG>N.)\#^ _#$W_!8?6O#QB-FH M&FEAB';L #?-TZ\UB;'Z^Z?>QZE8VUW#N\JXC65-PP=K $9_ U8K\S?B)^W] M\9?CG\6M4^'W[+7A2WU#3M%+1SZ]+;QR^:%;9Y@,I$,,1((7=EF R,=*G^%7 M_!0#XQ?!/XR:3\.?VH?#$.E0:PZ):>((($A\DLVQ9&,1,4L.[ABF"F+[?X>VNF>-9M3LV\-:+'P;#J\3^'98HKS^U+58 M06D,@79AVS_JVSG':N!\'_\ !2;X2^./C5;_ NTZW\1CQ+/JDND(\UA&MOY MT;,K$N)2=N4/.W\*^ /^"6OB+XTZ=\7M8M?!>@VE]X1OM9LE\9W4R1%[.+=- M@H6D4C@R_=#=!71?MN>(+3X#_P#!2SP=XD\->$HKZZL["TO(M%TF!86O[R1K MA5&$7EW=ER<%C[F@#]B**_*/QI^W+^UY^SAXET7Q+\7O 6GVW@G4[G9_9\=K M$J!3\QB2>.1VCE"@D"4G.#P<''9_MJ?MR?'3X.7^@^,_ .F:2WP?\16%E-I& MLZA9+,TL\T!F:-L2AE. >"H'!P3B@#]*:*^&OB7^VQ\0?V??V*_!7Q"\;Z)I M$_Q.\0W8@BTLG%JT;-)(LN(I#QY"H>&ZNN?2J7Q=_;2^)VH_L0^"_CA\,M+T M@74TA/B6.Z598+!%+PR;0\BL?WX0 #@#[RHK\Y/@#^WQ\6-+^"?BOX MQ?&[0K*+P$MI&GAE],@2WEU:^,SQF% 9&8#*-EBH "LPSBL#P[\;_P!O/XU^ M'3\0_!GA;0]$\*W -QIVCS06ZR74.,J4$[>8X(Z-E W5>"* /TZHKXX_95_X M*"6_Q>\!^/5\=Z"_A;Q_X L+C4-* /TT\8^*;/P/X1UOQ'J(E;3](L9M0N1 NZ0QQ1L[[1D9.%.!FN!_9P_:4 M\)?M2>![KQ7X-CU*+2[:^?3W75+=89/,5$OVI_B;^ MQ;X@UM_ \-IKG%-O$"W+Z-HMO]IN5LXQ)*5W!?E4D G)'<5\A_\/DO@)_SZ>,/_!7%_P#' MZ^WM8T;3_$.F7&G:K8VVIZ?<+LFM+R%98I5]&1@01[$5^-W[#_@7X?>(OV\O MC'I'C31/#UYX>M#J_P!ELM9@A^RPNNHHJ>6C_*"%+ #@9H _1S]GS]NSX0? MM+:PVB^$=?EA\0",RKH^K6YMKB10,L8\DJ^!R0K$@>*'>.P.FVJS("KQH=Y+KCF5>@/>OS#_:E\-^ ?A]_P4$^&EO\ M 0V=OJ7V[37O;+0) ]K!?-=;=B;"57='MWH. "M9M MY^UI^VE\5-/E^('PV^$UI8?#P@SV%I=6R3W5W;@\.5:59),CG]TH!_ASUH _ M3:BOE/\ 8?\ VZ]+_:O\.ZS::QIT?A7QQX?3S-4TW>?(:')'GQ%N0H(PRMRA M(R3D&O ]4_;8_:"_:J^(VNZ'^S'X:L;7PCHS?\ !23X\:K\ OV7=:U/0+EK+7]9N8M$LKN,X>W, MH9I)%/9A'')@]F(/:@"7XY?\%'O@A\!?$%QH&KZ_)K<:A!:ZEF2V MM+9^8\1YP[LN'+-G&X 8P2>Q_:?_ ."3OPZ^+5C;7GPXAL_AKXBBD E^SPL] MC" #["^%?Q.T+XR?#_ $;QGX9FFN-"U>)IK62XB,3L MH=D.5/(Y4UU=?*=QXXT;_@F[^QGX;L_%]\GB*^T2(Z;9P6(\DZE=/))(J(&S MM 4DLQS@*3@G /RU:_MH?ML>*M!/Q*T+X2V/_" ;#AKB.V MA*LSW"E7C+1E48@Y!!5@0<9/B'P[_P""D7[2G[0/@^;3?AG\+]-UKQ=8S23Z MIJ=I:N;.WMB!Y,:))-CS25E)W,<@ *O!- 'ZL45^8'@G_@JQ\2?%'A>X\#V_ MPK;5?CZ-0;3X-+MK>5;0JJL9998BV]'C*D,FX#^(LH!%;'P9_P""AGQC\$_M M!Z'\+?VB/!%IH,NOSQ6]I>6MN;>2!Y7V1/P[QRQ%_E+*XE$:M.H*3*/E+8^Z/QKG;W] MNW]JSXA:?/XZ^&?P+A?X:1YEMI=1M99[J[A4G,@"S(S@@'_5(P'JV,T ?I;1 M7S)^QQ^W-X9_:J\"ZSJ%Q;+X5\1^'HQ)K6F7$P:.*/!/VB-R!F+Y6SD J1@] MB?F+Q!_P47^./[0?Q!U?0OV9_AU#JVA:4Y5]6U"W\R291(H5?!*JQ+ M$>AR ?IQ17Y)^/O^"JWQ^\!:EH_@K5_AEH^@?$.&5H-2MM4M)]EUO*"W>%! M*NW.7!^9U;Y2I'(KU?\ :8_;4_:3^ 'PU^'WBFZ^'NAV46I:6A\02ZA9RM'9 M:DTTJK H6X!7,:*V#NZGGM0!^BM%?EGK/_!0#]JWQAX#M/B)X'^$%K;> ;.R MCEO-2N=/DN!=.B#[1,@$H80!P^-H;:HY'Y4>XA1-A=YHP'1BA4J1SD'<.<9(!]T45^?O["/[<'QG_: MHU7QPVL>%M!31M$T:66VN=*MY8RVHY7R('WS-PZ^8>@^YUKQGP)_P4=_:S^) MGB[6O"_A;X8>&=Q]* /I/\ X)VZS9>' M?AK\5M5U*YCL]/LO$-Q<7%Q*<+'&D*LS'V !KQOXU?&+X/\ C?X@?\+!^'WC M#Q3\/O&[+LN+ZSTHM!> 8&759 02 >H.!E<\UR5MK'AGX9Z!XV^%?Q:T+QI M9R2>*'U=)/#GE1B91&8@&,IP\9!W# (.5/:OH'PQ_P %#OA+X.\.Z;H>D^ / M$MKINGP);6\*VEN=J*,#)\WD^I/)))K[25&<*TJ].#DY=FDK67>][^A\1"M" M="&'J3C%1[IMWOY6M;U/#/"_Q+^'6O>.=-\5?&/XB>*?B-+I;B2RTL:.8K1& M!!!8%\$9 )55&<#)(XKZM_:F^)WA_P"+_P"PWXL\4^&;LW>E7B6H4NNUT9;V M%61U_A8$=/H>A!KF&_X*8?#5E*MX'\3$$8(-G;<_^1:^:O$_Q,^&%YX'\?\ MAGX8^%?'46L>-9(%CTN\6%[*W*W45JV MUK7UV2MW'[>G0I3IPJ1DI)WT=[VTW;OV/T=_9H_Y-Z^&_P#V+]E_Z)6OS=_X M+*Z]IFI?%KX0P6FI6=U/8I=QW<4,Z.UNWG0'$@!RAX/7'0U^FOP/\.7_ (0^ M#?@C1-4B\C4M/T:TMKF+.=DBQ*&7\#D?A7S9\5/^"5?P@^+WQ%\0^--:U/Q3 M#JNN7;WMS'9WT*1*[=0H,)('U)KY.LTZLFN[/L*":I03[(X3_@I1^RO:_'CX M?VOQE^&=Q!?>,O#,6^:?1IED.H6D1+'8\9YFA(+*0_9Q^&.G M^!/"\U]<:-8RS2QR:C*LDQ,LC2-EE51U8XXZ5Y;\/_\ @GU\+/A?\?V^+?AM M=6TW7//N+A--CN$_L^-IXV20)'Y>X+\[$+NP">. !6)L?(__ 2#^+/A#X6V M_P 0OAEXOO+3PKXW;5_/":I(MNUR(T\IX S$#?&Z.=F<_O"0#@X@_P""N?Q0 M\)_&+4OAM\,?!5W:>*_'$>JLS#2Y%G^S^6"<9%?5?[2 MW_!-WX3?M+>(I?$NH17_ (7\43X^TZIH;HGVK P#+&ZLK-@8W !CW)P*F_9G M_P""<_PH_9DUY/$6EPWWB7Q3$&$&K:Y(CM;9!!\F-%54)!QNP6QG!&30!\>? MMOS:)H,)5F.<+T)(;'!YK]7[>]M M]2T^.[M)XKJUGC$D4\+ATD4C(96'!!'<5\:?$+_@DW\&_B5X[\0^+-4U3Q7% MJ6N7\^HW*6U]"L0EEAZ?!IM MJUPP:4Q11A%+$ MA1DX% 'YK_\ !''Q)I&C^(OC-9W^JV-C=WVI64=K;W-R MDH]:H_M'>)M!N/^"N7PMU!M7TV33+."Q6XNC=1F&"1# M_$S1/'.FZGXIEUC2-3CU:WCN;Z%H3,D M@D4,!""5W <9_&LGQ3_P2%^"WB[Q-J^NWFJ^+4O-4O)KV98;^ ('DS&HV3WMQJUC=6UOYZ&26/+#S$7.67!^\..:Y[Q=X M!T_XZ?\ !)31M*TNYM]3U;P_X5L=5CCM95E>"XMHED>-@"=KF+S5VG!^:O:_ MCQ_P3T^&G[0__"(_\)+?>(+?_A&-)CT:R_LZ[BCW0)C:7W1-EN.HQ]*[+]FW M]DCP3^R[X/U[PSX6EU/4-,UJY^TW:ZQ,DS$F,1E1M11M*CICO0!^5/P3U.\_ M;\\=?L_?"'6H[H^'/ NB72ZS('(WQHY"L"/6-+2+)Z%C7G5QX\\6:!\(]<_9 M-CMYY=7LW9X#_ 'OO<^U 'S)_P5(^"=SX%_8A^'.A>'86ET'P5?V=O>>4 M#@1_9WA6=A[R,,D]Y:P/@_\ _XO?%#X4Z3XN\,_MH30>'?L4;/&0\8TX!0# M#*#./+*8VD''3(XQ7Z;>(/#^F>+-#O\ 1M9L+?5-)OX6M[JSNHP\4T;##*RG M@@BOA?Q1_P $:O@[K7B*:^TK7O%/AW3)GWR:1:744D0&<[4:2-G _P!XMB@# MRS]COX6^!$^,_P 2OB9JGQ\M?B[;67AR]A\7'^P[R%7M9$"N\D[Y61=D#<)D ML%R,XKB_#_['=G?:/XM^)?[(O[0-U#I6E&5[O3;B2XL9(MB&41--A=Z[2=ID MCQZMP37Z/^!/V4OAW\,O@MK?PP\+Z2^C^']:LY[/4+B&3=>7/G1&)Y7E8'+[ M3P2,# '%?.6J?\$@/A6NEQV/AWQ=XT\,QRPFWU'[+J*.NHIN+#SE,>TXSC M &W '&,_VEOV._CO8^.94U+6/#.@74::PL2QM=136=P5$@4! M=ZF)OF &0PR,@D['_!&;Q)I,'[.NK:-)JMC'K$WB2ZDBT]KE!<.@MX"6$>=Q M'!YQC@^E?4'PL_9'^'OP;^"NM_#+PS9W5IHVN6T]OJ5\\P:]NFFB,3R-)C&X M*<* HQP.N?-O@+_ ,$T_A7^SK\4-*\>>&=0\27&M::DR0QZC>120D2Q-$V5 M6)2?E# M_%&CZ]9:KXM>\TN\AOH%FOX"ADB<.H8" $C*C/- '7_LP_\ !-OX7?LQ^*$\ M4V4FH>*?%,(9;74=89"MH&&"8HT4 ,02-QR<$@8R<_+_ /P5VU[3+KXX? 6" M'4K.6?3[RX%Y$EPA:VS/9L/, .4R,GYL<"OU0KX_^,G_ 2[^$OQQ^)NO>.M M?U+Q/!K&LS+-<1V-["D(945!M5H6(&$'4F@#YR_X+6:Q8:MX=^#&H65Q;ZGI M\ESJ3I+;RAXI5 M\X9201P1D5]T_#3]J#X2>+/A%IOB_2_&.@Z7X6*X MO8H&T\*@S#(A(*,F-NW'.!C((K\N/^"E&L> ?ANGPM^!?A=M6N&^&KS?;&U. M-&#Q7*P3IAQ@.<%L_* .!S7T=X+_ ."LRS2# M2;:6*&/*2M&X5)$D,8W(V &(QC&!Q0!XE^S!I]U^T-^UY^TKXN^'-G+;>&]4 M\.ZY;6LP0Q+)-=@);Y'\+2.K2X/(P?2N._8(^''Q!^)7A_7/"G@[]HBZ^$NL MZ?J$CS^$&BD264E55IU D3<"XO"_@718](T MQ7\V5MQ>:YE( ,DLAY=B .O P ,5X1^T1_P3-^$O[0?BR?Q4_]I>#_ !-= M/YEW?:#(B)=/W>2)U9=Y[LNTGJ=8E=954#JWER.P Y)4 =:V?V8O^"?\ \+?V6]4?7-#M M[W7O%3HT8US6Y%EFA5L[A$JJJQY!P2!N(R,X)%?2U 'YW_\ !.O_ (* _#N\ M^"OAWX>^._$5GX1\3>&[==.@FU6406M[;)Q$RRM\JNJX4JQ!^7(SG [O]I__ M (*E_#/X(V-O:>"[FR^)WB::4*UGI=Z!:6\?\3/<*KJ6[!5R?7'?7^//_!+G MX+_''Q!=:^EKJ'@S7+IS)IR>:?\ +_@E_\ M!GX$>(+7Q!]DO_&6O6CB2VNO$$B21V[@Y#I"BJFX=BP8CJ,'F@#YA_X*=:CX MT^)'[.'P,^)/BGPB_AZ!-0FFU;P^DS3"U$ZHUN)6*J0S1Q,#D#:TFWK7WYX1 M_:@^$>M?">S\;V/C70K#PJMFLI,UW'$UHH7_ %+Q9W*ZXV[,9R, 'BO0O&G@ MO0OB)X6U+PWXETNWUG0]1B,%U8W2;HY%/\B#@@C!! (((KX=OO\ @C#\&+KQ M-]O@U_Q99Z27WG28[J%E _NB1HB^/J2?>@#PO]@O4+'6O&G[5GQ'TY(] ^'V MIV=[;6/VIU@B,DTDTL,0R0-RQ_PCIY@'>O5/^"*VJ:59_ KQM!+>V<.H-X@> M=X7F19?)6V@^?>I_^"G6M:9+^V-^SN4O[-FLKZW6\(G3-OB_A;$G/R8&3 M\V.,U[9X3_X)#_!;P?XHT;7K+5?%KWNE7D-] LU_ 4,D3AU# 0#(RHSR*VOB M[_P2T^$?QH^)6O\ C?7=2\40ZOK5Q]IN8[*]A2$-M"_*IA) X'4F@#PC_@MA MJ%IJ'@#X0WEM-%>V0PX(/J*^U/A/^TK\)?$7P5T;Q3I/ MB[0M+\-6NFQ>9%<7D4!T]4C ,,B$@HR8V[<=AC((K\TO^"I'B3P5X!TGX6? MGP]_:DUQ\/4!FDOT1E>WEAB,7SC&]L*<_*!7NW@#_@G9^S;^UIX8TKXI^#O^ M$J\*^']8DE8Z3:S10Q[HY6CD"HZ2&,;T; #8QC XH ^??@+HVH?'CXV?M>^ M*?AC97$'AG5?"NMV]DL,9C$\MS*K01A1T:012L%[9Q7T#_P1\^,_P_TOX(ZM MX'NM5T_0_&5MJT]["_V?O! M4'A;P-HL6CZ5&WFR8)>6XE( ,DLA^9V( Y/0 8 KYP^/'_ 2K^#WQN\6W M7B:!]4\%ZO>RF:]_L-XQ;W$A.6'-'TL/ MXDMY['S6FU*"^C%Q>L^SF4F(KA=GRJ@4#'SI)C_L^Z_X=M_V-_ ;_ -J: M7'IUOX0L;:YD-S&(8I39Q[HW.<*V6Y4\Y-?(W_!$G5;&'X>?$73WO+=+Z;6( M9(K5I5$KJ(.65,Y('KBOI'1?^">/PST']GGQ!\&K>^\0'PKK>J)J]S.]W$;L M3)Y6 K^5M"_N$X*GOS5;]GO_ ()P_"_]FKXE6WC?PMJ'B*YU>WMYK9(]2NXI M(=LB[6)"Q*/Z5]6?\ !)/X'R?#O]GF;QOJL3?\)!XZN?[0:67F3[&A98 3U^8F M23/<2+7Q]_P5,^/G@'XR?'[PMX6CLK^R7P9>W.E>(M7^SCSF7ST#I"N[YU0) M(RDXR7[V4444 %%%% !1110!^3O[0?\ @R7#Q[_V&+G_T,U^F/P;_ .22^#/^P/:?^B5HHH __]D! end GRAPHIC 14 a02.jpg begin 644 a02.jpg M_]C_X 02D9)1@ ! 0$!+ $L #_X0 B17AI9@ 34T *@ @ 0$2 , M ! $ #_VP!# (! 0(! 0(" @(" @(" P4# P,# P8$! ,%!P8' M!P<&!P<("0L)" @*" <'"@T*"@L,# P,!PD.#PT,#@L,# S_VP!# 0(" @,# M P8# P8," <(# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P, M# P,# P,# P,# P,# S_P 1" > )@# 2( A$! Q$!_\0 'P 04! 0$! M 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4%! 0 %] 0(# M 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*%A<8&1HE)B7J#A(6& MAXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&Q\C)RM+3U-76 MU]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! 0$! 0 M $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" Q$$!2$Q!A)! M40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF)R@I*C4V-S@Y M.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$A8:'B(F*DI.4 ME9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4U=;7V-G:XN/D MY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#UC_@F%_P2]^&/_!3W]F76 M_C=\;M8\;:YXTUKQ)JAU+43KTD4:11ON& P.R-02 H(5% 4 *,5X7'^Q?\/_ M -I#7_$%Y^S'^RW\4?B]\._#-T]E/XJU'QU%H<.J2IG=]CCG:(S*-IX3>_*; ME0LJG[4_X(>?#[4OBU_P0[\<>%='NC9ZMXDN/$>EV4X./+FFB,:'V^9A6Q_P M1V_X*.?!WX+?L,^'_A9\0/$6C_"OQ]\'X9-%\1Z%KL@LIHYHY')GCW#]XLF= MV1ELYR.A/WF*S#%TJU?V+&_BEX+\;>#;\Z7XI\)ZOKLB7N MB7(8C:28UWHVU@#@$%65E4C%>R_\$9/AW#>^$OVMO@3JFK>(-;^'/@WQG=>% MM(L[_49)9K#3YK5EDACESN13R<+@ DD $FKO_!*#7T_:Q_X*2_M*?M&>#[&^ ML?A-XL&F^'-#O9[]13_!NB.T]2K)N"OO18_^"46A:QXG^+G[ M>VF^']:C\-Z[J'Q(N;;3]6>S%ZNF7#VC+'.82R"78Q#;"R[L8R*\_,,15J4Z MU.K)M)0=F[\K;5UZJ]CTLNPM&G4HU*44FW-72MS)+1_/<_-W_@C_ /%RX_9L M\$>*/AS\6KZXU+]D']H+QKKGP[^T2ZA/%)X)UVV*>6LMQC,<5Y;R0+Y@?[T+ M,0GEL9.L_P"""W[0/Q.^&_[*W@GX8_LZ^'/#>L?'#XS7^M^(_$7B+QMJUQ_8 MF@Z/I6! MO'23RYHQ\WG?+ELQD[2OR9]497[0G_!;#]I[]G+]GCXJ6GB'P!\,K7XT?L\^ M*- A\86\-S/<:/XIT/63)!9W.F'*R+,;GRU=90H1"#]XF-<3_@K5XP_:V\7_ M Z_8SUK7]%^#_A/QMK'Q6ANH='_ +2O+B'3M3DE+:1;SRQ*5DA2 NMPR%LN M%V97->K?%;_@W:\8?%O]G/X@>']4_:-KSP9%.NLVFF M>:VG:;!8B\5;6&"5UEW+*Q=HP#A,*/>/VYO^"8OC[]LO]G3X*^&X?CE'X3^( M7P?UFP\0GQHG@U+PZIJ%K T8G6R-VB0;I#YFTO*!]W!ZT ?&=WX+^/GPH_X+ ML_'6S_9[T/X:R_$3QA\,]$\0^*;WQ7K5X-#L;PR*)S;1(C2N9GC5(P554569 MBN0#T>C_ /!:O]I#XA^&_P!FOQEIOA?X1^&?!?Q.\8_\*Q\82:Q<7+2Z1XCM M[N[6X\HQEA]EFMK<&)_GVRK(LFQ=KM]$^$O^"4OQB\*?\%"O$G[0"?M,0R7O MBKP@GA2]T_%G[1DOBBR\4>(K;Q7X;UR/P,FGW'A/45N9+BZF")?$S^>S]/,C\OYL M;@V >1^,/\ @Y,^)7Q7^"GQ6U?X1^#?!K>)O"/Q+L?#7A72]6BNWN/&6C7] MU9+;:5#(8YH[-%VJ;F5.7.,8SM]NB_X-^?!&G_ M +6'[,OQ&L?%4UKI/[./A?3_ Z/#K:1OB\2RZ?]HDLKZ23SPL,L=S:)K:4H &4;E9OFXZ4 ?.'Q3_ .#C7QEXN^'?[.>J>$['X9_"NQ^+ M5KK']N^*?',]Q?\ AJPU73;E[5M+BN;,D*LLB+)]IEPBPW4#Y^\M<'^T-\8/ MVM/CC^V[^P%XLC7]G]?&'B&#Q)=:,MEKD^H:#<7/EZ@)I&N+7S4DMGTK[*T3 MQ,[>\\$^*/V?[O6]2A\07G@M-6_M2[U4;;@QVS7D<=M"$:1%B!DX?.[?N9@"S_P M=8?!+POXR_X)BWWCS6EU*/6OAOK6FR:/=VE]-;_9$O=0M+6Z+)&<2;H"R@$$ MJ3D<]?E[_@FS<75G_P %#M6TW]@36/&6L?"&'X:S2Z^/'\VLQ>#E\3NY^SL5 MN8Q<+)A8@6CB+$!]N5W5^CO_ 5[_P""<'C/_@I[\#M+^'GA_P",:_"GPV;P M7NO0_P#")QZXVN-#-!/:+N:Y@,*PRPE_E+;RP!P%(;UK2?@9\0M!_8XM_ FG M_$RSL_B5;Z(FGKX[3PM#Y9O54 WQTT2B/) YC\W&3UQQ0!^-W[&7_!3WXV?L ME_\ !/G]C^/X+_#'P!K7AOXP>(M5\*6_AFYU.]?4&U7[?,L>VXE9EAMB&1FD M=CLP_"J-U?96@?\ !6'XT_L0?'[4OAS^U]X/\"1_VIX.U3QGX3\4?#NYN)M, MU4:;"9KO3F2Z6.03A I5L* SQC!#AE^$OVU/^">7BG_@GKX'_96^ 3>./BQ\ M0K/P+\0IO&MIXQ\%_#M[:?P79S% I3;+ S[6()0E<=#7Z0?"__ ((K MZIXN^.^N?$;]I/XU:I^T)XDN_"5WX)T6)?#D/AK3O#]A>1M'>/';Q33;[F1& M*B3+DLX;G2O!47VN!9KN MZ64,C'R3)L#*R[ADAMNQO8/BS_P11_:&^/OB6/6?'GQV^#OCC684$:7_ (@^ M!GAG4;F->NU9);%FQ[9Q7>^/O^#<+X'>+?'VO:YI7B'XF^#[?Q!?2ZC+I6B: MZ;:QMY96+OY487Y5W$X7^$8 X %92_\ !L]\(=H/_"R/C9S_ -3.W_Q-?75L MRPDZLJU.IRN3;=Z:D]>EV^GEIU/D\/@<73HQHU(.2BDE:?*M.MDEOYE?3O#_ M .V9_P $XO''@6^U+7G_ &EOA9%?"7@G2]$NO#RLH\BZA6VAB/EJW M##=M )R <$8/["GBK7/A9=_\%)-:\-J9/$GAWQGJE]IH"!C]HBT^1XF"G.?F M ."#FNF3_@V>^$*GY?B1\;5^GB=O_B:^J_V&/^"?_P /_P#@GS\*[WPKX#@U M"1-7O6U'5=0U*X^TWFISL-N^5\ '"C &/Q)K@QF,POU>4:;O*5D[0Y=G>[U MM?IHO4[L+A<3[>,IQM&-]Y63[2JWV1+9& C9B!H\>7N;*I=)CLA%-=VEHB1+: MS7#952CQN41RQP?WB^V_%S_@V8^ GQ+^(?B;4M'U_P"*'P_\+>.KE+SQ-X.\ M+^(GL= UR42%\R6^" ,MPH^5/X0M>U?'C_@CG\%OC+^SI\/OASI.F:M\-[?X M3R+-X&UOPA?OINL>%I0/ST_;&_P""@/[8 M'[)/@CX_?"J^^-NBZE\2_@;::/\ $;3?'%KX*T\-XH\/WDS6,NDW=LT1MK:9 M;BYLY%ECCW%(9 6P=U>@ZKXZ_;P\'?M@?"_X+7W[27@N[D_: \-3>)8/$"_# MZQ$W@,V)2:ZM[*$(([A9$FCB5KOS2%!/RL-S>\:Q_P &\7PCUS]FCQ+\.Y_' M'Q@DO/'_ (@M?$GC/Q9+XF>;7_&+VL,\-O;7T[AO-MH_M#2"(C'F*KF M?\$8/"-I^T[\(_BO>)6FMKN"WA$4AG4KEC<@(TX M4@2L@)!H ^#OB_\ \%'_ -KCP]_P2P^+_BRW^,6BZ?\ $_\ 9G^,-U\/M9UR M#PIII@\=VPU&"P1I(I86AM"DDY?=$B91 #ALL?>O&_[2'[67_!,GXF?!_P 7 M_'#XJ>#OC/\ #/XQ>(%\,ZUHNF>&+?2;CP=>3VT]W =-EAP]U"%@D0FY9R5C M7'S2;U^2?^"Y_P"R/X,_X(U_\$W/%OA70]:^)GQ+_P"&EO%FGOK,OBOQ,URE MO=65TFISW84)\UQ=>48Y)2=YR"2=H%?=?_!,[_@E5\*=5T?X/?M 2:M\5?%$ MUIH$.K>!/#?C+QA<:]IGP[6[MXS)'8)+C;A1$@8CI$AQE00 ?-#?M=_MO?M( M?\$VOB#^VCX/^.G@CP#X.6TUS5?#_P -CX0L;NWL--T^2YL2SW]Q&9VO@]L\ MZ L\4DNP; C^0JVW[07[;>O>.?V(_#>A_M-:6^I?M0>#]1U+5)]2^'^D&'3) M(]-DU$W*K';J7EB@E18T#+&TMM&9%9'<-]'_ !'_ .#:;X(^/+[QEI]MXP^, M/AGX<^.+R?6=0^'VC>*9K?PP-2E50+T6G*&1'2-U#9 ,48^ZH4;_ (<_X-__ M #X5\;_ 7U^W^+GQZ:^^!4(MO#._Q;(5@A\QFDB^[E(Y(F-NZ1[0T $9!4 M 4 ?('BK]M+]MRZ_9^_:X\$Z'\9--O/BI^Q_X@LM3G\56O@[3#)XUT6[M;N5 M[-K-K=H()8/LXE$D:9890YQN;V#]@+]K']H+]L?_ (*4>&M-T#X]+XG^"7@G MX6^%/$OC6WD\&:;9OKFJZGHZ2B)76 36[S,\=ZR))MBWM$ ,#U7Q+^PGX&_ MX)+:/^TK^U!8:Y\2?B%J'B;0-0U3Q+X;U_Q 9M,UK:QD170H=QC0O#&TF\QQ MRNHP&(/@W_!F_KOAW6O^"=_CIM'\/+H^J1^.+IM5N!/O6]+01O"JC&52*(J@ H!)R=Q[XH _7I%&T4H7!I(_N4Z@ VX'_UZ38 *6B@! @4T4M% '__V0$! end GRAPHIC 15 ex_659246img001.jpg begin 644 ex_659246img001.jpg M_]C_X 02D9)1@ ! 0$ 8 !@ #_VP!# @&!@<&!0@'!P<)"0@*#!0-# L+ M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#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^BBB@ HH MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB M@ HHHH **** "BBB@ INX8)]*=7$?%S4[C2OAKJLUJ[1RRA(-ZG! =@K?H2/ MQJZ<'4FH+J)NR&ZG\7O!6E7KVDNK>;+&1_"[X8V/CJQU"ZOM0N+9;:58D2!5R21DDDYKOO^&=] _Z#.J?^ M0_\ XFO5JX? 49NG.4KHA.3U1O\ _"[? O\ T$I__ 23_"E_X79X%_Z"I^)[RTMUXWS-$H)]!\O)]A7%/H?PH2'._E_P \OR]R_48R/Q%:?_#.VB?\ 0;U'_OE/ M\*S=++HNSE)?+_@!>9U%M\9/ UU<)"-8\LNA!KYQ^(?P@L/!OA9M8L]4N;ADF2-HYD7!#''!'>N\^ >J7%]X&G MM)W9UL;MHHBQSA"H;;] 2?SK/$X6BJ'MZ$FU>SN-2=[,]5HHHKS2PHHHH ** M** "BBB@ HHHH **** "BBB@ I,-P0>)OC/XQD9I0D:?,2Q/DV M<6> !W)_,FO2X_V>= %KMEU?4FN,,#[1)?,L MI[X"+M'ZG\S7K=:XW&U:=5TJ+Y8QTT%&*:NSY5\2>%?$7PC\0VNI6%Z6@9_] M'O(UP'[F.1?IVZ'^7T3X*\40^,/"UIJ\2B-Y 4FB!SYV MG^&&K&YQ^Z$ M:]Z+M?N"7+*QO_'/_DF5S_U\P_\ H58G[.__ "*NK?\ 7\/_ $6M;7QS_P"2 M97/_ %\P_P#H58O[._\ R*NK?]?P_P#1:TH_\BV7^(/MGL=%%%>2:!1110 4 M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11 M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% M !1110 4444 %%%% !1110 4444 %%%% !1110 5YW\;_P#DEU__ -=H?_1@ MKT2O._C?_P DNO\ _KM#_P"C!73@_P#>(>J%+8YS]G;_ )%[6O\ K[3_ - K MTWQ9H$7BCPO?Z-*P7[3'A'(^XXY4_@0*\R_9V_Y%[6O^OM/_ $"O0/%OCS0O M!26_]KSR"2XSY<,*;W('4X[#ZUOC5-XV7)O6X^\I'21.QX/T(KW&'XN>!Y;/[3_;L<8QDQO&X<>VW'\JX#Q9X]^%W MC*%1JMIJ?VA!B.YB@"RH/3.>1['->+M2;3]-GG2["%UBN(MA<#KMZ@X]*Y<:Y*DJ-*# M4%KKU''>[,GXY_\ ),KG_KYA_P#0JQ?V=_\ D5=7_P"OX?\ HM:VOCG_ ,DR MN?\ KYA_]"K%_9W_ .15U?\ Z_A_Z+6IC_R+9?XA_;/8Z***\HL**** "BBB M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH * M*** "BBB@ HHHH **** "BBB@ HHHH **** "O/?C8,_"W4O^ND/_HQ:]"KE MOB+H-QXE\":GI=H ;J1 \2DXW,K!@/QQC\:VPTE&M"3V30GL>4_"#4KK1OAI MXMU*RB66ZMI/,B1E+!F"<# Y-8&CZ/K_ ,6OB&MWKUO+!:HJM9/\:;_P *4\"_ M] N7_P "I/\ &O,1^T+XD'72]+/X/_\ %4X?M#>(>^E:7_X__P#%5Q_4\Q7V MG_X$5S0/2_\ A2?@7_H%S?\ @5)_C7E_Q"\#W?P[\3:?KWA>*<66\-'C,A@E M7JI[E6'K[BIO^&A_$'_0(TS\W_QI?^&A]>_Z ^F?F_\ C6E+#YA"5Y>\NS8F MX&KXJ\3:EXL^ ]SJ>JV\<%S_ &BD>R-&48##'!Y[UJ?L[_\ (JZO_P!?P_\ M1:UYOXP^+>K^--#_ +'N+"SMX7E5V,(8LQ'0$+&\FM+K7K6*X@*T=$\4:) MXC$QT?4H+SR"!((CRN>F<_2OG?XI^"M2\/ZQ=:Y=3VSVVIW\IA2-CO7.6^;( MQT]*YKPCXJNO!_B.WU6U)=5.RXA!XFC/5?KW'N*R]HU*S0:'USJ6I6>D:?-? MZA<);VD(S)*_11G'/XFN<_X6AX)_Z&.S_-O\*=XBMU\>_#FYAT6YA9=2@4P2 MR$A?O \XR0>"/K7R[K^BW'AS7;O2;R2-Y[9@KM$25.0#QGZTYS<=@/K'1O&7 MAWQ#>/::1JUO=W")YC1QDY"Y SR/4BMVO%O@KX+U+2[E/$TTMLUCJ%AB)48^ M8"64C(QCL>]>BZUX^\+^'YVM]2UFWBN%^]"I+N/J%!Q^-4GI=@=)17.:+X]\ M+^(9Q;Z;K%O+<'I"Q*.?H& S^%:VI:MI^C6OVK4KR&TMRP3S)G"KN/09/>G= M 7:*P(/''A:ZN8K>WU_3I9I7"1QI.I+,> /6IW\5Z"FLQZ0=6M#J,C;%MED M!9GY\8SC [9'YU+HGB'2?$=M)(-(UEM#73-2MKMH&G$H@D#%"=F,XZ=#^5: MOP,\0Z/IGAZ]LK[4[6WNKC4/W4,L@5GRB 8'?)XJ.;WK!='H]S\0O"5G=S6M MQK]G%/"YCDC9CE6!P0>*U='U[2]?MI+C2;Z&\AC?8SQ'(#8!Q^1%?-'Q0\*Z MCX>\37.HWQ@\C5+N>6W\MR6V[@?F&./O"O0?@GK&G:-X#U*\U.]@M+<:@1YD MSA03Y:<#U/M24WS68:'L]%00?0T7 FHJ,3Q,C.LB%5ZD-D"N?_X6#X/_ .AETO\ M\"5H Z2BLG2_%&A:W3(F]D@E#$+G&<#MS1K/B?1/#R!M7U2UL]P MRJRO\S?1>I_*BX&M17,Z;\0_".KW(MK+7[.29N%1F*%OIN S7347 **S]5UW M2M"MQ/JFH6UG&>%::0+N^GK6;:>/?"=\KFW\0ZY0RVLT:_>9"H_$50SG/\ A8W@W_H9-._[ M_"G+\0_!\CA%\2:;D\ &<"OE/Q=X/UOP;?V]KJZ1)):D_X1;P[C_D Z7_X"1_X5\@EM<\%Z_M87&F:I;,#@?*P[CV8'\0:^I/! M_CJQUSP/9ZYJ5S;63,Q@N#*X1!,.H!/KU ]ZN-26UP33((M1^&<]PEO$WAMY MG<1JBQ19+$X Z=VN]9L+>=/OQ2W"*R]^033527<:&_\ "*^' MO^@#I?\ X"1_X4?\(KX>_P"@#I?_ ("1_P"%3VFNZ3J$.V16'T(%:=(&# $$$$9!'>EI-M[C"BL'5?&GAK0[C[/J6MV5O,.L;2 L/ MJ!R*L:1XGT/7PW]DZK:7A7JL4H+#\.M*X&M1161XF\167A;0+K5[]CY,"\*/ MO2,>%4>Y- &I+-'!$TLTB1QJ,L[L !]2:P6\>>$TN?L[>(M,$OI]I7^><5\K M>+O'NN^-M3)NYI# SX@LH2?+3T 4?>/N>33H_ACXYGM1<+X=O1&1N *@''^Z M3G]*FY-V?7_]HV/V1;O[9;_9FZ3>:NP_\"SBG6]]:7F[[+=03[?O>5(&Q]<5 M\/SSZQI4%SH\\ES!"S@SVDF5&Y>02IZ$5[5^S8VZ3Q(?:W[?]=*:8[GOM%-9 MU12SL%51DDG %97_ E7AXS>2-6Z6X.#*TJA ?KG%)8ZII^IQ MF2PO;:Z0=6@E5P/R- %NBJ]W?V=A%YMY=06\?]^:0(/S-)::A9:A'YEE=P7* M#JT,@<#\J +-%,EFBA4-+(D8)P"[ 9J,7MJS!5N82Q. !(,F@">BJ\]]:6S! M)[J")CT$D@4_K4R.LB!T965AD,IR#0 ZBBHI[F"UA,MQ-'#&.KR,%4?B: ): M*H66MZ5J4C)8ZE9W3KU6&=7(_ &K/VNW!QY\6?\ ?% $U%1?:H, F:/!Z'>. M:%N(78*DL;,>@# F@"6BJ)UK2EG\AM3LQ-G'EF==V?3&:NE@ 22 ,DT +14 M/VJW_P">\7_?8IPGA9682H0O4AAQ0!)147VJW_Y[Q?\ ?8IZ2)("8W5@.NTY MH =1110!XY^T-_R+FC?]?K?^@&O"K72;V\TO4+^VC\R"PV&XV]45R0&^F1S] M:]V_:$&?#NC#_I\;_P! -<_\ +:&YOO$EM<1K+!+;1(Z.,AE)<$&L9).=B6M M2A\%O'W]A:K_ ,([J?E[H3_>7^6#7)WVJ7FK:H]]?RF:YD55>0CEM MJA03[X IM75F2V[6/9M8\=W7AWX2>%]%TN5H=0OM/5Y)E^]#%R./1F.0#VP: MX+PI\/O$?C,S3:;"@MT;#W5PY5"W<9Y+'UQ^-,\3K,L?A]I,[&T2V,7T^8'] MI_%R6TC^&>KB[*?.BK"&ZF7<-N/?O] :\9^!"RM\2W,>=B6,OF'' M;*X_7%-12E9":LSS9%N[*\+QS&*:&0[70X*L#U!KTKX5^ ?$\GBW1O$;V#II M<4QE,TSA2ZE2-P4\G.>N*XVV@2X\40V\J[HY=06-QZ@RX/Z&OLU55%"J % P M !P!13U8*-CX^\9^ ];\)7<4NJB!5O9)6A\J7?T()SQQ]X5J?#[P)KGB'4;/ M6=/C@:SL=0B\XO*%8;2KG [\&N^_:&_YEWZW'_M.M7]G_P#Y%'5/^P@?_1:4 MK>_8.1;F-^T6"1X=P?\ GX_DE>4>%O!OB+QA/O=AN-]3Q'Q-X1UWP? M?16VKP")Y!OAEB?]=7^T(@.C:&^.1=2 'V*?_ %A2_L]_\@#6A_T^*?\ QP4DDI ">U>O_%_4IM%\%>%/"DK!+E+:.6Z5 M6R!Y:! ,]QNW?]\UYQ\0M,F\*?$74(+8>7Y-U]IMB.RL0Z_EG'X4_P 9Z]/\ M1/B!'-:(P^U-!:VT9'3@#_T(L::C96$MCN_@1K9&L:QH329^VVOFP@G^-.#^ M8;_QVO*]=T34/#>LS:7J/E+=0!1(L4@=02 <9'L:T]%O+CX?_$V![HMNTR^: M&XV#[Z E6Q]5)(JUIEK/X\^(422[BVJ7YDE_V8R2S?DH(H>B2#VL*?VG8K!IRF0,2[D.&9>H 4$_D.]W M+G8F>F3Z^BC^5>E_M%Q-'8^'8XEVVZ&90H^Z" F!^6:\O\+Q^/#82CPQ_:WV M02?O18EMH? ZX[XQ3M;0'N;GB;X.>*?"VFOJ):VU"TB&Z8VQ.Z->Y*D#(^E= MI\%?B+"?%6G>/-!O+G0=1MHH;M3)+) P55YSD_2BRO= M]#D?$WB&]\6^* M+J_O)SNEE(B#L=L29PJCT &/UKJO%/P=\0>'+>QNK.4:U'^ M5/8UO>/_ (':Q;ZK=:CX8B6\L9W,AM0P66(DY(&>&7TYS7G]MK'C#P1>K!]H MU72G'_+&3*->\%36-OICPW$>IB8K=_N=1Z9OI_X3_$:X\:6UQ9:FD:ZG:*KEXQA9 MHSQNQV(/7MR*\!C&/B$QQ_S%_P#VO4MI+0++0][^#W@O6O!MKJ\>L00Q-TLYGO6=8YI-K%=B#/Z'\JR?VB?^1ET7_KS?\ ]#KA?#/PY\2^+;![W1[> M*6WCE\IV>=4(; /0\]"*C[1&MS3^,?BG2_%WC"&;1V$MO:VX@-QM($IW$\9[ M#./SKHM"\%:YX@^!26>FVPEGN-8^U1J[A!Y:IL+9;W%3^&OV?]3DO4D\0WD% MO:(V6BMGWR2#TSC"_7DU] 6=G;Z?90V=I"L-O @CCC08"J!@"FDWN-+N?%/A MA63QMH\3 !H]0A4X]1(,UW7QN\+ZQ8^+]0\1SVZIIEY-'%!+YBDLPC'\/4?= M/6N)T$8^(>GCTU6/_P!&BO>?VBO^1'T[_L(K_P"BWIV"Q\_:.FL:I)_8>E"> M4WDBEK:'_EHRYP2/0 GKP*ZK5?@_XVTC2GOYM.26*-=\B02K(Z =3M'7\,UU MW[.*67]MZRTNTW_V=/)SU\O<=^/QVY_"OHBCE0**/EOX4?$^]\.ZS;:1J=R\ MVBW+B+$C9^S,3@,I[+GJ.G>O0_C=\1;GP[;PZ!I$YAO[J/S)YD/S11YP OH6 MYY[ >]>#>.%LT\=:X-,V_9!>R^5LZ?>/3VSG%:WQ8:[;QY,;S=YGV2U^]U_U M*9_7-,9:\(?"SQ1XWM?[1MO+M;)F.VYNF(\T]]H )/UJGXE\&^*?AOJ-O=W) M:'YLV]]:R$KN'8-P0?8U=TN'XJ'2[4Z8/$7V Q+]G\AG$>S'&W'&*74=%^*F ML6;6>H67B&[MB0QBF#NI(Z'!I:"LCWGX3>/'\;^&7-X5_M2Q817)48$@(^5\ M=LX.?<&N"_:.UB59-'T=&(BV/ISM7\OF_.G_ &\,^(= \0ZL^K:5=V- MO+:* 9XB@9P_&,]>,U%^T=I$K7&C:LJDQ&-[5SCH0=R_GEORIO8?07]GCPE: M3P7OBBZB66>.;[-:;AGRR "S#W^8#/U]:]^KP+]GGQ9:06][X7NI5CN))OM- MKN./,R &4>XP#CZ^E>^9IC..\;?#71/'+6\E]YMO"OA[I/P[349K.]N9([E5:9KDKA FXY& /[QJWXO^(.A>"OLZZI)*\T^=D%N MH=PH_B(R,#M7):E\3-,\:>#/$]KH4%^LUOIDDLCRQ!5"GC&03R1G\C4Z"T/) M?B-\2M3\9:J]G9R2Q:2K[;>VC)S+S@,X'WB>P[9K.;X3^._[,_M Z#,(MN[R M]R^;C_]?6-"5U<25]3Y3^&O MQ-U'P;K$.GZE/+-HLCB.6*4DFVR<;USTQW']:SOB;H6J:1XJU"^O++R;74+Z M>6UF)4B9-V?<93IY+[ASGRXJ3V#H>>:#I'BCQ?&NE:/;7%[!:$R>4&"Q1%CR3G ! M./KQ3X9?$GP]\3+(RSZ=J5LP9HVZ.OH<<,IKW']G2)%\%ZFX0!VU @MCD@1I MC^9_.N:_:'B3_A)=*?:-S63 GUP_'\S0]%<+:7.(:W\;_%/5+O4X+*>_*M@X M8+#".R+N.!QV'/FZC!>6DICN('$D3CG:PY!_ M U]9_#7GX3Z)_P!>1'\Z^7M#@M+CQ/I45_M^R/>1+-NX&PN,Y]L42T:8Y&A9 M^!/'?BJV;68]*O+Q)AO%Q<2 -+[C>(-)GC"B]EMG\\ =5##83[\L/ MPIRT5P:/6+OQ[I5M\/\ _A+U)>S:$/''G#,Y.!']=W!^AKYGUGQ!XC\?ZVHD M,]]=3-B"SA!*)[*O; [G\35[4+B[_P"%&6466%N-?D ]"/*S_P"A%J[C]G*W MLVDURY=4-\BQ)&3]X1G=NQ[$@9^@I-;ZEX%\<>%(H]8GTNYM$B(<7$ M$BL83G@DJJ"4;?TQ1+W; T=5K_ (*\66WP]T3S-(ND>Q>] MEN\D?ND)0@GGT!_*N!TZZU9+M1ITMR+J4&%! 3O;>,;1CGG..*^Q?'(SX"U\ M?].$W_H!KYT^#T2/\3M'#HK8$K#(Z$1-@T2=FD#1S.L^!O%OAZP74=5T6>WM M21F4[6"D]-V"$KR22[2?3YFL=QW.CA3E 3V(/'IBO9? M'\22_#[Q CJ&4V$IP1Z*2*^?/@[_ ,E1TC_KV=Q9SO&)%24\E>F1@^H->E_#C0]7O/AOXT\BTEE_M"V2*T(8?O77>& MYZ@D=:['X\>'/[0\,6VN0IF?39,2$#DQ/@'\FVG\Z\[\#^/F\,>"_$VG&3$T MD0DL>>DK_(V/H,-_P$U.D9"2L>>A+@3M =WF!_+VALG=G&!CWKZ5^"^A:MH/ MAS4+?6+&:TFDO-Z++C++L49X)[@UY'\'/#@U[QU!+*F^UTU?M4F>A8'"#_OK MG_@-?4].G'J$=@HHHK4H^4_B1XLU?6/$FI:3?WJRV5AJ$HMX]BKLP2HY R>/ M6L;PQXKU?PQ>LVCWJV[731I+\BMN ;CJ#CJ:^MY-%TJ61I)-,LW=CEF:!22? M4G%(-#T@'(TJQ!'3_1T_PK+V;O>X&9XU\)6GC+PY/IEQA)?OVT^,F*0=#].Q M'H:^1-6TJXTG5+BPO8_)O+9S'*A/2% M6)_$BJE&XFDSQ>^\ 3>+_@]X8OM,53JMC9 (A.//C/5,^H/(_$=Z\OT3Q1XF M\$WT\.GW4UC*6Q/;31Y&X?WD;H?>OL&*&.")8H8TCC085$4 >P%9VJ>'-%U MO_D*:5:79 P&FA#,!]>M#A?5!8^3]=\4>)O&U]!#?7,U],&Q!;0QX )X^5%' M7WKOQX?UGX2_#637(KE;;7[^[ACE.Q7\F'#'R^01G/)/T':O<=+\.:+HG_(+ MTJSM"1@M#"%8CW/6KEW8VE_#Y-Y:PW,6=VR:,.N?7![T*+06/BJ&]ECOA>"4 M"=91,K\<.#NSCZU]1_";Q#J?B;P7_:&K70N;G[5+'Y@15^48P,* .]=(?"WA MX]="TP_]ND?^%7K.QM-.@\BRM8+:');RX8PBY/4X%*$'%@M$>)_M%MM7P[SC MFX_E'7FG@KQWXB\/7EMIFF7@@M+J]C,R&-&W%BJGD@D<"OK.^TK3M3\O[?86 MMWY>=GGPJ^W/7&1QTJJOA;P_&ZNFAZ:K*0586B @COTJN76XK:W/F'XG^*M7 MUGQ?J&FWUPLMKIM]/%:J$5=B[L8R.3P!UK1^$7B_6+#Q9IOA^VN$33KV[+3Q MF-26.P]^H^Z*^CYO#6@W$TDT^BZ=++(Q9W>U0LQ/4DDHPB&^M(+F(-N"31AU!]<'O3;+2]/TQ76PL;:U#D%Q!$J;B.F<#FGR^ M]<+*]SYN^.F@+I_C]-150L6HP++GMYB?*WZ;3^-;WP!T$7&K:CKTB@I:QBVA M/^VW+'\% '_ J]SOM*T_4]@O[&VNMF=GGQ*^W/7&1Q3[.PL].A,-C:06T1;< M4AC"*3ZX'>CE]ZX)6.:^(G@Y/&WA673E98[R-A-:R-T60=C[$$@_6OFS2M=\ M4_#+7;B*)9+.Y!"SVEPF4E Z''<>C ]^M?8%9^J:'I6MPB+5-.MKQ!T$T0;' MT)Z4W&^HG&^I\R^)/C!XJ\3Z:VGR&VL+:3B3[*K*T@]-Q)('TKT#X-^"-6@N M?^$EUQ[I%\LK96\TC9.XE:=X&\+:3<+<6.A6,,RG*R"(%E M^A.<5T&*2B[W8TCXE_M[4[+5FGBOKG=!<>8@,S%05;(R,].*ZWQ_\4KKQ]HM MGITNCV]H()1+)*)"Y+8(^7(&T<^_:OIA/#.@QLS)HNG*S*58BU09!Z@\=ZS8 MOASX.ANOM,?AS3Q*#D9B! _X">/THL^@K,\R^ 'AN]MY;[Q!/&T=K+"+:WW# M'F_,&9A[# &?KZ5X[J=S):^+K^>(A9(K^21">?F$A(X_"OM1$6-%1%"JHP ! M@ 5C2>#_ U*[/)H&FL[$LS&U0DD]2>*'#2P.)P_P>\:ZYXO?6/[9N8IA;"+ MRMD2IC=NSTZ]!7I\[%+>1UZJI(_*JFG:'I6CF0Z;IUK9F7'F>1$J;L=,XZ]3 M5Y@&4J1D'@BJ2:6I1\9^*O%FL^+KN&YUF>.:2!#'&4B"87.>W7FNH^$GC'6= M-\1Z;H%I.B:=>WH,\;1*2V1@X;J.%%?0G_"">$O^A;TK_P !4_PJ:U\'>&K& MZBNK70=.@N(FW1R1VRJRGU! XJ>5DJ.MS;K@_BWXHU7PCX.CU+2)4CN3>)$2 M\8<%2&)X/T%=Y5/4M*T_6+86VI64%W &#B.>,.NX=#@]^35%'Q!;WEU;:M%J M,>!>+-;@U*]@:/1+60222..) MR#D(OKSU/8>]>D?&[X<77B**+Q#H\)EO;6+R[B!!\TL8Y!7U(R>.X^E>Q1QI M#&L<:*B*,*JC ]A3ZJQ5CY)\'?%GQ)X(LO[,C2*]L4)V070;,1[A2.0/8U! MXG^(OBKQ]?VUN/,B ?%O9V&X;F/'8Y8U].ZMX'\+Z[UC] M2,$_C4VB^$O#_AYF;2-(M+1VZR1Q_.?^!'FBS"S.;^%/@Z^\*>'&?5[B675; MTB299)2XA4?=09/49))'<^U=)XJ\-67BSP]=:1?9$N^"-5\J]A>,!\P746?+DQT*MV/MU%7H?BQXZM[+[(NO7)3& [ MHK./^!$9KZ\NK2WO;=K>Z@BGA?AHY4#*?J#7,2?##P3+*96\-V6XG)PI _(' M%39DV/E*PT_Q%XWUORK6.YU&_G8>9([%B/\ :=CT'UKZD\ ?#RR\'>$Y-+FV M7-S>J3?2@<2$C&T?[(!('XGO75:=I6GZ1;"WTZRM[2$?P01A ?RJY32&E8^0 M?'/@G5_A]XC66%I5MQ+YEC?1Y'0\#/9QW'XUJM\=?&_]G&T::T63;M^TBW_> M?7KMS^%?45W9VM_;/;7EO%<0/PT!=4^(GB,33B8ZRMTM[6"."%!A(XD"JOT K(G\&> M&+JXDN+C0--EFE8O)(]LI9F/))..30T%M#Y]^!OBW5;+Q/9^&86A&FWLTDTP M:/Y]PC/1NWW17)>-O&6K^+M12756B+6N^&,Q1[!MW=^>:^L[+PEX=TZ[CN[+ M1-/M[F/.R6*W567(P<$#TJ ^!O"C$EO#FEDDY)-JG/Z4-,+'AGP6\;ZU%>+X M:#0?V=#:W-P@,7S[P-WWO3)KSOQ1XIU/Q9J/]IZFT9N3&L9,4>Q<+G''XU]? M67A/P]IUQY]EHEA;S;2F^*W53M/49 Z&JX\">$P,#PWI7_@*G^%#38K'E/P, M\7ZMJT5UX>NFA^P:?IY, 6/#9W8Y/?J:\+99;B58H8GDE9]JJ@R6/8 #K7U) MXYOM.^&>B1ZGH?A_34GNYA:R;8Q'\A5FZJ/517S/I^J2:-KUCJ,<:R/:W"3K M&Q(#%6!QQ4R>J0I'8Z-\;_&.CZ6NGE[6[\I?+CDNHB9$QV)!&<>]<_&/$WQ' M\5'B6^U*X8;FQA8U]^RH*^C/#.D>'/B'X:L_$FK^&M-^V711RA66:&0,%=?NLIS@CZCI7V-I?P\\):-=K=V.A6L=PAW) M(P+E3ZC<3C\*LR^"O"\\KRR^']->21BSNULI+$G))..N:+/J*QX3XB^*OBBZ M^'VEO(UH6U;[9;W0%OU12JC'/!PQKSKP[XBU'PUK$.JZ>8UNX%8(9$W+RI!R M/H:^O7\&^&I+>*W?0=.:&$L8XS;KM0MC=@8XS@9^E1?\('X2QC_A&]+_ / 5 M/\*3BV#3/+_BCX[UNP\)^'X8'M]FMZ8S7H,622R)G;S\OWC7CN@^(+[PUK$. MK:?M7 R\8S@=N MM?(^J:9/H^JWFF78Q-:RM"_OM/7\1S^-?4?C[Q0_@'PI;WFGV,$JK/';)"Q* MJJ[3C&/3:*^7M4U.?6-9NM3OD5R_P /=??Q-X,L]2>TBM-Q>)88B2JJC%1C M/L*ZBMH[: %%%%, HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "N1UCX9^$]>U6? M4]2TLS7<^#(_GNN[ ' ..@%==10!Q%K\)/!5G=PW4&CE)H)%EC;[1(<,IR# M][U%=O112L 4444P"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH R M/$'AG2?%-E'9ZQ:_:8(Y/-5=[+AL$9^4CL37-GX.^!3UT0?^!$G_ ,57=T4K M("AHVC6.@:5#IFFP>1:0Y\N/<6QDDGD\]2:OT44P"BBB@ HHHH **** "BBB M@#*\0>'-*\4:>MAJ]M]HMED$H3>RX89 .5(/FZ7!Y%I&6*Q[RV"3D\DD]36C113 __V0$! end XML 17 R1.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Document And Entity Information - shares
3 Months Ended
Mar. 31, 2024
Apr. 23, 2024
Document Information [Line Items]    
Entity Central Index Key 0001001385  
Entity Registrant Name Northwest Pipe Co.  
Amendment Flag false  
Current Fiscal Year End Date --12-31  
Document Fiscal Period Focus Q1  
Document Fiscal Year Focus 2024  
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Mar. 31, 2024  
Document Transition Report false  
Entity File Number 0-27140  
Entity Incorporation, State or Country Code OR  
Entity Tax Identification Number 93-0557988  
Entity Address, Address Line One 201 NE Park Plaza Drive, Suite 100  
Entity Address, City or Town Vancouver  
Entity Address, State or Province WA  
Entity Address, Postal Zip Code 98684  
City Area Code 360  
Local Phone Number 397‑6250  
Title of 12(b) Security Common Stock, par value $0.01 per share  
Trading Symbol NWPX  
Security Exchange Name NASDAQ  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Filer Category Accelerated Filer  
Entity Small Business false  
Entity Emerging Growth Company false  
Entity Shell Company false  
Entity Common Stock, Shares Outstanding   9,915,489
XML 18 R2.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Condensed Consolidated Statements of Operations (Unaudited) - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Net sales $ 113,215 $ 99,097
Cost of sales 93,081 82,520
Gross profit 20,134 16,577
Selling, general, and administrative expense 11,444 11,866
Operating income 8,690 4,711
Other income (expense) 7 (29)
Interest expense (1,474) (1,369)
Income before income taxes 7,223 3,313
Income tax expense 1,985 951
Net income $ 5,238 $ 2,362
us-gaap_EarningsPerShareAbstract    
Basic (in dollars per share) $ 0.53 $ 0.24
Diluted (in dollars per share) $ 0.52 $ 0.23
Shares used in per share calculations:    
Basic (in shares) 9,916 9,940
Diluted (in shares) 10,045 10,087
XML 19 R3.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Condensed Consolidated Statements of Comprehensive Income (Unaudited) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Net income $ 5,238 $ 2,362
Other comprehensive income (loss), net of tax:    
Unrealized gain on derivatives designated as cash flow hedges   (178)
Net current period other comprehensive income 55 (127)
Comprehensive income 5,293 2,235
Foreign Exchange Forward [Member]    
Other comprehensive income (loss), net of tax:    
Unrealized gain on derivatives designated as cash flow hedges 10 22
Interest Rate Swap [Member]    
Other comprehensive income (loss), net of tax:    
Unrealized gain on derivatives designated as cash flow hedges 24 (178)
Pension Plan [Member]    
Other comprehensive income (loss), net of tax:    
Pension liability adjustment $ 21 $ 29
XML 20 R4.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Condensed Consolidated Balance Sheets (Current Period Unaudited) - USD ($)
$ in Thousands
Mar. 31, 2024
Dec. 31, 2023
Current assets:    
Cash and cash equivalents $ 4,262 $ 4,068
Trade and other receivables, net of allowance of $159 and $121 52,396 47,645
Contract assets 135,715 120,516
Inventories 96,481 91,229
Prepaid expenses and other 7,840 9,026
Total current assets 296,694 272,484
Property and equipment, less accumulated depreciation and amortization of $129,510 and $126,359 145,323 143,955
Operating lease right-of-use assets 86,978 88,155
Goodwill 55,504 55,504
Intangible assets, net 30,066 31,074
Other assets 6,735 6,709
Total assets 621,300 597,881
Current liabilities:    
Current debt 10,756 10,756
Accounts payable 26,365 31,142
Accrued liabilities 22,489 27,913
Contract liabilities 18,596 21,450
Current portion of operating lease liabilities 5,067 4,933
Total current liabilities 83,273 96,194
Borrowings on line of credit 89,863 54,485
Operating lease liabilities 84,211 85,283
Deferred income taxes 10,863 10,942
Other long-term liabilities 10,476 10,617
Total liabilities 278,686 257,521
Commitments and contingencies (Note 7)
Stockholders’ equity:    
Preferred stock, $.01 par value, 10,000,000 shares authorized, none issued or outstanding 0 0
Common stock, $.01 par value, 15,000,000 shares authorized, 9,872,897 and 9,985,580 shares issued and outstanding as of March 31, 2024 and December 31, 2023, respectively 99 100
Additional paid-in-capital 126,057 129,095
Retained earnings 217,363 212,125
Accumulated other comprehensive loss (905) (960)
Total stockholders’ equity 342,614 340,360
Total liabilities and stockholders’ equity $ 621,300 $ 597,881
XML 21 R5.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) - USD ($)
Mar. 31, 2024
Dec. 31, 2023
Allowance for doubtful accounts $ 159,000 $ 121,000
Accumulated depreciation and amortization $ 129,510 $ 126,359
Preferred stock, par value (in dollars per share) $ 0.01 $ 0.01
Preferred stock, shares authorized (in shares) 10,000,000 10,000,000
Preferred stock, shares issued (in shares) 0 0
Preferred stock, shares outstanding (in shares) 0 0
Common stock, par value (in dollars per share) $ 0.01 $ 0.01
Common stock, shares authorized (in shares) 15,000,000 15,000,000
Common stock, shares issued (in shares) 9,872,897 9,985,580
Common stock, shares outstanding (in shares) 9,872,897 9,985,580
XML 22 R6.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Condensed Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($)
$ in Thousands
Pension Plan [Member]
Common Stock [Member]
Pension Plan [Member]
Additional Paid-in Capital [Member]
Pension Plan [Member]
Retained Earnings [Member]
Pension Plan [Member]
AOCI Attributable to Parent [Member]
Pension Plan [Member]
Foreign Exchange Forward [Member]
Common Stock [Member]
Foreign Exchange Forward [Member]
Additional Paid-in Capital [Member]
Foreign Exchange Forward [Member]
Retained Earnings [Member]
Foreign Exchange Forward [Member]
AOCI Attributable to Parent [Member]
Foreign Exchange Forward [Member]
Interest Rate Swap [Member]
Common Stock [Member]
Interest Rate Swap [Member]
Additional Paid-in Capital [Member]
Interest Rate Swap [Member]
Retained Earnings [Member]
Interest Rate Swap [Member]
AOCI Attributable to Parent [Member]
Interest Rate Swap [Member]
Common Stock [Member]
Additional Paid-in Capital [Member]
Retained Earnings [Member]
AOCI Attributable to Parent [Member]
Total
Balances (in shares) at Dec. 31, 2022                               9,927,360        
Balance at Dec. 31, 2022                               $ 99 $ 127,911 $ 191,053 $ (789) $ 318,274
Net income                               0 0 2,362 0 2,362
Pension liability adjustment $ 0 $ 0 $ 0 $ 29 $ 29                              
Unrealized gain on derivatives designated as cash flow hedges           $ 0 $ 0 $ 0 $ 22 $ 22         $ (178) $ 0 0 0 (178) (178)
Issuance of common stock under stock compensation plans, net of tax withholdings (in shares)                               70,932        
Issuance of common stock under stock compensation plans, net of tax withholdings                               $ 1 (423)     (422)
Share-based compensation expense                               $ 0 990 0 0 990
Balances (in shares) at Mar. 31, 2023                               9,998,292        
Balance at Mar. 31, 2023                               $ 100 128,478 193,415 (916) 321,077
Balances (in shares) at Dec. 31, 2023                               9,985,580        
Balance at Dec. 31, 2023                               $ 100 129,095 212,125 (960) 340,360
Net income                               $ 0 0 5,238 0 5,238
Pension liability adjustment $ 0 $ 0 $ 0 $ 21 $ 21                              
Unrealized gain on derivatives designated as cash flow hedges           $ 0 $ 0 $ 0 $ 10 $ 10 $ 0 $ 0 $ 0 $ 24 $ 24          
Issuance of common stock under stock compensation plans, net of tax withholdings (in shares)                               14,692        
Issuance of common stock under stock compensation plans, net of tax withholdings                                 (320)     (320)
Repurchase of common stock (in shares)                               (127,375)        
Repurchase of common stock                               $ (1) (3,743) 0 0 (3,744)
Share-based compensation expense                               $ 0 1,025 0 0 1,025
Balances (in shares) at Mar. 31, 2024                               9,872,897        
Balance at Mar. 31, 2024                               $ 99 $ 126,057 $ 217,363 $ (905) $ 342,614
XML 23 R7.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Condensed Consolidated Statements of Stockholders' Equity (Unaudited) (Parentheticals) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Pension Plan [Member]    
Pension liability adjustment, tax expense/benefit $ 0 $ 0
Foreign Exchange Forward [Member]    
Unrealized gain (loss) on cash flow hedges, tax expense/benefit 11 5
Interest Rate Swap [Member]    
Unrealized gain (loss) on cash flow hedges, tax expense/benefit $ 8  
Unrealized gain (loss) on cash flow hedges, tax expense/benefit   $ 58
XML 24 R8.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Condensed Consolidated Statements of Cash Flows (Unaudited) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Cash flows from operating activities:    
Net income $ 5,238 $ 2,362
Adjustments to reconcile net income to net cash provided by (used in) operating activities:    
Depreciation and finance lease amortization 3,405 2,799
Amortization of intangible assets 1,008 1,061
Deferred income taxes (80) 635
Share-based compensation expense 1,025 990
Other, net 159 473
Changes in operating assets and liabilities:    
Trade and other receivables (4,965) 11,026
Contract assets, net (18,054) 13,775
Inventories (5,252) 59
Prepaid expenses and other assets 2,616 2,359
Accounts payable (4,777) (1,518)
Accrued and other liabilities (6,412) (7,739)
Net cash provided by (used in) operating activities (26,089) 26,282
Cash flows from investing activities:    
Purchases of property and equipment (4,570) (4,382)
Other investing activities 48 0
Net cash used in investing activities (4,522) (4,382)
Cash flows from financing activities:    
Borrowings on line of credit 64,664 34,602
Repayments on line of credit (29,286) (55,682)
Payments on finance lease obligations (381) (145)
Tax withholdings related to net share settlements of equity awards (320) (422)
Repurchase of common stock (3,872) 0
Net cash provided by (used in) financing activities 30,805 (21,647)
Change in cash and cash equivalents 194 253
Cash and cash equivalents, beginning of period 4,068 3,681
Cash and cash equivalents, end of period 4,262 3,934
Noncash investing and financing activities:    
Accrued property and equipment purchases 783 750
Right-of-use assets obtained in exchange for operating lease liabilities 303 0
Right-of-use assets obtained in exchange for finance lease liabilities $ 233 $ 394
XML 25 R9.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 1 - Organization and Basis of Presentation
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]

1.

Organization and Basis of Presentation

 

Northwest Pipe Company (collectively with its subsidiaries, the “Company”) is a leading manufacturer of water-related infrastructure products, and operates in two segments, Engineered Steel Pressure Pipe (“SPP”) and Precast Infrastructure and Engineered Systems (“Precast”). This segment presentation is consistent with how the Company’s chief operating decision maker, its Chief Executive Officer, evaluates the performance of the Company and makes decisions regarding the allocation of resources. See Note 12, “Segment Information” for detailed descriptions of these segments.

 

In addition to being the largest manufacturer of engineered steel water pipeline systems in North America, the Company manufactures stormwater and wastewater technology products; high-quality precast and reinforced concrete products; pump lift stations; steel casing pipe, bar-wrapped concrete cylinder pipe, and one of the largest offerings of pipeline system joints, fittings, and specialized components. Strategically positioned to meet growing water and wastewater infrastructure needs, the Company provides solution-based products for a wide range of markets under the ParkUSA, Geneva Pipe and Precast, Permalok®, and Northwest Pipe Company lines. The Company is headquartered in Vancouver, Washington, and has 13 manufacturing facilities across North America.

 

The Condensed Consolidated Financial Statements are expressed in United States Dollars and include the accounts of the Company and its subsidiaries over which the Company exercises control as of the financial statement date. Intercompany accounts and transactions have been eliminated.

 

The accompanying unaudited interim Condensed Consolidated Financial Statements have been prepared in conformity with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial information. The financial information as of December 31, 2023 is derived from the audited Consolidated Financial Statements presented in the Company’s Annual Report on Form 10‑K for the year ended December 31, 2023 (“2023 Form 10‑K”). Certain information and footnote disclosures normally included in consolidated financial statements prepared in accordance with U.S. GAAP have been condensed or omitted, pursuant to the rules and regulations of the Securities and Exchange Commission and the accounting standards for interim financial statements. In the opinion of management, the accompanying Condensed Consolidated Financial Statements include all adjustments necessary (which are of a normal and recurring nature) for the fair statement of the results of the interim periods presented. The Condensed Consolidated Financial Statements should be read in conjunction with the Consolidated Financial Statements and Notes thereto together with management’s discussion and analysis of financial condition and results of operations contained in the Company’s 2023 Form 10‑K.

 

Operating results for the three months ended March 31, 2024 are not necessarily indicative of the results that may be expected for the entire fiscal year ending December 31, 2024.

 

XML 26 R10.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 2 - Inventories
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Inventory Disclosure [Text Block]

2.

Inventories

 

Inventories consist of the following (in thousands):

 

  

March 31, 2024

  

December 31, 2023

 
         

Raw materials

 $71,801  $68,110 

Work-in-process

  9,084   8,912 

Finished goods

  13,274   11,911 

Supplies

  2,322   2,296 

Total inventories

 $96,481  $91,229 

 

XML 27 R11.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 3 - Fair Value Measurements
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Fair Value Disclosures [Text Block]

3.

Fair Value Measurements

 

Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability, in the principal or most advantageous market for the asset or liability, in an orderly transaction between market participants at the measurement date.

 

The authoritative guidance establishes a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels. These levels are: Level 1 (inputs are quoted prices in active markets for identical assets or liabilities); Level 2 (inputs are other than quoted prices that are observable, either directly or indirectly through corroboration with observable market data); and Level 3 (inputs are unobservable, with little or no market data that exists, such as internal financial forecasts). The Company is required to maximize the use of observable inputs and minimize the use of unobservable inputs when measuring fair value.

 

The following table summarizes information regarding the Company’s financial assets and liabilities that are measured at fair value on a recurring basis (in thousands):

 

  

Total

  

Level 1

  

Level 2

  

Level 3

 

As of March 31, 2024

                

Financial assets:

                

Deferred compensation plan

 $3,960  $3,485  $475  $- 

Foreign currency forward contracts

  14   -   14   - 

Interest rate swaps

  358   -   358   - 

Total financial assets

 $4,332  $3,485  $847  $- 
                 

As of December 31, 2023

                

Financial assets:

                

Deferred compensation plan

 $3,912  $3,391  $521   - 

Foreign currency forward contracts

  42   -   42   - 

Interest rate swaps

  326   -   326   - 

Total financial assets

 $4,280  $3,391  $889  $- 
                 

Financial liabilities:

                

Foreign currency forward contracts

 $(115) $-  $(115) $- 

 

The deferred compensation plan assets consist of cash and several publicly traded stock and bond mutual funds, valued using quoted market prices in active markets, classified as Level 1 within the fair value hierarchy, as well as guaranteed investment contracts, valued at principal plus interest credited at contract rates, classified as Level 2 within the fair value hierarchy. Deferred compensation plan assets are included within Other assets in the Condensed Consolidated Balance Sheets.

 

The foreign currency forward contracts and interest rate swaps are derivatives valued using various pricing models or discounted cash flow analyses that incorporate observable market parameters, such as interest rate yield curves and currency rates, and are classified as Level 2 within the fair value hierarchy. Derivative valuations incorporate credit risk adjustments that are necessary to reflect the probability of default by the counterparty or the Company. The foreign currency forward contracts and interest rate swaps are presented at their gross fair values. Foreign currency forward contract and interest rate swap assets are included within Prepaid expenses and other and foreign currency forward contract liabilities are included within Accrued liabilities in the Condensed Consolidated Balance Sheets.

 

The net carrying amounts of cash and cash equivalents, trade and other receivables, accounts payable, accrued liabilities, and current debt approximate fair value due to the short-term nature of these instruments. The net carrying amount of the borrowings on the line of credit approximates fair value due to its variable interest rate based on market.

 

XML 28 R12.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 4 - Derivative Instruments and Hedging Activities
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Derivative Instruments and Hedging Activities Disclosure [Text Block]

4.

Derivative Instruments and Hedging Activities

 

In the normal course of business, the Company is exposed to interest rate and foreign currency exchange rate fluctuations. Consistent with the Company’s strategy for financial risk management, the Company has established a program that utilizes foreign currency forward contracts and interest rate swaps to offset the risks associated with the effects of these exposures.

 

For each derivative entered into in which the Company seeks to obtain cash flow hedge accounting treatment, the Company formally documents all relationships between hedging instruments and hedged items, as well as its risk management objective and strategy for undertaking the hedge transaction, the nature of the risk being hedged, how the hedging instrument’s effectiveness in offsetting the hedged risk will be assessed prospectively and retrospectively, and a description of the method of measuring ineffectiveness. This process includes linking all derivatives to specific firm commitments or forecasted transactions and designating the derivatives as cash flow hedges. The Company also formally assesses, both at the hedge’s inception and on an ongoing basis, whether the derivatives that are used in hedging transactions are highly effective in offsetting changes in cash flows of hedged items. The effective portion of these hedged items is reflected in Unrealized gain (loss) on cash flow hedges on the Condensed Consolidated Statements of Comprehensive Income. If it is determined that a derivative is not highly effective, or that it has ceased to be a highly effective hedge, the Company is required to discontinue hedge accounting with respect to that derivative prospectively.

 

As of March 31, 2024, the total notional amount of the foreign currency forward contracts was $4.9 million (CAD$6.6 million) and $1.1 million (EUR€1.1 million), which included $4.8 million (CAD$6.4 million) and $1.1 million (EUR€1.1 million) of foreign currency forward contracts not designated as cash flow hedges. As of December 31, 2023, the total notional amount of the foreign currency forward contracts was $5.1 million (CAD$6.7 million) and $1.2 million (EUR€1.1 million), which included $4.9 million (CAD$6.4 million) and $1.2 million (EUR€1.1 million) of foreign currency forward contracts not designated as cash flow hedges. As of March 31, 2024, the Company’s foreign currency forward contracts mature at various dates through April 2025 and are subject to an enforceable master netting arrangement.

 

The Company has entered into interest rate swaps which effectively convert a portion of its variable-rate debt to fixed-rate debt, and are designated as cash flow hedges. For one cash flow hedge, the Company receives floating interest payments monthly based on Secured Overnight Finance Rate (“SOFR”) and pays a fixed rate of 1.941% to the counterparty on the total notional amount of $1.7 million and $6.7 million as of March 31, 2024 and December 31, 2023, respectively, which amortizes ratably on a monthly basis to zero by the April 2024 maturity date. For a second cash flow hedge, beginning April 3, 2023, the Company receives floating interest payments monthly based on the SOFR Average 30 day and pays a fixed rate of 2.96% to the counterparty on the total notional amount of $12.3 million and $13.0 million as of March 31, 2024 and December 31, 2023, respectively, which amortizes ratably on a monthly basis to zero by the April 2028 maturity date.

 

The following table summarizes the gains (losses) recognized on derivatives in the Condensed Consolidated Financial Statements (in thousands):

 

  

Three Months Ended March 31,

 
  

2024

  

2023

 

Foreign currency forward contracts:

        

Net sales

 $100  $(282)

Property and equipment

  -   (87)
         

Interest rate swaps:

        

Interest expense

  120   158 

Total

 $220  $(211)

 

As of March 31, 2024, unrealized pretax gains (losses) on outstanding cash flow hedges in Accumulated other comprehensive loss was $0.4 million, of which approximately $0 and $0.2 million are expected to be reclassified to Net sales and Interest expense, respectively, within the next twelve months as a result of underlying hedged transactions also being recorded in these line items. See Note 10, “Accumulated Other Comprehensive Loss” for additional quantitative information regarding foreign currency forward contract and interest rate swap gains and losses.

 

XML 29 R13.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 5 - Stockholders' Equity
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Equity [Text Block]

5.

Stockholders’ Equity

 

Share Repurchase Program

 

On November 2, 2023, the Company announced its authorization of a share repurchase program of up to $30 million of its outstanding common stock. The program does not commit to any particular timing or quantity of purchases, and the program may be suspended or discontinued at any time. Under the program, shares may be purchased in open market, including through plans adopted pursuant to Rule 10b5‑1 of the Securities Exchange Act of 1934, as amended, or in privately negotiated transactions administered by its broker, D.A. Davidson Companies. At this time, the Company has elected to limit its share repurchase transactions to only those under the Rule 10b5‑1 trading plan it executed in November 2023, which designates up to $10 million for daily share repurchases with volumes that fluctuate with changes in the trading price of its common stock.

 

During the three months ended March 31, 2024, the Company repurchased approximately 127,000 shares of the Company’s common stock for an aggregate amount of $3.7 million. There were no share repurchases authorized during the three months ended March 31, 2023. All shares reacquired in connection with the Company’s share repurchase program are retired and treated as authorized and unissued shares. As of March 31, 2024, $25.4 million of the share repurchase authorization remained available for repurchases under this program.

 

XML 30 R14.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 6 - Share-based Compensation
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Share-Based Payment Arrangement [Text Block]

6.

Share-based Compensation

 

The Company has one active stock incentive plan for employees and directors, the 2022 Stock Incentive Plan, which provides for awards of stock options to purchase shares of common stock, stock appreciation rights, restricted and unrestricted shares of common stock, restricted stock units (“RSUs”), and performance share awards (“PSAs”). In addition, the Company has one inactive stock incentive plan, the 2007 Stock Incentive Plan, under which previously granted awards remain outstanding.

 

The Company recognizes the compensation cost of employee and director services received in exchange for awards of equity instruments based on the grant date estimated fair value of the awards. The Company estimates the fair value of RSUs and PSAs using the value of the Company’s stock on the date of grant. Share-based compensation cost is recognized over the period during which the employee or director is required to provide service in exchange for the award and, as forfeitures occur, the associated compensation cost recognized to date is reversed. For awards with performance-based payout conditions, the Company recognizes compensation cost based on the probability of achieving the performance conditions, with changes in expectations recognized as an adjustment to earnings in the period of change. Any recognized compensation cost is reversed if the conditions are ultimately not met.

 

The following table summarizes share-based compensation expense recorded (in thousands):

 

  

Three Months Ended March 31,

 
  

2024

  

2023

 
         

Cost of sales

 $352  $275 

Selling, general, and administrative expense

  673   715 

Total

 $1,025  $990 

 

Restricted Stock Units and Performance Share Awards

 

The Company’s stock incentive plan provides for equity instruments, such as RSUs and PSAs, which grant the right to receive a specified number of shares at specified times. RSUs and PSAs are service-based awards that vest according to the terms of the grant. PSAs have performance-based payout conditions.

 

The following table summarizes the Company’s RSU and PSA activity:

 

  

Number of RSUs and PSAs (1)

  

Weighted-Average Grant Date Fair Value

 
         

Unvested RSUs and PSAs as of December 31, 2023

  226,391  $29.66 

RSUs and PSAs granted

  120,143   34.68 

RSUs vested

  (25,819)  30.35 

Unvested RSUs and PSAs as of March 31, 2024

  320,715   31.49 

 

(1)

The number of PSAs disclosed in this table are at the target level of 100%.

 

The unvested balance of RSUs and PSAs as of March 31, 2024 includes approximately 260,000 PSAs at the target level of 100%. The vesting of these awards is subject to the achievement of specified performance-based conditions, and the actual number of common shares that will ultimately be issued will be determined by multiplying this number of PSAs by a payout percentage ranging from 0% to 200%.

 

Based on the estimated level of achievement of the performance targets associated with the PSAs as of March 31, 2024, unrecognized compensation expense related to the unvested portion of the Company’s RSUs and PSAs was $6.9 million, which is expected to be recognized over a weighted-average period of 2.0 years.

 

XML 31 R15.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 7 - Commitments and Contingencies
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Commitments and Contingencies Disclosure [Text Block]

7.

Commitments and Contingencies

 

Portland Harbor Superfund Site

 

In 2000, a section of the lower Willamette River known as the Portland Harbor Superfund Site was included on the National Priorities List at the request of the United States Environmental Protection Agency (“EPA”). While the Company’s Portland, Oregon manufacturing facility does not border the Willamette River, an outfall from the facility’s stormwater system drains into a neighboring property’s privately owned stormwater system and slip. Also in 2000, the Company was notified by the EPA and the Oregon Department of Environmental Quality (“ODEQ”) of potential liability under the Comprehensive Environmental Response, Compensation, and Liability Act (“CERCLA”). A remedial investigation and feasibility study of the Portland Harbor Superfund Site was directed by a group of 14 potentially responsible parties known as the Lower Willamette Group under agreement with the EPA. The EPA finalized the remedial investigation report in 2016, and the feasibility study in 2016, which identified multiple remedial alternatives. In 2017, the EPA issued its Record of Decision selecting the remedy for cleanup at the Portland Harbor Superfund Site, which it believes will cost approximately $1 billion at net present value and 13 years to complete. The EPA has not yet determined who is responsible for the costs of cleanup or how the cleanup costs will be allocated among the more than 150 potentially responsible parties. Because of the large number of potentially responsible parties and the variability in the range of remediation alternatives, the Company is unable to estimate an amount or an amount within a range of costs for its obligation with respect to the Portland Harbor Superfund Site matters, and no further adjustment to the Consolidated Financial Statements has been recorded as of the date of this filing.

 

The ODEQ is separately providing oversight of voluntary investigations and source control activities by the Company involving the Company’s site, which are focused on controlling any current “uplands” releases of contaminants into the Willamette River. No liabilities have been established in connection with these investigations because the extent of contamination and the Company’s responsibility for the contamination have not yet been determined.

 

Concurrent with the activities of the EPA and the ODEQ, the Portland Harbor Natural Resources Trustee Council (“Trustees”) sent some or all of the same parties, including the Company, a notice of intent to perform a Natural Resource Damage Assessment (“NRDA”) for the Portland Harbor Superfund Site to determine the nature and extent of natural resource damages under CERCLA Section 107. The Trustees for the Portland Harbor Superfund Site consist of representatives from several Northwest Indian Tribes, three federal agencies, and one state agency. The Trustees act independently of the EPA and the ODEQ. The Trustees have encouraged potentially responsible parties to voluntarily participate in the funding of their injury assessments and several of those parties have agreed to do so. In 2014, the Company agreed to participate in the injury assessment process, which included funding $0.4 million of the assessment. The Company has not assumed any additional payment obligations or liabilities with the participation with the NRDA, nor does the Company expect to incur significant future costs in the resolution of the NRDA.

 

In 2017, the Confederated Tribes and Bands of the Yakama Nation, a Trustee until they withdrew from the council in 2009, filed a complaint against the potentially responsible parties including the Company to recover costs related to their own injury assessment and compensation for natural resources damages. The case has been stayed until 2025, and the Company does not have sufficient information at this time to determine the likelihood of a loss in this matter or the amount of damages that could be allocated to the Company.

 

The Company has insurance policies for defense costs, as well as indemnification policies it believes will provide reimbursement for the remediation assessed. However, the Company can provide no assurance that those policies will cover all of the costs which the Company may incur.

 

All Sites

 

The Company operates its facilities under numerous governmental permits and licenses relating to air emissions, stormwater runoff, and other environmental matters. The Company’s operations are also governed by many other laws and regulations, including those relating to workplace safety and worker health, principally the Occupational Safety and Health Act and regulations thereunder which, among other requirements, establish noise and dust standards. The Company believes it is in material compliance with its permits and licenses and these laws and regulations, and the Company does not believe that future compliance with such laws and regulations will have a material adverse effect on its financial position, results of operations, or cash flows.

 

Other Contingencies and Legal Proceedings

 

From time to time, the Company is party to a variety of legal actions, including claims, suits, complaints, and investigations arising out of the ordinary course of its business. The Company maintains insurance coverage against potential claims in amounts that are believed to be adequate. To the extent that insurance does not cover legal, defense, and indemnification costs associated with a loss contingency, the Company records accruals when such losses are considered probable and reasonably estimable. The Company believes that it is not presently a party to legal actions, the outcomes of which would have a material adverse effect on its business, financial condition, results of operations, or cash flows.

 

Commitments

 

As of March 31, 2024, the Company’s commitments include approximately $1.1 million remaining relating to its investment in the primary component of the new reinforced concrete pipe mill for which the Company has not yet received the equipment and approximately $4.6 million remaining relating to the construction of a building for the new mill at the Company’s facility in Salt Lake City, Utah.

 

Guarantees

 

The Company has entered into certain letters of credit that total $1.1 million as of March 31, 2024. The letters of credit relate to workers’ compensation insurance.

 

XML 32 R16.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 8 - Revenue
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Revenue from Contract with Customer [Text Block]

8.

Revenue

 

The Company manufactures water infrastructure steel pipe products, which are generally made to custom specifications for installation contractors serving projects funded by public water agencies, as well as precast and reinforced concrete products. Generally, each of the Company’s contracts with its customers contains a single performance obligation, as the promise to transfer products is not separately identifiable from other promises in the contract and, therefore, is not distinct. The Company generally does not recognize revenue on a contract until the contract has approval and commitment from both parties, the contract rights and payment terms can be identified, the contract has commercial substance, and its collectability is probable.

 

SPP revenue for water infrastructure steel pipe products is recognized over time as the manufacturing process progresses because of the Company’s right to payment for work performed to date plus a reasonable profit on cancellations for unique products that have no alternative use to the Company. Revenue is measured by the costs incurred to date relative to the estimated total direct costs to fulfill each contract (cost-to-cost method). Contract costs include all material, labor, and other direct costs incurred in satisfying the performance obligations. The cost of steel material is recognized as a contract cost when the steel is introduced into the manufacturing process. Changes in job performance, job conditions, and estimated profitability, including those arising from contract change orders, contract penalty provisions, foreign currency exchange rate movements, changes in raw materials costs, and final contract settlements may result in revisions to estimates of revenue, costs, and income, and are recognized in the period in which the revisions are determined. Provisions for losses on uncompleted contracts, included in Accrued liabilities, are estimated by comparing total estimated contract revenue to the total estimated contract costs and a loss is recognized during the period in which it becomes probable and can be reasonably estimated.

 

Net revisions in contract estimates resulted in an increase in SPP net sales of $1.9 million and $0.4 million for the three months ended March 31, 2024 and 2023, respectively.

 

Precast revenue for water infrastructure concrete pipe and precast concrete products is recognized at the time control is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for the products. All variable consideration that may affect the total transaction price, including contractual discounts, returns, and credits, is included in net sales. Estimates for variable consideration are based on historical experience, anticipated performance, and management’s judgment. The Company’s contracts do not contain significant financing.

 

Disaggregation of Revenue

 

The following table disaggregates revenue by recognition over time or at a point in time, as the Company believes it best depicts how the nature, amount, timing, and uncertainty of its revenue and cash flows are affected by economic factors (in thousands):

 

  

Three Months Ended March 31,

 
  

2024

  

2023

 
         

Over time

 $80,007  $63,546 

Point in time

  33,208   35,551 

Net sales

 $113,215  $99,097 

 

Contract Assets and Contract Liabilities

 

Contract assets primarily represent revenue earned over time but not yet billable based on the terms of the contracts. These amounts will be billed based on the terms of the contracts, which can include certain milestones, partial shipments, or completion of the contracts. Payment terms of amounts billed vary based on the customer, but are typically due within 30 days of invoicing. Contract liabilities represent advance billings on contracts, typically for steel.

 

The difference between the opening and closing balances of the Company’s contract assets and contract liabilities primarily results from the timing difference between the Company’s performance and billings.

 

The following is a summary of the changes in contract assets (in thousands):

 

  Three Months Ended March 31, 
  

2024

  

2023

 
         

Balance, beginning of period

 $120,516  $121,778 

Revenue recognized in advance of billings

  70,640   53,048 

Billings

  (54,772)  (56,916)

Other

  (669)  (1,569)

Balance, end of period

 $135,715  $116,341 

 

The following is a summary of the changes in contract liabilities (in thousands):

 

  Three Months Ended March 31, 
  

2024

  

2023

 
         

Balance, beginning of period

 $21,450  $17,456 

Billings

  6,512   18,675 

Revenue recognized

  (9,367)  (10,498)

Other

  1   161 

Balance, end of period

 $18,596  $25,794 

 

Backlog

 

Backlog represents the balance of remaining performance obligations under signed contracts for SPP water infrastructure steel pipe products for which revenue is recognized over time. As of March 31, 2024, backlog was $255 million. The Company expects to recognize approximately 64% of the remaining performance obligations in 2024, 28% in 2025, and the balance thereafter.

 

XML 33 R17.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 9 - Income Taxes
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Income Tax Disclosure [Text Block]

9.

Income Taxes

 

The Company files income tax returns in the United States Federal jurisdiction, in a limited number of foreign jurisdictions, and in many state jurisdictions. With few exceptions, the Company is no longer subject to United States Federal, state, or foreign income tax examinations for years before 2019.

 

The Company recorded income tax expense at an estimated effective income tax rate of 27.5% and 28.7% for the three months ended March 31, 2024 and 2023, respectively. The Company’s estimated effective income tax rates for the three months ended March 31, 2024 and 2023 were primarily impacted by non-deductible permanent differences.

 

XML 34 R18.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 10 - Accumulated Other Comprehensive Loss
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Comprehensive Income (Loss) Note [Text Block]

10.

Accumulated Other Comprehensive Loss

 

The following tables summarize changes in the components of Accumulated other comprehensive loss (in thousands). All amounts are net of income tax:

 

  

Pension Liability Adjustment

  

Unrealized Loss on Foreign Currency Forward Contracts Designated as Cash Flow Hedges

  

Unrealized Gain on Interest Rate Swaps Designated as Cash Flow Hedges

  

Total

 
                 

Balances, December 31, 2023

 $(1,193) $(13) $246  $(960)
                 

Other comprehensive income before reclassifications

  18   8   115   141 

Amounts reclassified from Accumulated other comprehensive loss

  3   2   (91)  (86)

Net current period other comprehensive income

  21   10   24   55 
                 

Balances, March 31, 2024

 $(1,172) $(3) $270  $(905)
                 
  Pension Liability Adjustment  Unrealized Gain on Foreign Currency Forward Contracts Designated as Cash Flow Hedges  Unrealized Gain on Interest Rate Swaps Designated as Cash Flow Hedges  Total 
                 

Balances, December 31, 2022

 $(1,532) $94  $649  $(789)
                 

Other comprehensive income (loss) before reclassifications

  26   (10)  (59)  (43)

Amounts reclassified from Accumulated other comprehensive loss

  3   32   (119)  (84)

Net current period other comprehensive income (loss)

  29   22   (178)  (127)
                 

Balances, March 31, 2023

 $(1,503) $116  $471  $(916)

 

The following table provides additional detail about Accumulated other comprehensive loss components that were reclassified to the Condensed Consolidated Statements of Operations (in thousands):

 

  

Amount reclassified from Accumulated Other Comprehensive Loss

  

Affected line item in the Condensed Consolidated

Details about Accumulated Other

 

Three Months Ended March 31,

  

Statements

Comprehensive Loss Components

 

2024

  

2023

  

of Operations

           

Pension liability adjustment:

          

Net periodic pension cost:

          

Service cost

 $(3) $(3) 

Cost of sales

   (3)  (3) 

Net of tax

           

Unrealized gain (loss) on foreign currency forward contracts:

          

Gain (loss) on cash flow hedges

  (2)  44  

Net sales

Loss on cash flow hedges

  -   (87) 

Property and equipment

Associated income tax benefit

  -   11  

Income tax expense

   (2)  (32) 

Net of tax

           

Unrealized gain on interest rate swaps:

          

Gain on cash flow hedges

  120   158  

Interest expense

Associated income tax expense

  (29)  (39) 

Income tax expense

   91   119  

Net of tax

           

Total reclassifications for the period

 $86  $84   

 

XML 35 R19.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 11 - Net Income Per Share
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Earnings Per Share [Text Block]

11.

Net Income per Share

 

Basic net income per share is computed by dividing the net income by the weighted-average number of shares of common stock outstanding during the period. Diluted net income per share is computed by giving effect to all dilutive potential shares of common stock, including RSUs and PSAs, assumed to be outstanding during the period using the treasury stock method. Performance-based PSAs are considered dilutive when the related performance conditions have been met assuming the end of the reporting period represents the end of the performance period. In periods with a net loss, all potential shares of common stock are excluded from the computation of diluted net loss per share as the impact would be antidilutive.

 

Net income per basic and diluted weighted-average common share outstanding was calculated as follows (in thousands, except per share amounts):

 

  

Three Months Ended March 31,

 
  

2024

  

2023

 
         

Net income

 $5,238  $2,362 
         

Basic weighted-average common shares outstanding

  9,916   9,940 

Effect of potentially dilutive common shares (1)

  129   147 

Diluted weighted-average common shares outstanding

  10,045   10,087 
         

Net income per common share:

        

Basic

 $0.53  $0.24 

Diluted

 $0.52  $0.23 

 

 

(1)

The weighted-average number of antidilutive shares not included in the computation of diluted net income per share was approximately 6,000 for the three months ended March 31, 2024. There were no antidilutive shares for the three months ended March 31, 2023.

 

XML 36 R20.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 12 - Segment Information
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Segment Reporting Disclosure [Text Block]

12.

Segment Information

 

The operating segments reported below are based on the nature of the products sold and the manufacturing process used by the Company and are the segments of the Company for which separate financial information is available and for which operating results are regularly evaluated by the Company’s chief operating decision maker, its Chief Executive Officer, to make decisions about resources to be allocated to the segment and assess its performance. Management evaluates segment performance based on gross profit. The Company does not allocate selling, general, and administrative expenses, interest, other non-operating income or expense items, or taxes to segments.

 

The Company’s Engineered Steel Pressure Pipe (SPP) segment manufactures large-diameter, high-pressure steel pipeline systems for use in water infrastructure applications, which are primarily related to drinking water systems. These products are also used for hydroelectric power systems, wastewater systems, seismic resiliency, and other applications. In addition, SPP makes products for industrial plant piping systems and certain structural applications. SPP has manufacturing facilities located in Portland, Oregon; Adelanto and Tracy, California; Parkersburg, West Virginia; Saginaw, Texas; St. Louis, Missouri; and San Luis Río Colorado, Mexico.

 

The Company’s Precast Infrastructure and Engineered Systems (Precast) segment manufactures stormwater and wastewater technology products, high-quality precast and reinforced concrete products, including reinforced concrete pipe, manholes, box culverts, vaults, and catch basins, pump lift stations, oil water separators, biofiltration units, and other environmental and engineered solutions. Precast has manufacturing facilities located in Dallas, Houston, and San Antonio, Texas; and Orem, Salt Lake City, and St. George, Utah.

 

The following table disaggregates revenue and gross profit based on the Company’s reportable segments (in thousands):

 

  

Three Months Ended March 31,

 
  

2024

  

2023

 

Net sales:

        

Engineered Steel Pressure Pipe

 $80,007  $63,546 

Precast Infrastructure and Engineered Systems

  33,208   35,551 

Total net sales

 $113,215  $99,097 
         

Gross profit:

        

Engineered Steel Pressure Pipe

 $14,242  $7,782 

Precast Infrastructure and Engineered Systems

  5,892   8,795 

Total gross profit

 $20,134  $16,577 

 

XML 37 R21.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 13 - Recent Accounting and Reporting Developments
3 Months Ended
Mar. 31, 2024
Notes to Financial Statements  
Accounting Standards Update and Change in Accounting Principle [Text Block]

13.

Recent Accounting and Reporting Developments

 

There have been no developments to recently issued accounting standards, including the expected dates of adoption and estimated effects on the Company’s Condensed Consolidated Financial Statements and disclosures in Notes to Condensed Consolidated Financial Statements, from those disclosed in the Company’s 2023 Form 10‑K, except for the following.

 

Accounting Changes

 

In March 2023, the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) No. 2023‑01 “Leases (Topic 842): Common Control Arrangements” (“ASU 2023‑01”) which requires leasehold improvements associated with common control leases be (1) amortized by the lessee over the useful life of the leasehold improvements to the common control group as long as the lessee controls the use of the underlying asset through a lease and (2) accounted for as a transfer between entities under common control through an adjustment to equity if, and when, the lessee no longer controls the use of the underlying asset. The Company adopted ASU 2023‑01 on January 1, 2024 and the impact was not material to its financial position, results of operations, or cash flows.

 

Recent Accounting Standards

 

In November 2023, the FASB issued ASU No. 2023‑07, “Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures” (“ASU 2023‑07”) which requires disclosure of incremental segment information, primarily through enhanced disclosures about significant segment expenses, on an annual and interim basis for all public entities. ASU 2023‑07 will be applied retrospectively, and will be effective for the Company’s 2024 annual reporting, and for interim periods beginning in 2025, with early adoption permitted. The Company does not expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.

 

In December 2023, the FASB issued ASU No. 2023‑09, “Income Taxes (Topic 740): Improvements to Income Tax Disclosures” (“ASU 2023‑09”) which improves the transparency, effectiveness, and comparability of income tax disclosures and allows investors to better assess, in their capital allocation decisions, how an entity’s worldwide operations and related tax risks and tax planning and operation opportunities affect its income tax rate and prospects for future cash flows. ASU 2023‑09 will be applied prospectively, and will be effective for the Company’s 2025 annual reporting, with early adoption permitted. The Company is currently assessing the impact of ASU 2023‑09 on its disclosures in the notes to the consolidated financial statements.

 

XML 38 R22.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Insider Trading Arrangements
3 Months Ended
Mar. 31, 2024
Insider Trading Arr Line Items  
Material Terms of Trading Arrangement [Text Block]

Item5. Other Information

 

None of our directors or officers adopted, modified, or terminated a Rule 10b5‑1 trading arrangement or a non-Rule 10b5‑1 trading arrangement during the three months ended March 31, 2024, as such terms are defined under Item 408(a) of Regulation S‑K.

 

Rule 10b5-1 Arrangement Adopted [Flag] false
Non-Rule 10b5-1 Arrangement Adopted [Flag] false
Rule 10b5-1 Arrangement Terminated [Flag] false
Non-Rule 10b5-1 Arrangement Terminated [Flag] false
XML 39 R23.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 2 - Inventories (Tables)
3 Months Ended
Mar. 31, 2024
Notes Tables  
Schedule Of Inventory Current And Non Current [Table Text Block]
  

March 31, 2024

  

December 31, 2023

 
         

Raw materials

 $71,801  $68,110 

Work-in-process

  9,084   8,912 

Finished goods

  13,274   11,911 

Supplies

  2,322   2,296 

Total inventories

 $96,481  $91,229 
XML 40 R24.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 3 - Fair Value Measurements (Tables)
3 Months Ended
Mar. 31, 2024
Notes Tables  
Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]
  

Total

  

Level 1

  

Level 2

  

Level 3

 

As of March 31, 2024

                

Financial assets:

                

Deferred compensation plan

 $3,960  $3,485  $475  $- 

Foreign currency forward contracts

  14   -   14   - 

Interest rate swaps

  358   -   358   - 

Total financial assets

 $4,332  $3,485  $847  $- 
                 

As of December 31, 2023

                

Financial assets:

                

Deferred compensation plan

 $3,912  $3,391  $521   - 

Foreign currency forward contracts

  42   -   42   - 

Interest rate swaps

  326   -   326   - 

Total financial assets

 $4,280  $3,391  $889  $- 
                 

Financial liabilities:

                

Foreign currency forward contracts

 $(115) $-  $(115) $- 
XML 41 R25.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 4 - Derivative Instruments and Hedging Activities (Tables)
3 Months Ended
Mar. 31, 2024
Notes Tables  
Derivative Instruments, Gain (Loss) [Table Text Block]
  

Three Months Ended March 31,

 
  

2024

  

2023

 

Foreign currency forward contracts:

        

Net sales

 $100  $(282)

Property and equipment

  -   (87)
         

Interest rate swaps:

        

Interest expense

  120   158 

Total

 $220  $(211)
XML 42 R26.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 6 - Share-based Compensation (Tables)
3 Months Ended
Mar. 31, 2024
Notes Tables  
Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]
  

Three Months Ended March 31,

 
  

2024

  

2023

 
         

Cost of sales

 $352  $275 

Selling, general, and administrative expense

  673   715 

Total

 $1,025  $990 
Schedule of Unvested Restricted Stock Units and Performance Share Awards Activity [Table Text Block]
  

Number of RSUs and PSAs (1)

  

Weighted-Average Grant Date Fair Value

 
         

Unvested RSUs and PSAs as of December 31, 2023

  226,391  $29.66 

RSUs and PSAs granted

  120,143   34.68 

RSUs vested

  (25,819)  30.35 

Unvested RSUs and PSAs as of March 31, 2024

  320,715   31.49 
XML 43 R27.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 8 - Revenue (Tables)
3 Months Ended
Mar. 31, 2024
Notes Tables  
Disaggregation of Revenue [Table Text Block]
  

Three Months Ended March 31,

 
  

2024

  

2023

 
         

Over time

 $80,007  $63,546 

Point in time

  33,208   35,551 

Net sales

 $113,215  $99,097 
Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]
  Three Months Ended March 31, 
  

2024

  

2023

 
         

Balance, beginning of period

 $120,516  $121,778 

Revenue recognized in advance of billings

  70,640   53,048 

Billings

  (54,772)  (56,916)

Other

  (669)  (1,569)

Balance, end of period

 $135,715  $116,341 
  Three Months Ended March 31, 
  

2024

  

2023

 
         

Balance, beginning of period

 $21,450  $17,456 

Billings

  6,512   18,675 

Revenue recognized

  (9,367)  (10,498)

Other

  1   161 

Balance, end of period

 $18,596  $25,794 
XML 44 R28.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 10 - Accumulated Other Comprehensive Loss (Tables)
3 Months Ended
Mar. 31, 2024
Notes Tables  
Schedule of Changes in Accumulated Other Comprehensive Income Loss [Table Text Block]
  

Pension Liability Adjustment

  

Unrealized Loss on Foreign Currency Forward Contracts Designated as Cash Flow Hedges

  

Unrealized Gain on Interest Rate Swaps Designated as Cash Flow Hedges

  

Total

 
                 

Balances, December 31, 2023

 $(1,193) $(13) $246  $(960)
                 

Other comprehensive income before reclassifications

  18   8   115   141 

Amounts reclassified from Accumulated other comprehensive loss

  3   2   (91)  (86)

Net current period other comprehensive income

  21   10   24   55 
                 

Balances, March 31, 2024

 $(1,172) $(3) $270  $(905)
                 
  Pension Liability Adjustment  Unrealized Gain on Foreign Currency Forward Contracts Designated as Cash Flow Hedges  Unrealized Gain on Interest Rate Swaps Designated as Cash Flow Hedges  Total 
                 

Balances, December 31, 2022

 $(1,532) $94  $649  $(789)
                 

Other comprehensive income (loss) before reclassifications

  26   (10)  (59)  (43)

Amounts reclassified from Accumulated other comprehensive loss

  3   32   (119)  (84)

Net current period other comprehensive income (loss)

  29   22   (178)  (127)
                 

Balances, March 31, 2023

 $(1,503) $116  $471  $(916)
Reclassification out of Accumulated Other Comprehensive Income [Table Text Block]
  

Amount reclassified from Accumulated Other Comprehensive Loss

  

Affected line item in the Condensed Consolidated

Details about Accumulated Other

 

Three Months Ended March 31,

  

Statements

Comprehensive Loss Components

 

2024

  

2023

  

of Operations

           

Pension liability adjustment:

          

Net periodic pension cost:

          

Service cost

 $(3) $(3) 

Cost of sales

   (3)  (3) 

Net of tax

           

Unrealized gain (loss) on foreign currency forward contracts:

          

Gain (loss) on cash flow hedges

  (2)  44  

Net sales

Loss on cash flow hedges

  -   (87) 

Property and equipment

Associated income tax benefit

  -   11  

Income tax expense

   (2)  (32) 

Net of tax

           

Unrealized gain on interest rate swaps:

          

Gain on cash flow hedges

  120   158  

Interest expense

Associated income tax expense

  (29)  (39) 

Income tax expense

   91   119  

Net of tax

           

Total reclassifications for the period

 $86  $84   
XML 45 R29.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 11 - Net Income Per Share (Tables)
3 Months Ended
Mar. 31, 2024
Notes Tables  
Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]
  

Three Months Ended March 31,

 
  

2024

  

2023

 
         

Net income

 $5,238  $2,362 
         

Basic weighted-average common shares outstanding

  9,916   9,940 

Effect of potentially dilutive common shares (1)

  129   147 

Diluted weighted-average common shares outstanding

  10,045   10,087 
         

Net income per common share:

        

Basic

 $0.53  $0.24 

Diluted

 $0.52  $0.23 
XML 46 R30.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 12 - Segment Information (Tables)
3 Months Ended
Mar. 31, 2024
Notes Tables  
Schedule of Segment Reporting Information, by Segment [Table Text Block]
  

Three Months Ended March 31,

 
  

2024

  

2023

 

Net sales:

        

Engineered Steel Pressure Pipe

 $80,007  $63,546 

Precast Infrastructure and Engineered Systems

  33,208   35,551 

Total net sales

 $113,215  $99,097 
         

Gross profit:

        

Engineered Steel Pressure Pipe

 $14,242  $7,782 

Precast Infrastructure and Engineered Systems

  5,892   8,795 

Total gross profit

 $20,134  $16,577 
XML 47 R31.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 1 - Organization and Basis of Presentation (Details Textual)
3 Months Ended
Mar. 31, 2024
Number of Operating Segments 2
Number of Manufacturing Facilities 13
XML 48 R32.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 2 - Inventories - Components of Inventories (Details) - USD ($)
$ in Thousands
Mar. 31, 2024
Dec. 31, 2023
Raw materials $ 71,801 $ 68,110
Work-in-process 9,084 8,912
Finished goods 13,274 11,911
Supplies 2,322 2,296
Total inventories $ 96,481 $ 91,229
XML 49 R33.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 3 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details) - USD ($)
$ in Thousands
Mar. 31, 2024
Dec. 31, 2023
Total financial assets $ 4,332 $ 4,280
Fair Value, Inputs, Level 1 [Member]    
Total financial assets 3,485 3,391
Fair Value, Inputs, Level 2 [Member]    
Total financial assets 847 889
Fair Value, Inputs, Level 3 [Member]    
Total financial assets 0 0
Deferred Compensation Plan [Member]    
Deferred compensation plan 3,960 3,912
Deferred Compensation Plan [Member] | Fair Value, Inputs, Level 1 [Member]    
Deferred compensation plan 3,485 3,391
Deferred Compensation Plan [Member] | Fair Value, Inputs, Level 2 [Member]    
Deferred compensation plan 475 521
Deferred Compensation Plan [Member] | Fair Value, Inputs, Level 3 [Member]    
Deferred compensation plan 0 0
Foreign Exchange Forward [Member]    
Derivative assets 14 (115)
Foreign currency forward contracts   42
Foreign Exchange Forward [Member] | Fair Value, Inputs, Level 1 [Member]    
Derivative assets 0 0
Foreign currency forward contracts   0
Foreign Exchange Forward [Member] | Fair Value, Inputs, Level 2 [Member]    
Derivative assets 14 (115)
Foreign currency forward contracts   42
Foreign Exchange Forward [Member] | Fair Value, Inputs, Level 3 [Member]    
Derivative assets 0 0
Foreign currency forward contracts   0
Interest Rate Swap [Member]    
Derivative assets 358 326
Interest Rate Swap [Member] | Fair Value, Inputs, Level 1 [Member]    
Derivative assets 0 0
Interest Rate Swap [Member] | Fair Value, Inputs, Level 2 [Member]    
Derivative assets 358 326
Interest Rate Swap [Member] | Fair Value, Inputs, Level 3 [Member]    
Derivative assets $ 0 $ 0
XML 50 R34.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 4 - Derivative Instruments and Hedging Activities (Details Textual)
$ in Thousands, € in Millions, $ in Millions
3 Months Ended
Mar. 31, 2024
USD ($)
Mar. 31, 2024
CAD ($)
Mar. 31, 2024
EUR (€)
Dec. 31, 2023
USD ($)
Dec. 31, 2023
CAD ($)
Dec. 31, 2023
EUR (€)
Apr. 03, 2023
Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), before Reclassification and Tax $ 400            
Reclassified to Net Sales [Member]              
Cash Flow Hedge Gain (Loss) to be Reclassified within 12 Months 0            
Reclassified to Interest Expense [Member]              
Cash Flow Hedge Gain (Loss) to be Reclassified within 12 Months $ 200            
The 1.941% Interest Rate Swap [Member]              
Derivative, Fixed Interest Rate 1.941% 1.941% 1.941%        
The 1.941% Interest Rate Swap [Member] | Cash Flow Hedging [Member]              
Derivative, Notional Amount $ 1,700     $ 6,700      
The 2.96% Interest Rate Swap [Member] | Cash Flow Hedging [Member]              
Derivative, Notional Amount 12,300     13,000      
Derivative, Fixed Interest Rate             2.96%
Designated as Hedging Instrument [Member] | Foreign Exchange Forward [Member]              
Derivative, Notional Amount 4,900 $ 6.6   5,100 $ 6.7    
Designated as Hedging Instrument [Member] | Foreign Exchange Forward 1 [Member]              
Derivative, Notional Amount 1,100   € 1.1 1,200   € 1.1  
Not Designated as Hedging Instrument [Member] | Foreign Exchange Forward [Member]              
Derivative, Notional Amount 4,800 $ 6.4   4,900 $ 6.4    
Not Designated as Hedging Instrument [Member] | Foreign Exchange Forward 1 [Member]              
Derivative, Notional Amount $ 1,100   € 1.1 $ 1,200   € 1.1  
XML 51 R35.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 4 - Derivative Instruments and Hedging Activities - Summary of Gains (Losses) (Details) - Not Designated as Hedging Instrument [Member] - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Gains (losses) recognized on derivatives $ 220 $ (211)
Foreign Exchange Forward [Member] | Sales [Member]    
Gains (losses) recognized on derivatives 100 (282)
Foreign Exchange Forward [Member] | Property and Equipment [Member]    
Gains (losses) recognized on derivatives 0 (87)
Interest Rate Swap [Member] | Interest Expense [Member]    
Gains (losses) recognized on derivatives $ 120 $ 158
XML 52 R36.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 5 - Stockholders' Equity (Details Textual) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Dec. 01, 2023
Nov. 02, 2023
Stock Repurchased and Retired During Period, Value $ 3,744      
Share Repurchase Program [Member]        
Stock Repurchase Program, Authorized Amount       $ 30,000
Rule 10b5-1 Trading Plan, Designated Amount     $ 10,000  
Stock Repurchased and Retired During Period, Shares (in shares) 127,000 0    
Stock Repurchased and Retired During Period, Value $ 3,700      
XML 53 R37.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 6 - Share-based Compensation (Details Textual)
$ in Millions
3 Months Ended
Mar. 31, 2024
USD ($)
shares
Number Of Active Stock Incentive Plans 1
Number Of Inactive Stock Incentive Plans 1
Performance Shares [Member]  
Performance Share Award Target Level, Percentage 100.00%
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number At Target Level Of Performance (in shares) | shares 260,000
Performance Shares [Member] | Minimum [Member]  
Performance Awards Issued Multiplier 0.00%
Performance Shares [Member] | Maximum [Member]  
Performance Awards Issued Multiplier 200.00%
Restricted Stock Units and Performance Stock Awards [Member]  
Share-Based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount | $ $ 6.9
Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year) 2 years
XML 54 R38.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 6 - Share-based Compensation - Share-based Compensation Expense (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Share-based compensation expense $ 1,025 $ 990
Cost of Sales [Member]    
Share-based compensation expense 352 275
Selling, General and Administrative Expenses [Member]    
Share-based compensation expense $ 673 $ 715
XML 55 R39.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 6 - Share-based Compensation - RSU and PSA Activity (Details)
3 Months Ended
Mar. 31, 2024
$ / shares
shares
Restricted Stock Units and Performance Stock Awards [Member]  
Unvested RSUs and PSAs (in shares) | shares 226,391 [1]
Unvested RSUs and PSAs, weighted average grant date fair value (in dollars per share) | $ / shares $ 29.66
RSUs and PSAs granted (in shares) | shares 120,143 [1]
RSUs and PSAs granted (in dollars per share) | $ / shares $ 34.68
Unvested RSUs and PSAs (in shares) | shares 320,715 [1]
Unvested RSUs and PSAs, weighted average grant date fair value (in dollars per share) | $ / shares $ 31.49
Restricted Stock Units [Member]  
RSUs vested (in shares) | shares (25,819) [1]
RSUs vested (in dollars per share) | $ / shares $ 30.35
[1] The number of PSAs disclosed in this table are at the target level of 100%.
XML 56 R40.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 7 - Commitments and Contingencies (Details Textual)
$ in Millions
1 Months Ended
Jan. 31, 2017
USD ($)
Mar. 31, 2024
USD ($)
Jun. 30, 2014
USD ($)
Letters of Credit Outstanding, Amount   $ 1.1  
Capital Addition Purchase Commitments [Member]      
Other Commitment, Amount Paid for Equipment Purchased Yet Not Received   1.1  
Other Commitment   $ 4.6  
Portland Harbor Natural Resources Trustee Council [Member]      
Loss Contingency, Accrual, Current     $ 0.4
Portland Harbor Superfund Site [Member]      
Number Of Potentially Responsible Parties 150    
Estimated Cost of EPA Selected Remedy $ 1,000.0    
Estimated Time to Complete Selected EPA Remedy (Year) 13 years    
Lower Willamette Group [Member]      
Number Of Potentially Responsible Parties 14    
XML 57 R41.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 8 - Revenue 1 (Details Textual) - USD ($)
$ in Millions
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Contract with Customer, Liability, Cumulative Catch-up Adjustment to Revenue, Change in Estimate of Transaction Price $ 1.9 $ 0.4
Revenue, Remaining Performance Obligation, Amount $ 255.0  
XML 58 R42.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 8 - Revenue 2 (Details Textual)
Mar. 31, 2024
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-04-01  
Revenue, Remaining Performance Obligation, Percentage 64.00%
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Year) 9 months
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-01-01  
Revenue, Remaining Performance Obligation, Percentage 28.00%
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Year) 1 year
XML 59 R43.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 8 - Revenue - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Net sales $ 113,215 $ 99,097
Transferred over Time [Member]    
Net sales 80,007 63,546
Transferred at Point in Time [Member]    
Net sales $ 33,208 $ 35,551
XML 60 R44.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 8 - Revenue - Contract With Customer Assets and Liabilities (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Balance, beginning of period $ 120,516 $ 121,778
Revenue recognized in advance of billings 70,640 53,048
Contract With Customer, Asset, Billings (54,772) (56,916)
Contract With Customer, Asset, Other (669) (1,569)
Balance, end of period 135,715 116,341
Balance, beginning of period 21,450 17,456
Contract With Customer, Liability, Billings 6,512 18,675
Revenue recognized (9,367) (10,498)
Contract With Customer, Liability, Other 1 161
Balance, end of period $ 18,596 $ 25,794
XML 61 R45.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 9 - Income Taxes (Details Textual)
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Open Tax Year 2019 2020 2021 2022 2023 2024  
Effective Income Tax Rate Reconciliation, Percent 27.50% 28.70%
XML 62 R46.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 10 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Balance $ 340,360 $ 318,274
Net current period other comprehensive income 55 (127)
Balance 342,614 321,077
Accumulated Defined Benefit Plans Adjustment Attributable to Parent [Member]    
Balance (1,193) (1,532)
Other comprehensive income before reclassifications 18 26
Amounts reclassified from Accumulated other comprehensive loss 3 3
Net current period other comprehensive income 21 29
Balance (1,172) (1,503)
Accumulated Gain (Loss), Net, Cash Flow Hedge, Parent [Member] | Foreign Exchange Forward [Member]    
Balance (13) 94
Other comprehensive income before reclassifications 8 (10)
Amounts reclassified from Accumulated other comprehensive loss 2 32
Net current period other comprehensive income 10 22
Balance (3) 116
Accumulated Gain (Loss), Net, Cash Flow Hedge, Parent [Member] | Interest Rate Swap [Member]    
Balance 246 649
Other comprehensive income before reclassifications 115 (59)
Amounts reclassified from Accumulated other comprehensive loss (91) (119)
Net current period other comprehensive income 24 (178)
Balance 270 471
AOCI Attributable to Parent [Member]    
Balance (960) (789)
Other comprehensive income before reclassifications 141 (43)
Amounts reclassified from Accumulated other comprehensive loss (86) (84)
Net current period other comprehensive income 55 (127)
Balance $ (905) $ (916)
XML 63 R47.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 10 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Cost of sales $ 93,081 $ 82,520
Net income 5,238 2,362
Net sales 113,215 99,097
Tax (expense) benefit (1,985) (951)
Gain on cash flow hedges 1,474 1,369
Reclassification out of Accumulated Other Comprehensive Income [Member]    
Net income 86 84
Reclassification out of Accumulated Other Comprehensive Income [Member] | Accumulated Defined Benefit Plans Adjustment Attributable to Parent [Member]    
Cost of sales (3) (3)
Net income (3) (3)
Tax (expense) benefit 0 11
Reclassification out of Accumulated Other Comprehensive Income [Member] | Accumulated Gain (Loss), Net, Cash Flow Hedge, Parent [Member] | Foreign Exchange Forward [Member]    
Net income (2) (32)
Net sales (2) 44
Property and equipment 0 (87)
Reclassification out of Accumulated Other Comprehensive Income [Member] | Accumulated Gain (Loss), Net, Cash Flow Hedge, Parent [Member] | Interest Rate Swap [Member]    
Net income 91 119
Tax (expense) benefit (29) (39)
Gain on cash flow hedges $ 120 $ 158
XML 64 R48.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 11 - Net Income Per Share (Details Textual) - shares
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares) 6,000 0
XML 65 R49.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 11 - Net Income Per Share - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Net income $ 5,238 $ 2,362
Basic (in shares) 9,916 9,940
Effect of potentially dilutive common shares (in shares) [1] 129 147
Diluted weighted-average common shares outstanding (in shares) 10,045 10,087
Basic (in dollars per share) $ 0.53 $ 0.24
Diluted (in dollars per share) $ 0.52 $ 0.23
[1] The weighted-average number of antidilutive shares not included in the computation of diluted net income per share was approximately 6,000 for the three months ended March 31, 2024. There were no antidilutive shares for the three months ended March 31, 2023.
XML 66 R50.htm IDEA: XBRL DOCUMENT v3.24.1.u1
Note 12 - Segment Information - Information Related to the Operations of the Company's Operating Segments (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Net sales $ 113,215 $ 99,097
Gross profit 20,134 16,577
Operating Segments [Member]    
Net sales 113,215 99,097
Gross profit 20,134 16,577
Operating Segments [Member] | Engineered Steel Pressure Pipe [Member]    
Net sales 80,007 63,546
Gross profit 14,242 7,782
Operating Segments [Member] | Precast Infrastructure and Engineered Systems [Member]    
Net sales 33,208 35,551
Gross profit $ 5,892 $ 8,795
EXCEL 67 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( *: HE@'04UB@0 +$ 0 9&]C4')O<',O87!P+GAM M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGDK7A.YNJQ<&4GPZ4A!0W_J=0U[R;UEA_6\#MI7E!+ P04 M " "F@*)8Z;V6(.\ K @ $0 &1O8U!R;W!S+V-O&ULS9+/ M:L,P#(=?9?B>R$G_'$SJ2T=/'0Q6V-C-V&IK%L?&UDCZ]DN\-F5L#["CI9\_ M?0(U.@CM(SY''S"2Q?0PN+9+0H<-.Q,% 9#T&9U*Y9CHQN;11Z=H?,83!*4_ MU FAYGP-#DD910HF8!%F(I.-T4)'5.3C%6_TC ^?LG_4M>M[!= M(M5I''\E*^@2<,-NDU\7V\?#CLF:U\N"KPI>'VHN^%*LUN^3ZP^_N[#SQA[M M/S:^"&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T$W-I=MNTF83M M3A^%$5B-;'EDD81_OTV23;J;/ 0LZ?O.14?GZ#AY\^XN8NB&B)3R M> +]O6N[!3+ MUES@6QHO(];JM-O=5H1I;*$81V1@?5XL:$#05%%:;U\@M.4?,_@5RU2-9:,! M$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP&U@@?\YOI^1.6HCA5,+$P&IG/U9K MQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C.=GSVQ.V?C,K:=#1M&N#C\7@XMLO2 MBW A(5M>5 TR M6'!VULS2 Y9>*?IUE!K9';O=05SP6.XYB1'^QL4$UFG2&98T1G*=D 4. #?$ MT4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB!]4>"(<7K;YH] M5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95O-RCEU@5 9<8WS2J-2S%UGB5P/&M MG#P=$Q+-E L&08:7)"82J3E^34@3_BNEVOZKR2.FJW"$2M"/F(9 M-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PUDSY@R.S-D77.UI$.$9)>-T(^8LZ+ MD!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;]N'Z&U3-L+([W1]072N0/)J<_Z3(T M!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E>G@*-Y;&O%"N@GL!_]':-\*K^(+ M.7\N?<^E[[GT/:'2MSAD6R4)RU3393>* M$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.WF)&Y M"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1^^?!4;"C[SR6'<>(\J(A[J&&F,_# M0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L%.!D8"V@!X.O40+R4E5@,5O& RN0 MHGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9;2)2.<)IF!-GJ\K>9;'!51W/55OR ML+YJ/;053L_^6:W(GPP13A8+$DACE!>F2J+S&5.^YRM)Q%4XOT4SMA*7&+SC MYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M# DL6XA9$N)-7>W5YYNTB42%(JP# 4A M%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG!/3-R0]A4)?.NVB8+A=OB5,V[&KXF M8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.' MYA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[\8$@F_S6VZ3VW> ,?-2K6J5D*Q$_ M2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY@%CS#*%F.-^'19H:,]6+K#F-"F]! MU4#E/]O4#6CV#30,9FV-J/D3@H\W/[O#;#"Q([A[8N_ 5!+ P04 M" "F@*)8W>2Q.N4% #]'@ & 'AL+W=O<0$(K\^"B(4UK$O*^\0*_S(2,F893.6^I5'(6Y$%QU**.TVW%+$P:PT%^;2*' Y'I*$SX1!*5 MQ3&3SQ<\$JOSAMO87+@+YPMM+K2&@Y3-^93KW].)A+-6J1*$,4]4*!(B^>R\ M,7+?C3UJ O([OH9\I;:.B4%Y$.+1G-P$YPW'M(A'W-=&@L&?)1_S*#)*T(Y_ MUJ*-\IDF@P1\QK)(WXG5KWP-U#%ZOHA4 M_C]9%?>VVPWB9TJ+>!T,+8C#I/C+GM8=L1W@[ B@ZP#Z*L#=]01O'>#EH$7+ MG@I_ RRHLDH")6C#)U:"EX6DFIN6OE2\*9;I#V2.?1*(7"E0#'KR,;T$KRZ;2 M35,O*"KXBVN^NOCW 7 MN=$\5G_;NJR0;-LES2O[3J7,Y^<->"<5ETO>&+Y]XW:=]S;>'R3V@KY=TK&Z5,;0 9)%T Q\:(QM9D[)2,G4,8[_@\5$ ) MJ;YE,;<1XCJW0NK%BBM-)F'*R5BVBSRE%H33GA,A0!N8;+UC$;5_MBY4-C:O+U2[[^_^++L[B3#M?: M-6^@437Y7*>:@)W#".^?4VM=[HEWG>87&Q4>5A=KRU>XAV%]R9C47$9F($UA M)+0BXEI:9M;1!0^KBT@K1'H8XOJEPP:7/5*EM]EI;G"!NJR5V7%1-[%5I3 1 MJC W.T@^<;&=TP4>5Q>R\C3N0:;F.HPXNN6W'BG<,-^-6 M=L8]R,_<)+Z0D+GOW>E;>8S@>M[(\+NY2UKRC( !U M=;(Y(/FRY'-BSRLN21V7W%Z1"9./9!*Q?QFYE+#RAL+)0B@<\.[6?CB&*7(K M5^3B1N9U/XS-&=3XO5@EUC[ Y;XR>&>RI;5>QGAL7=3*(+FXJWF-6K[/$RF6 M8>+;Q7ZOV[-_23B&=Z*5 M=Z*XW\FK=20YVPV&"WA=ZTN)1]7%JOP2Q4W.1Y&O4!8BP:;7/2)>_^SMFQYU M^N^[M&.G/(93HI53HKBYN0\UV $7,N5^)B&?5E1<:2SB&&:JJ1;^ MXPE)8>&S9%'&R4_.*8S)*9?%MSEK'QS#2-'*2%'< X%)#,)D3J;/\8.(K.BX MP.VWR1]6KF,X*%HY*(I[G$TRR=63OV#)G._\(K1'Z'8TO1Q9EVUX8%W"RC#1 M@PS3YMM)8?'S5,*T8E]T[U'\;OUX/,:CZG)61HD>9)1N$EB:%EL)9NG&-N!6 M3EQQ%^=5!L@[R !=Q5S.S2OY 13T CQ"G++$ MFM0]@CM!\;BZH)7_\7#[LDGD@D,B,3Q<9C?>,7R05_D@#[]N6\8'E5-[QDA7PSXZ+G"H8BKTM2\%H M4BOEF4T<)[!SFA;6Q++.:]4EA;L22!9Y3D5_ZU8QH\+"UMO'SZG^X/2 M'^SEO*1[MF'JN7P2,+([*TF:LT*FO$""[1;6 [Y?XU KU!)_I>PHS]Z17LJ6 M\R]Z\#%96(XF8AF+E39!X?'"UBS+M"7@^+:$-6+^N1*KJ<"WY$0DN#-?U2[TVM#:M) M"WV,&R7@WQ3TU'+-BP0.A24(WB3/TH0J&&P4/."TE$1\A_XHF:!ZUR6Z>BYH ME:0@25HD\@:]NQC/;06X>E([;M%6#1H9 M07/1)UZH@T3O 3&YU+=AF=U:R=M:5V32X"1$LT[J LSKP+Q) ML#672A_[*%RC[I_/ZCHA[K$-I4+B$\?,YG=L_B3;KX)+B4K!=ZDRH?F#28F# M7:^'-I3"@3\;V;:@0PLFT380B])B?X/VK !_R6X0W'M$$_#:5"KM0"\,L==2 MNYL)/1A"8<_KHYNDPB PH\\Z]-DD>NO@Q1Y<-N:Y$6\V/,X@FQ##P>RS'M]0XI9$9KRHPXLF\3X6BD'P4U-'&PVG MQ=ZL?[0F*3<8P[ M(ZAGR0A_"RK 3>UF:^3"!Z*P'QH-4I$_'4&KY.V>TO*?]U04X,KRB8F-SLL/6QU]8F.XQ),I2M>0 M][*D,5M84"1*)EZ8M?SY)QPXOYCRYX^R=KD!I[2%I_/6BLHT1E=0=20\RZB M/ &!HZY-C.&B-3<[.P?GSA]<=9,4\49.ZY3'\'0B>TRS2E=:WX'KFW!)'] M3I2G*]:4O.:#&F;!*,)!_Z!,4MY(>81/R1)/9\OS>S7%.,R$V'&\01 UBH7] M2LD^:T!R)O9U7R91S*M"-?5Y][7K_1[JCJ?W?:5[PKJQ.9EI&DJHOOH.N4E_\#4$L# M!!0 ( *: HECUXQ.MWP, '40 8 >&PO=V]R:W-H965T&ULO5AMD]HV$/XK.VZFDYO)G=_ P!68R9%T>A^N98Y>^R&3#\(66(TM M44G );\^*V$,!N/F9GS]@B5Y]]&S+Y)W&6Z%_*)22C4\YQE7(R?5>G7KNBI. M:4[4C5A1CF\60N9$XU0N7;62E"16*<_

,.^.A79O*\5"L=<8XG4I0 MZSPG\NL=S<1VY/C.?N&1+5-M%MSQ<$66=$;UTVHJ<>:6* G+*5=,<)!T,7+> M^[<3/S(*5N(O1K?J: S&E+D07\SD/ADYGF%$,QIK T'PL:$3FF4&"7G\6X Z MY9Y&\7B\1__5&H_&S(FB$Y']S1*=CIR^ PE=D'6F'\7V-UH8U#5XLLY$*^5%GFAC QRQG=/\EPXXD@!<>H5@D(A.%7H7% ("X70&KIC9LWZ0#09 M#Z78@C32B&8&UC=6&ZUAW(1QIB6^9:BGQQ/!$PP*30!'2F0L(1HG,XT/C)96 M(!;X*L<<24WP-A3N>2QR"F^?.%DG#*6OX!J>9A_@[9LK> .,PY^I6"O"$S5T M-7(T.[EQP>=NQR>XP">$!\%UJN C\DJJ^B[:5AH8[ V\"QH!'XB\@=!_!X$7 M=&KX3'YYP+>[W@RF75@G6]VNI'5-0=P,^X&87_H;HX)GPL% M81240A5:G9)6QVJ%%VC]H5,J(:[$F15QSH125^^ (W/,!4V>;^NH=YK,-I?1 MK5J1F(X?_,C[I2XF+8%57-$M7=%MC- 3Q^LP8]_P%"SQ&@2\ M:Q(JV8:8^T;A6+$EMX>$*(B)2F&!=R&D-%G2VH1OW.ZEGMF!=8^"?^WW^O7! MCTJ+H__,R7@M)1YW6*&I(@%Q,1_J+(S.2'6[)TE[+G+M![UZWKV2=Z^1]^0' MZ?7.Z06#\(3@N5 0A-UZ@OV28+^1('YH\#/"X>-SG!*^I( +6R(3^/1 \SF5 MG^O8-D*^-%U: JM8/RBM'[SRG3)HTQ4M@55M[)SE= M(Q-<^%#X1P6#WVC)/=<4/:3A$>G";$M6C>GO')*%QNT MY8Z6T*KN.-0R?G,QTWY2A^<)VSE-ZG.9RY] _U ^8U%Q7A:M";3C/#FA&ZU MTFD+K6KUH=;QNZ^=T*V6-VVA5=UQ*(3\YDIHGP09(W.6,?T52/(/-F&F$ZHU M/CJOQ?W3?*V1&9QDJWO4P.54+FU?BT=&K+G>M3KE:MD[O[<=X\GZG>FI;6-X M@-DUY-C(+!E7D-$%0GHW/?2TW/6XNXD6*]LFSH7&IM,.4TKP/!L!?+\00N\G M9H/RGX;Q=U!+ P04 " "F@*)8F%5Q&/H& !U' & 'AL+W=O M3E9*K<]G,YFM6$7E&5^S&NXLN:BH@E/Q,)-KP6C>#JK*&?&\:%;1HI[,+]IK MMV)^P1M5%C6[%4@V547%\S4K^>/E!$]>+GPI'E9*7YC-+];T@=TQ]6U]*^!L MUEG)BXK5LN U$FQY.;G"YPL_U -:Q#\%>Y1[QTB[)H1*UFF MM D*_S9LP/W9&)]TS]<#]XQ?K?[3.@S/W5+(%+_\M+4;# RJHM[^IT^[0.P-P,'( +(; M0'YU@+\;X+>.;IFU;MU01><7@C\BH=%@31^TL6E'@S=%K5_CG1)PMX!Q:K[@ M=0XOA>4(CB0OBYPJ.+FF):TSANZT88G>+1HA6*W0+1,%S]&WFC9Y <#WZ!1] MN[M![T[>HQ-4U.CKBC>2UKF\F"F@IQ\RRW94KK=4R B53U2<(1]/$?%(8!F^ M< ^_85DWW#\!YMWO\G8@:]^YZOOLCY?4+E"\-90I@_8CZ;8T!*D(AF49#@ 34+"A.2VIG%';/8R>Q6L#4MUKIRR3XC;$1C@T*Z&=:R2=AMA[ MF6_1U ]3F[^IF:Y!Z.N2?>"O#>:GX2F,GZS\YSQ^+LK12PV85"T-OF$!' M88?4>IG$3F6"0J%H_5! %=Z%KZW%5J+$8.!#MSDLMS88]N(QHKW&8;?(?6Y% MP_&*?>.Y4>P/JZT5Y8V4--Q+&SZB;6VU<) S12@B&,(WI&>1-$C3ONXA;NU[2<:VE=RN[?"!G1QP@ICZ%7A0/^%M00>J/1)GT(D;<(G;8$1UC M:LI5XI-XV"988&F$TQ&Q('N+/[>J77,!8R"N$D&@]5T=[4PP6/9:Z9JBE:1) M9- U86$0)"/] >FUC1S1ME>F@2EB24#PL'VWP4*2C"5"+W;$+78W;,D@"7)4 MU!FO&%+T:82GJ6;8LT35!DO'BA?I-8^XUVC;CJ'D]<.I8J(Z&E7+2LR#I>*0 MK0T6X7B$;2]6Q"U6V^EUC*,I121.HL0@:<&%<4A&^@C2:Q9Q:]:"5U6A]"IC MNW#+H/1"WK(Z \;HW=]<,12_MU)W&K;W LBZT_+_#1TZWZLA29Q-U)WBV?<5 M+W,FY-LW"<'QAW;5I9[M^TM.;7WU!M-OLG;H>Z^QY-A2\V762QV%*3HY\S!T M+@)M:-FP*<+>U//:7R175.B%?:-67!0_60YK"@XEN)!2-Q-<(-XH">N.'%+' M&CE3@8>=LA-RN(O6"[1_1* AN4$NQAP,70ZFTR0FTR2-VVF13M,DG(9)!]VY MWNYU]+[#BD'KTBZ;LI\,. MS(+!WEC<^L[ =W<&5SG(*G0T4+_TULYI49]F=%U /;/R-#4?D\@+AVV,%9=Z MZ8C:^GUSX+N;@R],4;B4(T9%K7L$*TM3ZF&^^X9X67'P,\9R;T_7W1-<[6W? M;#=,06QA:J_T1Y@-] AL,%@Q45C65"WQKXO[(.EJ-UTDK8E'\_ M(!$>[H!8<9X_2KKO$WQWGV H;SL#7^E$:.R86Q?X%IQU@3_;^R:D/\A!B7@H M:@G]X1(&>FB>ZX4K]K#%:- 7@/@_I*#-.].])>G[DOC M_#]02P,$% @ IH"B6 -I&HD? P UPH !@ !X;"]W;W)KV!2AVY$2 5(+54T_8P"15U>S:)(58= M.[,=Z/;I=^RD6:#AUO$ OIS_R>^<'.,SV0GYHC)"-'K-&5=3)].ZN'-=E60D MQZHO"L)A9RUDCC5,Y<95A20XM:*4YH0K*CB29#UU[OV[ MN6\%UN(')3O5&B,3RDJ(%S/YEDX=SQ 11A)M7&#XV9(Y8:81 MML=OWK_8X"&8%59D+MA/FNILZHP=E)(U+IE^$KNOI XH,OX2P93]1KO:UG-0 M4BHM\EH,!#GEU2]^K1/1$OB#(X*@%@27"L):$-I *S(;UB/6>#:18H>DL09O M9F!S8]40#>7F-2ZUA%T*.CV;"Y["2R$I@I$2C*98P^0!,\P3@I;&L4*]>2DE MX1HMB*0B1<\/J/?I9N)J #2/<9,:YJ&" M"8[ ?,>RCT+_%@5>,.B0ST_+'TG2R,-]N0MI:7(3-+D)K+_!$7_W#(K1A!U(<^8?D76;#,(J[R0<-^> D M^0+.+H$*2Q$4?/)RBPHLT1:SDJ >Y9!ZQK!4J"#P!Y1!O7765O6(40O-ZWO^ M ?\9HSWZJ*&/KJ.WC KA4F="TC^P8:*H5CO1*_]1.ZM>]3G O\!P+X1A$\+P M0R%0I%7V"XQ^][_VXZ[_H(+BOP MVG.;*AZ/@G$\.J#O,HS'430^1M^ZI_WKZ:^H]MK]!2%T&':&X+:Z#M/RP>V] MH5PA1M:@]/HC<"&K+JJ::%'81F0E-+0U=IA!YTFD,8#]M1#Z;6)ZFZ:7G?T% M4$L#!!0 ( *: HEBH5_V/) L ,B. 8 >&PO=V]R:W-H965T&ULS=UI<^+(&0?PKZ(B6\E,U7J@6UR:V*Z:,1((T,&AY$4J+V1H M&V5 8B4QGLVG3PMS6*W+,/]L4ENU _CI7TLT];0.'OKV)0B_12O&8NG'9NU' M=[55'&\_U^O18L4V;O0IV#*?_^4I"#=NS)^&S_5H&S)WN6^T6==IH]&N;US/ MK]W?[E^SP_O;8!>O/9_9H13M-ALW_/TK6P)Q+?CMP-:._69-'S[^*AK^YWG._/H1NPA M6/_=6\:KNUJW)BW9D[M;Q]/@9< ..]1*O$6PCO;_EUX.L8V:M-A%<; Y-.9; ML/'\UW_='X@@7QH((L]* 4-FH<&3;&'H@:M0X.6 MT(#2@@;M0X.VV$.[H$'GT* C-.@4O:W=0X.NT*!-"AHHAP:*V$-1 ](XCEQ# M:"(7#1TY#;8XVJW"C\=QN(DXWNW"7HX#3L01;[6*FAR'G(ACWBYL]\(-"C@-/Q)&7BSXJY#CT1!Q[VBEJ?BJ.? MO/WY38ZC3U]3SFN.V">8GAN[][=A\"*%23SWD@?[++5OS_.*YR<)=1:'_*\> M;Q??/P3^DJ='MI3XHRA8>TLWYD]F,?^'Y\TXDH(G_BQ8?%L%ZR4+H[](ZF\[ M+_Y=^N#X[F[I\>B/THWDS'K2AU\^2K](GB_-5\$NN+_W#8)M'%OZ3;]MFPU_<;\?IU1S\X1K\RY+O!7_974NV MZRUO^ X\N%LOYL]+NNI=T]64Q7R.X^^OZH:^YS]'93VH5^V,]:!+7^(X]!YW ML?NX9E(<\-T*^5"6]:5=T5<.TR]G^!3()SA?4G\L5J[_S"3^PHL;+B\?Z,'/ M=G3=H.L_V^U%'X#A3^_D=1^&T4_VFT..RTG=CUG(HEB:\K0CS5[<[>4?">/Z M+J[[,)C7=WC1Q\#ZB1V[[@-@7]UC#C8IQ]X[O--RYKHAG)6C%PW3O&(#KQL* MIUR=!WP/T\WJ_ C@=!A 3X6>FSQ M29+)KQ)M4)HWFY>RR=G@YVCK+MA=C9_N12S\SFKW?_X3:3?^FC=[([$>$E.1 MF(;$^DAL@,1T)#9$8B,D-D9B!A(SD9B%Q&PD-GG%6GLLN7[T_5Y1:$=N-V[K MW]].(,A.9TALCL0<$)::1N33-"*_9QIYU\Q1*ETZ7YJ\D)B.Q(9(;(3$QDC,0&(F$K.0F(W$)DALBL1F M2&R.Q!P0ELK&[5,V;I=F8\M_=Y.L]$7\<><_^ M_DZX&TD+-UI)3VO>PXHMGUGN7>W2[BX]@$9B/22F(C$-B?7;57/=H#)"KXP8 M9B.H<'@QJ@X9(W?<0&(F$K.0F)U]6V](IYM^8R>5 SAM5QY#5D;,LQ'937$J M@E)9JW/*6IW2K*5'T6Y_?35XDA:O]TVC_7W3G<^SU^$Q_\.6'VNZ^^\K;M>N M'_TJ^?SDG[>)W1_2BQ>ODJ_R[&]GOKG;EY?42K?FTJ2&Q'I(3$5B&A+K([$! M$M.1V!")C9#8&(D92,Q$8A82LY'8I)-)HYV&(@L3ZA39Y0R)S9&8 \)2[E^9FJ-:#:BI4TZ!:'ZH-H)H.U890;035QE#-@&HF5+.@F@W5)@E V3]TPN[YM/2JF+YQ.DUH-J*E33H%H? MJ@V@F@[5AE!M!-7&4,V :B94LZ":#=4F!RUUF: MG"(W24LX#E MI2>7<]TGN:KP,W\^@59^0K4>5%.AF@;5^E!M -5TJ#:$:B.H-H9J!E0SH9H% MU6RH-B$YY9O9TP$YYW1 :2@M\70@&T<)_R]S.I"-NU'$'RUP#UK>^.( M=8B:$T*%;T9I[XCIE^__Q2D-6BP*U890;035QE#-@&HF5+.@F@W5)E!M"M5F M4&T.U1R4EL[1Y])1\@?7CI;W=_'!-K1Z%*JI4$V#:GU274%:':)7APQS0H@0 M,WI'S+BZ*Z,ZQ*P.L7)":#,=8[\C9@(=KRE4FT&U.51S4%HZWYV+3LG_5]5I M^>9JDZ<8'6M$*U'E13H9H&U?I0;0#5=*@VA&HCJ#:&:@94,Z&: M!=5LJ#8AV<+2&T([IFEXT%*V M6O=&[C3%W\C)"1-_.:$ZQ"GHK&"U#'HN<*7E!:[7_*9-.7EQNH86ND(U%:II M4*T/U09038=J0Z@V@FICJ&9 -1.J65#-AFH3FBUTS2R+EU.^VA"_K3[+B!)^]OQ(6K,GWK#QJQ,'VKL9/-!Z#. XV M^X@ J;!.ZT,E5,;V,.W!)!?BU;%3VWQTOW[72,2Z_?3<=&NM]5"RNXQ)$&LXACIA\&*-2JYU6]S< MGT?6#?C] M;L+F.$8[24::>GZ!$O(8I>%*@L99S[NL7@P[+CX-^,YQ9;;:X)1,E;ISG>NP MYU4<(1086(? Z+/$(0KA@(C&?8[I%5.ZQ.WV!OU+JIVT3)G!H1(_>&BCGM?V M(,096PA[JU9?,=?3='B!$B;]A54>6_$@6!BKXCR9&,1<9E^VSM=A*X%P#B?4 M\H3:?D+CB81ZGE!/A6;,4EF?F67]KE8KT"Z:T%PC79LTF]1PZ5P<6TW_"NXB)4+4Y@-U4L ;IL^@7CV%6J76.,!G^/ST>@F=>F% M/<5K/($WRD_$2# )/V\PGJ+^=6B92F'<8;\P"0NPY]%I-JB7Z/7?OZNV*I\. M:7PEL!W%C4)QXUF*!6=3+MQ68N%OVNENNYV"96O =>+VI#]%B3-N#ZU&-D4K MG<+=5,M^I>LOMR661>SP;A:\FZ6\Z=J@2T'"U3J(F)PCT,"*Z;#4M5+(E[KV M2F [ZEN%^E:I^HFD1T+P/W0YS.EQ@&.A#!UT\C%@)H(9/0<083A'\VP/LPF; M6PY5JWLF/@YI'C;QO)!Q7BKC6EJDQ;%P2Q<>Z64_E-PIQ#<>6O!I1.^=#-T'JU>L[VWM?VM9SU&/4^K'0.! M6DB;O7?%:%%07:9UQ-[X@ JMK"[Z!Y-5:?2:S;DT('!&D)6SD[62_?B1E2[9(,0G@O222 M?7C\G>MW2%[O&?\NUH1(\%B5M;@9K:7<7$TF(E^3"HL/;$-J]C2[-I_=\]DUV\J2UN2> [&M*LR?[DC)]C>C<'3\ MX M=K:7^8#*[WN 5>2#RV^:>J[=)JZ6@%:D%937@9'DSN@VOYBC1"XS$7Y3L MQ.5,0LLR)R5?]-"KF]&V0@49(FWI?S"]K^3@T&QUI>S4IB_8'^0#48@WPK) MJL-BA:"B=?,?/QX<<;) Z7$O@(<%L+\@&EB #@N0,;1!9LSZB"6>77.V!UQ+ M*VWZP?C&K%;6T%J'\4%R]2U5Z^1LSNI"!8440#T)5M("2_7R(-4_%2TI %N" M.19K\)N*N !OO]5X6U E\PZ,P;>'C^#MFW?@#: U^+IF6X'K0EQ/I$*F]4_R M XJ[!@4<0(' )U;+M0"_*C3%^?J)LJ@U"Q[-NH->A9\P_P!0^![ $8.//.7 M+T<>.*CU,C+ZT)"7M0.7QH%+SBJ@JI!C2>M5D\944B*N7&YKU$9NM;K$K\0& MY^1FI&I8$+XCH]G//X5)\(O+Y@LI._- U'H@\FF??58=B=8YJXC+S&9M8M;J MQK.;Q1!EUY/=*7Q;"*($MD)GL.(65NP-S&WQCZJQ)M$E4WTI9W5.2P+J%J_^ M7+_E.H8;SG94I2A8/(&W6UTVM'[W\G#&EPSGA92=^2UI_99XP_F1**4YQ4TK MK@NPI#6NGX0214'G'? MG@#3G8W6$MQ=J04D#()^=KJ$DM"--FO19L]X>4DX-TG69")^ M)$Z$F?7CXRSH ;1E$A2[\4U;?%,OOH[@<0E&*!H"=4'#H9X>U MRD$B-(>>=!*3CJ:V2HH7M!SN*@?U%VHKE])V[@S8.0-ZH_25XX(8LYF.EV[) MA.ZPJE#W7 'MU(^F23^A'&*ARKMD('0=KX=>TM3CD^2JZ1_"-9Q=R(899D$< M]7':]4QS'.!WP8F3#BV$,^^ALL7B@(8<= X=>HIK= M<[+!M#CV#'$2^^&6?-!Y1@Y)F/3Q.J30(.*.^T(_^=WF.=OJB6&#GW1B.@': M[#6.TC3M(W2(A7&8#4#L:"Y\AN?RG&]55^Y\>=)$G'AM_AHG46AE@$,L3=&0 M2SNB"_U,]_GU Y;3"@<1PB3(K#YNR\$$9@/#9-CQ83A]U9Q/5=F)EPR&H9=H M7]W"+Z3M?.O5$2WT$^W]EN=KK$M935@JH"IX\LFD(OFQI1L];;M\ &UR'4=Q MVI]CG&)H*':P8V'H);9F/'!&S DVM">!_DCHD!D88F!'C]!/CVVA'&KCY8!= M1!G#?H$[Q8:]VQ$E?-T.N-DOO* RX$6WP)?2=NZ%CH:AGX;O&%=KE-6J-&J@ MO]4EDJL1G[I+PB;<)$J2_M3@$$-1$@P%K:-FZ*?F+XJ9GPZG0"^":_/M&$YA MUN=EEUP<)X-9UC$S]#/S_0G<\QTI6Y1T938G[NIP\##*PCYN%UM' \,9[,@: M^LGZ*WX$>RK7:U86)CAM%E"CD"R[,SG=2G57W6/N/G&##JI& MT.JF#JD(#@6BXW/HYW.5.0<2,!G#JDI%1$B6?W="== VRE*K-]EB0_VT8VSH MW\(^,WBXVI33 GO'BH+,.M)PB(UAF$2IVPS442[R4VZSA=1\8(S17&L>=);L M<*F3QGF\Z-CT3OO=Q2$$XX%-+^KH%OGI=CZ$\SU8D!6M:^UT/3\03EGA!.^@ MX"#ID[!#"B79P,$,ZG@8^7G8 Y_HF=L+W.;8"";];'=(H2F*!H"?G$3[B?@S MJPWDD[FA/;Y[R8'T94^D_P\Z1AT=(S\='W=)[AD5'%N8NW1LSDTSU(^A0R@> MZ%FHHV7T#"WKJZDQ6XZWXGALJ?A-8B5F1D+RF#?M8,GXR=:I(<)G]H'(IF84 M6&;90D-&==2-_-3]*J/.N?TYDQ+'Q8%EDBV$IOUBFYS]-/F*OF)Y1E2Z4R^) J)_/F*K)YD6QC M;O,63$I6F<0$ !U"P & 'AL+W=O2N5K*K&NF+ MM+S,F3EG9DB>KZV[\R5SH(=*&W^1E2'4IZ.1ER57P@]MS08KA765"!BZUC"H]FH[';T:54":;G:>YN9N=VR9H97CNR#=5)=SFBK5=7V23;#OQ5:W* M$"=&L_-:K'C!X5L]=QB->I1<56R\LH8<%Q?9Y>3TZB3N3QM^5[SV>]\4F2RM MO8N#C_E%-HX!L689(H+ WSU?L]81"&%\[S"SWF4TW/_>HG](W,%E*3Q?6_V' MRD-YD;W+*.="-#I\M>M?N>/S.N))JWWZI76W=YR1;'RP56>,""IEVG_QT.GP M(P;3SF":XFX=I2AO1!"SE*>.7)%C1W[-F$M'(^"G :34>R+J-^&KZ+. GX89T/!G0=#P]>0;ON%?@..$=/Z. IV#I@S+" M2"4T+4"647G!'^+;PIT"/>F#/7D. M?;:?I0%=6^.M5ODN:?NYBKD[Q(ENE)?:^L8Q_7G+#X&NM)5W?QWB^FPTA[E. MAC]82_39NE"NV0>:JYK!IJJ%V= KU'1JVGO6&[1#*$DA:M\LO%Q3S$B6A ("EI%R) M^HI:[8DT>7N&?:7BHJ,8=B4#(N\KW0 M39(F0@,C70Y&IIFWNGI4X92WJE&>F(1D^]$5ET5TF7%3DDQ M>!3^'BH4#R#9PD1::^2$VV%@61JK[6K35] 9E;@.CKXW0JL0I]O,1T.'X*&7 M1&A(EG0<>,^L;JJ:M"H"_"59,-'VU#T>$4?J]_&2I'%$-6!+,BM MNVT8T6]PPGB1[G]/I4 -+YD-H09PE48%ADF=:).LH\"-$4VNVM,!N*KZ7^+M MG$# 6KA60;")+1)+(75E%V3*IX.(JM;@O&*#=M0ZD>"Z#2%Q?YP!"-*5:W]( M?!LNAO3+Y>7NP(&_GL!.NE1Z52JLEOK!I4[U&Y9<+9&H[K8]ILDXXH]_/OOM MP.*3'5TD3Z=Q._2'#DH,CR>?8HTT0^G0];C@41;;&YZ,C>V]^9?#$SITGX[V MGD+0:)4>?+&<('?[*NIG^S?E9?N4VFUO'Z2( X>(QU52P'0\?/LZ(]<^\MI! ML'5Z6"UMP#,M?9:X=MC%#5@O+,ZO;A =]"_MV3]02P,$% @ IH"B6'P> M%L"G @ K 4 !D !X;"]W;W)K&UL?53?3]LP M$/Y73AF:-BDTB1-*V[65Z!@:#TR(LO$P[<$DU\;"L3/;H?#?[YRT69%*7Y+[ M^?D[G^^F&VV>;(GHX*62RLZ"TKEZ$D4V+['B=J!K5.19:5-Q1ZI91[8VR(LV MJ9(1B^-A5'&A@OFTM=V:^50W3@J%MP9L4U7MG[QR7PFC^)T$ MMDU@+>_NH);E)7=\/C5Z \9'$YH7VE+;;"(GE&_*TAGR"LIS\Q_:(3 XA6OU MC,II(]!.(T?(WA_E6Y1%A\+>04GA1BM76OBF"BS>YD?$J*?%=K06["C@#3<# M2),06,RR(WAI7V;:XJ5'RK3@-%P)Q54NN(2EXP[I>;F#]79PV6$X/RD36_,< M9P&-@D7SC,'\XX=D&'\Y0C;KR6;'T.>[5KS"I;"YU+8Q"+_O\<7!0NK\Z<\A MPD@5N!)AI25-KU!K^"04671CN2KLYPE0H_*R[Q1< M8H[5(YJ=)84[OJ'WZM#0G5LX@?,D',4)"<-1F"0Q/-#0G@IU6AN=H[4P#N-1 M!J-PG##?+$%/NX"UUH6%) W9>09)0LX$EDU=2\^5A2EC]&7C(=QK1ZT5>Y6< MP'@89B-_XC@)&1O#H0Y%>Q-4H5FW>\)?0Z-<-TR]M5]%%]T$_@_O]AC=R%HH M"Q)7E!H/SL\",-UNZ!2GZW8>'[6CZ6[%DM8I&A] _I6FQ[I5_ ']@I[_ U!+ M P04 " "F@*)8$_#F@U@% ".# &0 'AL+W=ORSFYW9-E3: M\&='OJUKY;877-G-^6 \N!_XHI>K( /#V5FCEOR5PV_-9X>W8>^EU#4;KZTA MQXOSP8?QZ<5$[*/!=\T;O_-,PF1N[8V\?"K/!R,!Q!4703PHW-;\D:M*' '& M;>=ST(>4B;O/]]ZO(G=PF2O/'VWUNR[#ZGPP'5#)"]56X8O=_,P=GR/Q5]C* MQRMMDFU^/*"B]<'6W60@J+5)=W77Y6%GPG3TQ(2LFY!%W"E01'FI@IJ=.;LA M)];P)@^1:IP-<-K(HGP-#E\UYH79KS8PY?26KI1V]%U5+=,U*]\Z1NJ#/QL& M1!';8=%YO$@>LR<\YG1M35AY^LF47#Z>/P2Z'F)V#_$B>];AM7*'E(\/*!ME MDV?\Y3WE//K+GZ'L*5BZTD:90JN*O@85GN:;W$WVNY.N.?6-*OA\@+;P[-8\ MF+UZ,3X>O7\&[*0'.WG.^VQG62ZU+RHK*^/ICV]\%^BBLL7-G_L@/^MT/^3\ M\*D:2./K.*Z]U#S\E:20Q!53XW3!>%(!#=A6)'>!N MX VB%*U[WX\=(:IU);MJFX*II 1S#AMF<^^D42YHB254P4(I ME*SMH!.QE1)HG9,8$$U4S>NXL%@[>/-O3NF;#8CP"Z^Y H=TS[I[3A\\V05= M2_+ZUM_IUP3LE"X9]2, "G# 3I'H-146_B7E!^^.1_$^F1[A/CF1*Y3..FBU M(<''IMA*%6V0#S@Q*),"C,<3V,7+)Q,8+1+(H0K(;U3C*3^:XDNZ)AK_2AFB M'>1YMA-].CF)T1.S2S1(/4?M=^3R_T%NG-SG[\:X'V7C'Z,VR6 7+WNI9<=" M+5Z?H99-1SNQI]-W*;&]Z4ZUG/X(J)?T>CP^HC?1S:,7J>KRZ41TF. )-18D MLX7RJUBQ'J7D@*5IT9M%D@!L2(0MM;B)%G.+2]V&5FBV*,N#5, E6D\*][;% M3E'V,B$ZYZ.LQ)-$-XY)1048>J&3)MZ7=-9UY'^2%RAZSUI(AT&\]#K*C7^, M;8VV%B$45/)>VY(K+Q)88INPK1'D,1<+* )BJ&KK[WL7TFI=8V,L.Q?]CVKQ MH(>J9N !-=^B 97_![ZM9N@\* DL@=^SD\^8)F,"?U]F4EX, A7*N:V 5[4 M]H^6+S[P;0OZE6Q"!VG]XC<+V7+=)B/()6)1)!^-VLI0''&2KYU:/-@!"UWG M.62L:9R]T[70VI&P$K\HL5@,2'YX"_HU&15$B $3'[S(L ^NC7ODX5.L.FL4 MFW-1FKWHHXS(KAPIH[3U(R1^#Q0=?%STN%*/ET-.I:5X30MX2/O.'<.=,V+- M;AE/PM(YP)B.B_UH?]C^D,Z8#^;II Y97H(Z5;S U-'AR=& 7#K]II=@FWCB MG-N \VM\7.$/ SLQP/>%16-U+Q*@_PLR^QM02P,$% @ IH"B6&T&X S= M!0 4@X !D !X;"]W;W)K&ULE5?;;MLX$/V5 M@5L4*9#ZG@O2)$#2M&@>6@2][#XL]H&6QA8W$JF25)STZ_<,JD4(]12JRL%X.#P<5$J;WOEI7+MQYZ>V":4V?./(-U6EW,,EEW9YUAOU'A>^Z$41 M9&%P?EJK!7_E\+V^<7@;=%IR7;'QVAIR/#_K78Q.+J>R/V[X0_/2KSV3>#*S M]E9>KO.SWE <BK/><8]RGJNF#%_L\B.W_AR(OLR6/O[2,NT]&O8H:WRP52L,!)4VZ5_= MMSRL"1S_2F#<"HPC[F0HHKQ209V?.KLD)[NA31ZBJU$:X+21H'P-#E\UY,+Y M9QN8IO2&KMCI.R44T;7QP35@/GA2)J>/G"^T6="%,*B#9G\Z"+ M&@99:^@J4/VBB3:572UZ "1QIV^9O437>KDUHZ\;7*^*R'8O'L[KAW_NK% MZ'#X]AFPTP[L]#GMY[\5++K2/BNM;QS37]_X/M!E:;/;OW0:TXQR9[P.ZL4&;!:+<)LE! Z8.:E1JEF).BVMF%4Q5VJ4!- MT*7^"=>?@,7"4KD<+!B8S5K2-KWT2U7'S+3SN4>;%L."!GN]MP 78+%SA^=S M%CT@%*]@-K*'V,-]]#%BE15H6UW .-J*-H5>6A8ZVR"&//-MLC\+Z/*4*5^ M5V0L7 7/*D,,39 H!\R%\)2>.#O*\H%RFSWF1@E*N4R!*30%+M'+YU]BP%1U _8=COX^B&R%MT(!<4+<1+T F)[##>!4G M1<)N5)""230F_3,6F81CGPH0\"B_B;=+I10+H)"T%G)3!,.&Z3PI7VIX,V.) M*39C%1GDZR0.YL0-QV%];3\N*@339T[7<K#&KI00;,+#)>A161'>WPA1,=8CS^X7=A MQ3PFN(;PL@!#[)Z@B>6J$/?&QYKHHKOI$S84&/? TW&Z%=[4@V+0._=B4:ZG M<7)TI:*V;BV*GC+,?;J> X5 R!G] @<1B7,D:[V9X+NQ M@2ZB(DQH=)+'$4WO+JY>'O8/Z?WW+XC4Y'#Z=M0?M:O3K551_6\-6P N:J=+>3S8R*_8NS>;X-/NF[IB%RD$'AW[#GU$6OTJ:M**[I33 M& 3\)HKG/ M2.W-]S_EJJ:U=QUUMR-3850K2LZWA;6>>LO.3G5WY.$7;!L2\ M79FD3?LT&?ZNIN/(UMR60!4K09QK#_%QJ$EF20+ZE(&,'$0KL L34Q/$K!>8 M?C83=YV]:"_*V,:#,O_Z!' <\\9QTF@XQ._> M^'A,K^G&X=KC0NJ[_*/1=1PK;VCO^ B?KY^FR,EJ$1-7?*/1>$BC _!G SQZ M2>-QLC :0<7.&L$$+%%&H^$^[3HE#M;.^16[1;S->(KC-QWYN]7NPG21[@FK M[>FV!<,+"5G)(-)+\'6\=: -HL[2'PL<.EC)QOP?6YQ8&Y? MQ$!WC3S_%U!+ P04 " "F@*)8CT6$R'0" "!!0 &0 'AL+W=O@;+1ALPM7JD,; M<5S8IBQ(F5UN<)3>2T(8PQ=8D,P>2UGEJ/1GN'EJ.;U.?#(I;*"?]72SCB[Z M@"Z&.RFHU' C%!>!Q<[!&; M#&*3?>QIUP7X\P-?"&:5:=#?71+WDNR6.!YM-?SPX#0*3R[ZML.B9 KA 9M6 M9:4Y\C!7LE"LAN\"[N4SUDM4$+F>Q$<@))D3^>J>,%B.+5EP=A%">!8G1]NN M=[2#7K>*BP*H1/,H1##MSLJAW[N<\?\QGZ+Q*(%=?]O?&(L:5>&&7T,F6T'= MA S>X7ZY[,;J/;R[G$S.@@L-%:X,-!B=C#U0W&PO=V]R:W-H965T2(28!=E_ '[KGGGONA^2KE=)/ M)N?GW#"[6Z;D6MS8-[,<^M>] =72W8G$^X M?5S<:=QUMRB9*+DT0DG2?';=&D>7-WVWWB_X+OC*-*[)13)5ZLG=_)%=MWJ. M$"]X:AT"P]^2?^9%X8! XV>-V=JZ=(;-ZPWZK8\=L4R9X9]5\4-D-K]NG;K7[G=3P#AY>JPOA?6H6U_4&+TLI85=;&8% *&?[9M(6\"9'P ,J&O2MK;^"C@5Z8[E$1MBGMQ_PA>LHTY\7C)D9@-646W0C*9"E;0Q#++46O6[(LW MP/7WP[FVN30+EO+K%OK"<+WDK=&'=]&P]^D(V?Z6;/\8^BCDY<;GY8ZM'4<: M:\WDW/.E/Q_XLZ6;0J5/?^WC?A1]/_=AYV UT$/._0,FUY0S0TKRNK,(M9H^ MD9 I:+G[1<$D86P0+Q>%6G-HSF1&F=#H2*5-FRS D-/8HV",G.W 8YF:2_&/ MRQ4>ITT:J3*6U&P+O8-,+@Z1P@[W'%0RL"+^G.9.-4^)K9C.C$?X60F[Q@)C M=>4K@$+8\.+ MSKBP%0J-5)I6.E0 ,T:A">U>X@W6\.EC]CP0 2+MT.U+,E?"YBXBOU.A"FLQ M%FR-S0AH,A,.MZZ[/57VUOM.)2#@*9N*PI4+=&=I+OARD[>&WQU7GE10Q02) M%E#3N]A)"7/50"S[&R/?]S6BY4Q+X'N[1K;@.P!V:-P,X&#>@U8D9G4?;=@1 M*H:P>_DB+=8DE?7U.U,%]FH?&9L6O-ZPO43F4)6YN*3AGHW&V*<33UI5!MDW MIY< UJBGYLY F.NHM\U@=S\)TA(:V[ "[MY3,HCQ&Y\-:(*=&YS:-.>2:U:T M??NP#)NB0.\R/W,V-(9G"9U% WI0%M/]/47M7CS _\5%C^[1EUJDKMXFOJ$> MI;!U,S:RZ!N*QJ&V'@YVXZMY5W>%"8/OS6QI0TS$C&SO#(!VW7MAV+@L:7>: M<$50CS!B9% Y8B9 6U;E%!WL9'(D@6,;;Y%/CDFT.V%<+'6GUNFKN\;F,%Y" M$A2T2YU/N_(<+->EVLQXL)PM^?_IM,Y_E=.^(0?>&]IA9X&$E_1M&_)N M7"?1*?WP1R^>?1RCTG&2I-^\C%_['ZJ/TH4)GJ^4\2%^@0UV. M"<7QL)U<1*[Z+CK#X2LK+P>PHKC7COH))?W.\#RLJ;V71!IY3T.LG@ MN/M7K9 U95O$G7Z%W1"D1?R)>W>,A,F+90)NYO-T>I!7Y=J%JK(,CW'P;[ M""B<7=3K_1*24FW83%GAR_V-LGN)!8";YEA\V16W;L)H#.>3NGR:\S&P,LW! M[\>D6W?8];ZS5+=Q\"TY4-WQW@WR2MIP!MX^W7Y!C,/!^65Y^/R MSD:%4', M8-KKG.' KL.1/MQ8M?#'Z*FR.)3[RQQ?05R[!7@_4SA6UC?.P?:[:O0O4$L# M!!0 ( *: HECEXI$,\P4 %8- 9 >&PO=V]R:W-H965T>=*L;YNUXO%!77 M*ARX.5M\F3I?JXA7/^N%N6=5)J/:](;]_IM>K;3MC,[2VIT?G;DF&FWYSE-H MZEKYIPLV;GG>&716"_=Z5D59Z(W.YFK&#QS_GM]YO/76**6NV0;M+'F>GG?& M@W<71[(_;?A'\S)L/)-X,G'NJ[Q\*,\[?2'$AHLH" I_%GS)Q@@0:'QK,3OK M(\5P\WF%_C[Y#E\F*O"E,U]T&:OSSML.E3Q5C8GW;GG#K3_'@E:6B&IUYMR0ONX$F M#\G59 URVDI0'J+'5PV[.+IUD>F$?J=+5]X=OPPX1WN<3Q0=/1>6P4GE:&'J"(G!7;YF^&.=L-)[;P+0?%$=@O MN#-Z_6KPIG^ZA^S1FNS1/O31WN#0E0Z%<:'Q3/\^\O=(%\857__;Y<3>8W8[ M<7*P/S?HSOEH9/E&^8GS]-#,V4\;+#QH)-<'BY#U^UVR+K9/P_[@S<;OD_S- M.GJLF#Y?7?]%.E#@N?((B'FBN7<+7>)$<@OV00J-W)06SC0VHI60M@L.4<^4 M5'KF&%SC"Z8"5#VJ*E6_CL)W\D01Y\"IN;+)UIF%@&^LOG[U=C@X.04+N-"E M9:6+BA0$GCH4)9>$AM)"&S$5H*+Q'A*1V [[I\U<1 GI;7"*!F88W2,(<;%4 MM>0=!-4622A'?]'&J)HC-+M'IT*ZW[HD#.1>82]UK-+F#7\ *"O7=^/D>&PU M[*:GE\&Y5;'QR/5[S@(%>O3H,BR>-XBGH5];_NWZRH'?$! 0"*YF HXR9G5P M &E"K(1,%^X4IBE?R-DE)9YH! 1&\%B@X+8D"GHKOK[D15>JQE"@<8!F05)O M3>SV_FJ\)@7SG7Z^2$*<57)D#]$Y[;=R'B?!4#$"#V*V)>%7),I$(A!PV-/E M]?WEQS$]M -ET$=IQ,I#.P=4)/)13N24\9+5R/8_4L,ZSA\>-]*N4A)Z%"V: M#^1S1J=B$G\P5##U)'=#A*+8N,34HF102 M8;BBZTGC0^IK:[4\7DN=,512F,L#NG%+ /CN5GD4RJ[!4*&U>J(Q\$75L.40 M[@E2KL(%;BBD4D[/K)UM:O:N"323$K;"!D+/)2)M4X$GXG602E$Q)9 CI3UQ MK8/< 2 %QJ&OESC%DV^LFTZ[R=2!,/;9A?9N!8V!C6WA8)/CNJHSU]PK) M, M<"TQE#;Z0YT<2JA&+3,_S[/&9*/M+'>!MSC+-02U7TAE3#D^)6M9!%K%RL2J M"T6!H.>HHMR,/A=%,T_@,H>>S6[2?AH7\24',?.]:G5FZ6 D5?(Y.; ]8V3S1Y[A_#OO"F:1/M![[VJ*N".* M[/)W.W7!7-K24THD6BBO15;4N4E(JO@AF(51NI8\:[3(EGS%Q3:V=%^.&:]# M&DI-7/5"YX$C$ZEP4G2IVT&828.-J+)ME>7.'/&SV0@*R4)I?&HF7R)*7+I3 M4CZ1DV @T(V,CEBIF!*XC5\>,T M5'#CPM!;7;G2IC\;C&0K4^&'7@9#Y&.9QUG!7AR#T*D(T\S#1]U2B$XJ])?! MP0!76@S0U(5V'+GKYM3;N.NBID0!H^)D [Y/'8+3OL@!ZW^E1O\# M4$L#!!0 ( *: HEB$SQ+94 8 %(/ 9 >&PO=V]R:W-H965T33; +J!YIWK.Q#:PW25N@28S=)/T0] -' MHD;L&L[08!^L(?BX_#<SO)\-3T(92;7E['OUEU? MVBYH9>2M(]\=#L(]W$AMCU>38C)T?%#[)G#']/JR%7OY48:?VUN'K^F(4JF# M-%Y90T[65Y-WQ=N;!<^/$WY1\NC/VL26[*S]Q!]_KZXF.1.26I:!$01^[N1[ MJ34#@<9O/>9DW)(7GK<'].^B[;!E)[Q\;_4_516:J\EF0I6L1:?#!WO\F^SM M63)>:;6/_^F8YBZV$RH['^RA7PP&!V72K[CO=3A;L,F?63#K%\PB[[119/F- M".+ZTMDC.9X--&Y$4^-JD%.&G?(Q.(PJK O7/]@@:4-_H0_R3II.7DX#4'EL M6O8(-PEA]@S"G+ZW)C2>OC65K!ZOGX+-2&DV4+J9O0CXO7 7-"\RFN6SQ0MX M\]'$><2;OV"BIV#I.V6$*970]#&((!%:P3]E;X);/ W'6?+6MZ*45Q.D@9?N M3DZNO_JB6.5?OT!V,9)=O(1^W;N!:FGU&QT:5#0D,[Z613FC-4)5D)Z28)M_*4M6J%)R;GE!=@.P# MIL8>*GO3K?/$')79\P;_1C)C=L>A1KL':KN=5F5/#44$[I4@(, 6B^M*K 5^Z60XL;Z@OPY<,Y("_&U-X:3%5U]L9L7Z:S\R\\DK"HVR M]TP:1"7T),B#L@:^=+%TFE*2!=E]M"]29'1L?U ^*@-4XVO8,5 BY[C=P_,[2-B! MY#.*.*Y\;$$K'CBI$CD4X\%X;(K12K#@!V@_T XXM2*)\7*).<4/2PT3!F0\C4*+! .)@9!YE5\LQ@ZFQ *$QDE)J%.(DJ%0\;\Y MW?;1]KMN.L4?>XIW&@+U?R+S,_=!@OU%>[!%C*258_O,:5%N-&P-'9(A U6EV=&J:B1K0:Y,P MQM@&*VPEJ+4*9H,P]XYI-YBXDUH!"1H'M*%^)5O%-CUJR?^)X/B)NF3@?)>F2@?]@)'92OV]RS/EL4JMHILO=Z,67=6 M9+AF5'?IT*I'>VB=9ZM%3LMYEB\V=#-TOUXN #2C-VBMLBW W]"/,,[1Z]5J MR]U%MHR-D9N$3(]8(3+7,0J+8I7-%\6?E.[^"*%)YK:&UF=W6RXIO/9^(=O&/&^(>&? MN7/@=(B)^YGPJ\67O0&PO=V]R:W-H M965TJ"EE<6&(E5R%3M_WR6E*#;@^"+Q,3L[(W)7TY6QSZY$)%A72KM95!+5YW'L MLA(KX0:F1LT[A;&5()[:9>QJBR(/096*D^'P.*Z$U%$Z#6NW-IV:AI34>&O! M-54E[.LC M\_G$XP/@E\25VQB#=[(PYME/KO-9-/2"4&%&GD'PZP4O42E/Q#+^=9Q1G](' M;H[?V*^"=_:R$ XOC7J2.96SZ#2"' O1*+HSJQ_8^3GR?)E1+CQAU6+'1Q%D MC2-3=<&LH)*Z?8MU]QTV DZ''P0D74 2=+>)@LIO@D0ZM68%UJ.9S0^"U1#- MXJ3VAW)/EGTB0?T(SAQF@J M'7S7.>;;\3%+ZG4E;[KFR5["&V$',!X=0C),)GOXQKW/<> ;[_'I@ Q<22UT M)H6">Q*$?+]HI]^6;K*;SI?*N:M%AK.(:\&A?<$H_?QI=#S\ND?LI!<[V<>> MOI\%?),N4\8U%N'W ZX)YLIDSW]V*=[+N5OQV6#KW.&A1+@T52WT*Q12\8IL MMXFE6*3&:K\$Q+A'+0GS]BLZN,(<+7_4OXV5+I>AY X]5("254#JIEJ@!5, M]Q*N%KT%=H<@=.XC*I_=>=IMP ">))50<*7C.L.ZBZ(-S=*!-GQE1FQLTXO% MS%B^F)MV<,V-S2$(XL2 CB37.$.P*#"TBBWO7@TK3TX&1P=!:'(Z.#GP3H( M*BTB\*7-RO[6^L=XS\ZNBQ)O5'*%=AGZE8/,-)K:HNY7^Y9XT7:"=WC;3SGE M4O)Q*2PX=#@XX0YDVQ[53LC4H2\L#'&7"<.2VSI:#^#]PG#-=!.?H/]1I/\! M4$L#!!0 ( *: HEA2O6+>'@4 *D- 9 >&PO=V]R:W-H965T.)[N1B*1=XB^[S\L;0J+M%R56-C56Z M 8/%9305XZN4U_L%ORE1F-(LBQD*O*?=+K-]CZTV>\3%?6 M_\(ZK$V'$60KZW3=&A.#6C7A*1_:..P9C.)'#)+6(/&\PT:>Y2OIY.3"Z#48 M7DUH_.)=]=9$3C6-*"[\V.>:']EWBNB6<; A?)2F5ED]OGQ*JJ0-9ZQ1C2(#2D882E M0EB7" UE&G4Q\W,%L9@TWV MC2?6TN3D;^,,28B%5VAIA6&:?(8WF+-[>Z"O21,9]&WCD,+IX!-9 MP>U:+G^(*5K*@DT;Z@Y1G6 8=\4*<]^"Y?PW/)!WPZ'P0 MT_#CD3BVL9DCR3F2J&:5M%85*I.LD1;$"$8@1!]$*F#:QG:WC-@61M=/2US,?5P1*-TL=M6XJ)8%E*4NCW]^) W9^5V_9O@S!,0A#: M& QC'X.X3\.GYG^3JO]+_I/@>K\77#_G4 S2;UXM :2 4%S M 77ZC-1).:[_N1:(:4<(#SA*_W4UM)R3:IWF[IVVNE [6>!!H M,J7SAD60JBHG0_3U976E<@^\.X!8SSY2>-K4'"K@N,W*#Y+RJ&!/BX+N1K2" MSP%0M.5&G!_A]]LG\%#YS>]7&U[ M66Y[>>SK*=21RN@E+,VTI;]NZ2!3&?K13B?\8\93M(V5?%CY*?_S(1PE=(;L M-_2"&[HM14(O6K'(-F)1M&*1;<1B'#1@9Y)QHQ?&KN2&W6]RP*\KM?1J-K56T_6%L[$[ :G+&RR4(V,A-A<&GL<' MCA&&_3M>1D[X3'341L0,BYAE$1MO%>X[KB*)0?1'.^G;['>_QXA M2X<)2\@>T:"3WVL89<(7BOS MV^^0:;A^[Y:'CQ@J]X6B_2LLR#0^&_8C,.'#( R<7OK+^%P[NMK[UY*^I=#P M OJ_T'2-:P>\P?;K;/(/4$L#!!0 ( *: HEAXU)O$!00 -@) 9 M>&PO=V]R:W-H965T2<.7/AD/.]TH^F M0K3P7 MI%E%E;7,=QZ:HL&9FJAJ4M+)5NF:6IGH7FT8C*[U2+>(L2<[CFG$9 M+>=>=J^7<]5:P27>:S!M73/]LD*A]HLHC7K! ]]5U@GBY;QA.URC_=;<:YK% M TK):Y2&*PD:MXOH)KU>S=Q^O^$WCGLS&H/S9*/4HYOE2\K::EKEI&>77Y1%2%,XA2]4 7>R4#7"/6I8 M5TSC/+9DP^V,BPYO%?"R'^#E\%E)6QFXE266;_5CXC80S'J"J^PHX&>FIY"G M$\B2;'8$+Q\?L1A U;!)RZ9+#@3L+;,(A6:-8?\#7"SPW#NS%R;AA6X MB.A0&-1/&"U__BD]3WXY0G8VD)T=0U_>,BVYW)G7C, ?7_'9PDJHXO'/0W2/ M AZFFZ;3 M'PXL3]D3:CKK(-MZ0UAJ&^",&Y%"3>>42KYX!.H?QC+I,@HH@3.]I,A@+CG@B2(^1L &F4MFZA MHTL"5QYT)+[?.K;39^-.=D-#WA#(N2!3L?XNQ]Q*?79C)DZU6M3<5 MDLA\]R:-4VE;>D>:$7I4L+(:!^Q4.*C6MGXXG;9[('_4:4] M1V]CG-\]&2R8*-H0>YIME:#[S< )=VE1K:&=Y#TYA8T=,ZU52U%]?PU?*XWX MIEL"];JB&IJ=^^1CUN_@;)+EE_3/)OEYUAW/HZS-&]I7DZOTW'UG"=R&XT!Q M';(C7E[KZRW(2?H>TNP*TMG%/\][RDHAX00O\VV@>$.1SJX?'HMJU1[_R;PK4< M2FRX> ?I\&RY";?UZ_;PYB%K.TZG5."65)/IQ5D$.KPCPL2JQM_=&V7I)>"' M%3V]4+L-M+Y5E+QNX@P,C[GEWU!+ P04 " "F@*)8^0/>H>X% "##0 M&0 'AL+W=OY TUZ!9K62-+V8;$/M#2VB%"D2E)Q_/=[AI(5I^MFVY=$I&;.',Z<&=$G M*^MN?4$4Q'VIC3_M%2%41_V^SPHJI=^S%1F\65A7RH"E6_9]Y4CFT:G4_70P MV.^74IG>V4G]86^S<:661>"-_ME))9=T M3>%K-7-8]3N47)5DO+)&.%J<]EX/C\[';!\-OBE:^:UGP2>96WO+BX_Y:6_ MA$A3%AA!XM\=79#6# 0:/UK,7A>2';>?-^COXMEQEKGT=&'U=Y6'XK1WT!,Y M+62MPY5=?:#V/!/&RZSV\:]8-;;CM">RV@=;MLY@4"K3_)?W;1ZV' X&OW!( M6X&M@E\X^VP#B6$J7HEK M6B+907PT3:F1LY-^0 @V[&\Z;P,W MW@W'+7/D*YG1:0\]X_LQ;/A_N#X";+CCNSX*?2S34FNJ+(N*+,4;Y3/ MM/6U(_'W#=T'<:YM=OO/+N)/0N\F/DSW=LE W!0D, :ZEQ(D\?=4IIZ@=:L'4/#)B/O1G (WNLHM-@;&U 6JT)E!2PJ";XD%EV=U=:)E!?R3BHMYYHB M\H/GPT&1%_2VCU$=+6LMG5X+NI.ZEN$_!%\\.TB'TV,OLD+18@LFITS%&5;* M6W*)4("\B#9O[RFK>2J)+XN%RO@EE,EFG1.BSS%+F8NM7=9H=P[.&H6/++#> M2DF3)N\YBQP(+.*I349[XE(:#-IHMCF%[QRW+!_*N'060"C+0H6]J(--JG,+ M7V/#]F:7@K=F";V1 \AU(-)B!OY1M3-5D7AY/9O]U05^D 0D>,EO)(,*BQ7.Y+C43OK@ZH@J9%5IE<7*^Z0M M,Q>U<@I?(H6B.M*;9.90XBW7K8%J8\3#^RT5L[_4WC9:90;%.G" HZ] @Q00*4+V&*TRFMR&3K));/HI[N$>D]M*.0>:YXE0BD+ZK$/]!A M LKD^& XUGJE)9=45;%AVS0Q-D06\*D6F^3 ]G$@QBZD_ZDQ\02*07&%6MT! M9(;V1Z \$5_0']8ZD%J!GE'R6,RD0P_X>>V6B?A./HAO MRD$K_.Y:XD&N$H'!)CW64-PG6RMDZE)YEK\ZCKC7THA/V!=7+YZEH^FQA?ZT M=3*WL*1[E=F]G:J$"#.4@4?;(W4 MN:_$"J^S*YL"LH 6_4-E!4& MA);KKCRMCG_42$7@[88(.SJ*X\Z@[U!CK.[X9N(;2:%DT#S:6G$'5'59"10EX!2;KK!*;Q3?C$[K&%&A M\W5PS=2LC=H -AHE<-9P=%A+VZ2&1F/-U*ZI-YG]76&\PWB0B?;!\ S)) M5_;7T)91MM,([T-[)7I"ZB ^\>B\0(I;#RCH/>'&BBQ]#;)H9+&PF)TK#A[B M^,^5E\LE!!S'H:,[,G6CBNWI]_C3]K.TFD]AA.N^32\5V^($@/)_'2&V(WIT M/\) =BC+YGK#?T;B,V[B7J*>1_\W1I^+@T$R&$SQL#]*)N/]/U3X:)2D@P,Q MFB23R5#<6*ZAV40'Z' (@^$$3X>'R>!P*MYOY>,WV W'23I.\3!-I@?I'Y*; M) >'J3A(IH>3EMJC:CQ'LI+A:,QA]I/)="IVW;?Z6Q?CDJ #OO[C"VUK$YH[ M&ULE57;;MLP#/T5P@7ZE,6WM$G: MQ$#3KE@WM AZV1Z&/2@V$PNU)4]2+OO[4;+C)D,28"^V2)'G'(H6/5I+]:YS M1 .;LA!Z[.7&5%>^K],<2Z:[LD)!.W.I2F;(5 M?5PI9YI+*PH^"X-(O&1=> M,G*^J4I&NR%WM;QS!>YL0X_&55L@2]HWJJI(LMO M43)>HM!<"E X'WLWX=6D9^-=P'>.:[VS!EO)3,IW:SQD8R^P@K# U%@$1J\5 MWF)16""2\;O!]%I*F[B[WJ+?N]JIEAG3>"N+'SPS^=@;>)#AG"T+\RS77["I MY\+BI;+0[@GK.K9_Z4&ZU$:633(I*+FHWVS3G,-.PB XDA U"9'371,YE7?, ML&2DY!J4C28TNW"ENFP2QX5MRHM1M,LISR1/TB"$,7R"9TQ1&+A)4[D4AHL% M,)&1MY+*67>XHA96U!"C1[XA;HO@IPW/I.:)CO#$\"B%R35\%AEF^_D^:6Z% M1UOAD^@DX"-378C##D1!U#N!%[<'$3N\^,1!:# 2[KE@(N6L@!?##!ZMMX;K M'8:S=^E*5RS%L4>71:-:H9>K+3)!(I,J8R#6]51GI= MUVYS)A8(7.RVATDZ2'RXMC+O_]07!:XX*(6\Z: MD!X7'4=+T'?$? )ZV(%^;Q]Z> AZZ%#_<1WZZOR=N5&B6KCIJ,'578^0UML. MX)MZ[GR$U].;FK+@0D.!?""H;0/MS M21>P,2Q!^UM*_@)02P,$% @ IH"B6,C5$W*' @ F < !D !X;"]W M;W)K&ULG57;3MM $/V5E9%X*O$E%UQ(+"6TJ$A0 M(:#M ^K#QA[;*_;B[FY(^O>=M1,W2&%!O-@[NS-GSIF]S'2M]).I 2S9""[- M+*BM;<["T.0U"&H&J@&)*Z72@EHT=16:1@,MVB#!PR2*)J&@3 ;9M)V[U=E4 MK2QG$FXU,2LAJ/Z[ *[6LR .=A-WK*JMFPBS:4,KN ?[H[G5:(4]2L$$2,.4 M)!K*63"/SQ:I\V\=?C)8F[TQ<4J62CTYXZJ8!9$C!!QRZQ H_I[A CAW0$CC MSQ8SZ%.ZP/WQ#OVRU8Y:EM3 A>*_6&'K69 &I("2KKB]4^MOL-4S=GBYXJ;] MDG7G.\:,^ MB.8&K=0V&LDQZ3;EWFI<91AGLRLL;P&:/&A:,%F1N=945H!EMV8:6LS@_,)\ MB[;HT))7T(;D1DE;&_)5%E"\C ^164\OV=%;)%[ &ZH'9!A_(DF4C#QXPU[N ML,4;OE\NN48?3Q 3:6++C*GWX?4N#-<5C!>$"^*ZQ*'"W'QT=I M$GT^CU\:MM8 !+)@:4X^SM&/_1;'TY[CZ8=JZ$X2D]1/T0_]%L6TIYA^ MN(SOHNF'?Y5FN/=:"M!5VQ,,R=5*VN[A[&?[MC/O7MO_[EW/PO-?,6D(AQ)# MH\$I'D#=]8'.L*IIW]ZELOB2M\,:6R=HYX#KI5)V9[@$?3/._@%02P,$% M @ IH"B6+QEY:V3 @ ?P4 !D !X;"]W;W)K&UL?5113]LP$/XKIPQ-FQ1(XH;2LC82A:'Q $.4C8=I#VYR;2P<.[,="O]^ MYZ3-.JGT);ZS[_ON/N?.D[4VS[9$=/!:266G0>EI1 5*BNT H/+:7"1G,]2']\&_!2XMCLV M>"4+K9^]63*%PY#48!%+CDC70/>OT--WI./5^NI6V_L.YBAZ6T$6CATR-?2+2?)Y&C%#XPRC=TLXZ.O4,W@%NM7&GAJRJP M^!\?46E]?6Q;WXP=)+SEY@0&20@L9ND!OD&O=]#R#0[HM=#IVR>O0Z?[T7Y" MSFW-S6GBBD8B?%_VO^,-+AMCR(0+ M5< =]?'6_]6*@$=\=3"3.G_^O4_/P8S[]="5YV5_YW"%.58+--N= 3SP-;6@ M0R.XM' $9TDXBA,RAJ,P26)XHCD\%NJX-CI':V$.TW4[8@OM:&!;LZ07$HT/H/.EIK;;.#Y!_^9F?P%02P,$% @ IH"B M6"&_E3/[ @ ' < !D !X;"]W;W)K&ULG55M M3]LP$/XKIPQ-('7DM5"ZMA*%H2'!A("Q#],^N,FUM7#LS'8H_/N=G324J:O0 MOOC\,RF(S\WHV>C%1M!9=XH\'49X+,9!Y BAP-PZ!$;F"<]0" =$-'ZWF$&7T@5NSM?H%UX[:9DQ@V=*_."% M78Z#00 %SEDM[*U:?<563]_AY4H8/\*J]8T"R&MC5=D&$X.2R\:RY_8[O"<@ M:0,2S[M)Y%F>,\LF(ZU6H)TWH;F)E^JCB1R7[E+NK*933G%V\DU9A!0^P07C M&AZ8J!&ND9E:(WUZ:V#_GLT$FH-1:"F="PKS%GK:0"?_@$[A6DF[-/!%%EB\ MC0^)9L>KQTAW8#C;YM\IKH;'NTJY:A MJ5B.XX#*P:!^PF#R\4-\%'W>P2WKN&6[T"=W5'U%+1#4?.-J>G!J#-*M,%G M%67+[M+@@DLFI+V3H\C;;- GFQV[D1ZKTE1N$IQ0E/D+4'=:,>U I-54Z0;BC/S\<"DM M$F<+FM%;-RM6&4C[ SIIQD;&_"]F+ELO39.-[(/LV&=OE)UCCN4,]5I<^A_B MX@8^/8G)]I/X?=*RA/S\L%5:0>#$Z:#]NYBM?7-7P/J3W8 MC^,^''B8-XMMU1!N=*P2]<+W94-PM;1-\^IVN]9_VG2\5_?FOT$O;,&E 8%S M"HT.C_L!Z*87-PNK*M__9LI2-_73)?V^4#L'.I\KZ@/MPB7H?HB3/U!+ P04 M " "F@*)8].[*$9T" "4!0 &0 'AL+W=OBF0YD76A>?PD"8Y;:1ZTCFB@5U9"#WS_K-,>2Z5-9H:"7 MM50E,W14&U]7"EGF0&7A1T%P[I>,"R^9NKN%2J:R-@47N%"@Z[)DZF6.A6QF M7NB]7CSP36[LA9],*[;!1S0_JX6BD]^S9+Q$H;D4H' ]\R[#R3RV]L[@%\=& M[^W!1K*2\LD>;K.9%UA!6&!J+ .CSQ:OL"@L$CX,-KVT$17+,691TVB46W12SY]",^#+T>T MQ;VV^!A[[3("Z@NJ>D%UJA2*] 5H2#1,99 24E'#Z0G)@?$'/M\(@)=" 8E2ANF$5D?67N*.II!'"*(#P M; Q+:5A!W%'4>@A#&![*M[_7*26JC9L'FO36PK1-T]_V(^>R[;3_YNV\HH10 M5V@H<$W0X/3BS /5SH#V8&3E^FXE#76QV^8T-E%9 WI?2ZJT[F =](,X^0=0 M2P,$% @ IH"B6+@!9ELW P 80< !D !X;"]W;W)K&ULC57;;MLP#/T5PAN&%G#C6YPV71(@Z=9M#QN"IMT>ACTH-F,+ MM:5,4IIV7S]*=KVVR(R^V+J0A^>0$C792W6K2T0#]W4E]-0KC=F>!X'.2JR9 M'L@M"MK92%4S0U-5!'JKD.7.J:Z". Q'0;1^2*U M]L[@.\>]?C(&JV0MY:V=?,FG7F@)8869L0B,?G=X@55E@8C&[Q;3ZT):QZ?C M1_1+IYVTK)G&"UG]X+DII]Z9!SENV*XR5W+_&5L]CF F*^V^L&]M0P^RG3:R M;IV)0XQ"W#K'CW01R+#\PPV83)?>@K#6AV8&3ZKR)'!>V*"NC M:)>3GYE]DP9A!">P*IG"$RLPAPM94]$UW0>-Z@Z]V;LWT2A\W\-MV'$;]J'/FGHL7#V6 M[('N@8&Y4DP4:,<^?+RW-:)=)JAB;,L-J_@?S'V8UW)'UC^=,+C&>P.+2F:W MOPYI[&5Q6.-UJ1"?U1:H,EG9E<9^$CI%VH#<@&:47G@+21K3-SY-8467D(O" MAP(%*E;Y3@/+Z7QS;12S%Q6PT0>CTP1.HQ2N)0DD@,@/XY3^XW$(/7E.NSRG M_7FF-I?O*$_$]$;H[)$KU8W+9O57,-1= P_7/O!_&1^1QDM$#[143% M/0'ADG$%WUFUPR<*GR$P;5$_8(8N0EO'!.)XY"?CR)9M/!B-7G@5-@1A17'H M1\,$DN%@=-;8M%&.XM0_B\9P#$DX2-+^\"_.4$*HMNY)-!B.#U8Z>-+V:E2% M:^X:,GOZFP[8K7;OQ[QIF__,F\>'8A=<:*AP0Z[AX)3*HYJ&WDR,W+HFNI:& M6K(;EO0&HK(&M+^1U$O:B0W0O:JSOU!+ P04 " "F@*)87H/BZS@# #, M!P &0 'AL+W=O]OVS80_5<.VC D M !O]ENS,-A"G*S9@;8,TVSX,^T!+9XF(1'HD;:?[ZWND'#4!/*' ]L4^DG=/ M[ST>R<51Z4?3(EIXZCMIED%K[>XZ#$W58L_-E=JAI)6MTCVW--1-:'8:>>V+ M^BY,HJ@(>RYDL%KXN3N]6JB][83$.PUFW_=)^Y%TUHW$:X6 M.][@)[2_[>XTC<(1I18]2B.4!(W;97 37Z]SE^\3?A=X-"]B<$HV2CVZP2_U M,H@<(>RPL@Z!T]\!;['K'!#1^/N$&8R?=(4OXV?T=UX[:=EP@[>J^T/4MET& MLP!JW/)]9^_5\6<\Z?$$*]49_PO'4VX40+4W5O6G8F+0"SG\\Z>3#]]2D)P* M$L][^)!G^99;OEIH=03ML@G-!5ZJKR9R0KI-^60UK0JJLZL/RB+,X W+T!*\2PJK$]1Z@$K^!2J%]TK:UL!/LL;Z=7U(M$9NR3.W=3() M^)[K*TAC!DF49!-XZ:@U]7CIA%8#@[YS\H;J['RU.QW79L"L.;1F/#?;.J[;@A?WK"\(!/%M:=JA[_.L=]$OT\ M]X=6([[:,R#'JW:TW/VD\/& &BP=1/@>9A&+HI*"(F5Y5L"=$M*"D,-ZFK(D MFD&:LSR/X0/=*(:3U90>Q[04YQ3-YRR:ES#A6#XZED\Z=DO$-1UJ.C"VA5M_ M5% S&.=OC$'[8ORKX!O1"?N9 9(U[[BLD,$&&R&E MD(UK@!UJH6KG7A*Q/"Y\%+.RG(V]H;%2C13_$"YM J\/#L;5DE BV!@H(U9D M$>0IB[(9K)^G+_*,@!*XI*A@>1@2PJ*KYP+,B&!>,:*,C_GP,66 MD&P#'6ZI-+HJJ:_T\'8, ZMV_K[>*$LM[<.6GEO4+H'6MXKNL=/ ?6!\P%=? M %!+ P04 " "F@*)8@OR! \8$ .#0 &0 'AL+W=O: M.K*X2J)+TG&Z7[]S2%EQ%L?)L*>]2")U+M^Y?:+.-]I\M06B@[NJK.U%IW!N M==;K65E@)>R)7F%-;W)M*N%H:98]NS(H,J]4E;TDBH:]2JBZ,SGW>U=F:R53%=96 MZ1H,YA>=:7QV.6!Y+_"KPHW=>0:.9*'U5UZ\SRXZ$0/"$J5C"X)NMSC#LF1# M!.-;8[/3NF3%W>>M];<^=HIE(2S.=/F;REQQT1EW(,-K1ID05*H.=W'7Y.$E"DFCD'C@.&IX,O56DYR:?M$.((W@-4RG7U;H4#C/X[ HT,-,5%;K@"MPB M?-#60O=&+$JT1^<]1\[91$\VCBZ#H^0)1WWXJ&M76/BYSC![J-\CT"WR9(O\ M,CEH\*,P)]"/CR&)DO2 O7Z;B;ZWUS^0"0LAOGWA!>UTOS;/SIE="8D7'Y8_07 M8A@V^KYV2!EV<$U:,-^(U;-6;K03)5R*4M02[3&)2ZP6E*ZF??KP"KKQ<7S: MAR/_&.Y).N35Z3"B9UQ3QO1BAS8VN'I11[W%3H2<(H"4EH#X'_NX*0SB@X_I3JGFCB1Y'.T^++RE:__6#[PO+&7X,[5, MTZ[;$2_;$1?MB)_Y-@OMI20]!%&I+;V:4[*41+^ZIP]_F_$6N;&"/JUARU_8 M&FT[<;<[YTN>\Z9#R7K><(C<<(C<H= M!A#;+]0CT=QR(&:"H[;<9IC;+'/;64M\C[#&203Q8'S/B%M_^U'>H_&\ MT>?K'K#TC6%FV0$:Z/,QM5$E?",WA/,*QLP*Q$?[R*"W&PO=V]R:W-H965TLFEJ)DE2O6D MN+EQE0CW]=ICB7375FAH"\KJ4IF:*O6OJX4LLR!2NY'0=#W2U8( M;SIV9W,U'^--QQ=:X0/.]FBO: M^2U+5I0H="$%*%Q-O,MP-$NLO3/X4>!6[ZW!*EE*^60WM]G$"VQ R#$UEH'1 M](Q7R+DEHC#^-)Q>Z]("]]<[]J]..VE9,HU7DO\L,I-/O($'&:[8AIL'N?V& MC9Z>Y4LEUVZ$;6W;'WJ0;K2190.F",I"U#-[:>YA#S (/@!$#2!R<=>.7)37 MS+#I6,DM*&M-;';AI#HT!5<(FY2%4?2U()R9WDN#$(9P#O?T FY%*DN$.2I8 MY$PAG#ZR)4=]-O8-.;,0/VV(9S5Q] %Q#'=2F%S#C<@P>X_W*<@VTF@7Z2PZ M2GC'5!?BL -1$"5'^.)6>>SXXB/*-=3Z#LFKTD9O M^OE3V ^^'(DM:6-+CK%/%U1[V88CR!7<,"4*L=9O6>G C.DB!28RN"[XQF & MOYP0>,07 S,NTZ??AS0=]7I8TV.N$-_E$B@3:=ZFP@ZQ>SU%_7I.H->)X@'- M42?N1TVP6UW\SK MKDFY6!=" \<508/N1<\#57>B>F-DY:I_*0WU$K?,J7FCL@;T?27I7IN-==#^ M#J9_ 5!+ P04 " "F@*)8D#NG=\(" \!@ &0 'AL+W=O X/19.>[86\5SFBAL>25VINY5K74\=1 M:8XE4Q>BQHI.MD*63--2[AQ52V19"RJYX[ONR"E945G)K-U;RF0F&LV+"I<2 M5%.63#XMD(O]W/*LP\9=LDB-/ZMP_<"]^K(!I/)1HA[L[C.YI9K!"''5!L&1J\'O$+.#1')^-US6D-( M SRV#^R?V]PIEPU3>"7XCR+3^=P:6Y#AEC5 L?L"P.\!?JN["]2J_,@T2V92[$$:;V(S1IMJ MBR9Q166*LM*23@O"Z>16: 3/A_>PPAU=MH;KJBNUN;.W:[;AJ-[-'$VQ#,)) M>]Y%Q^N_P!O C:ATKN!3E6'V'.^0QD&H?Q"Z\,\2WC!Y 8%G@^_ZX1F^8$@\ M:/F",XDKZ/([E5Z'#D^C3:M,5R/UP1ELX: O/L2USB7B MLWH"52/-AW*81P"W-$(4H^N5-I*A"TU-;6N E0$D!4TGDP65C*LDS\+>QN29[E!P!1M#;".!UPWZ#9IG+:MA"_BUW1@7T9&EY!*4Y5H1 ]4RN9Y>K>8^/R1\X]#; MDS7Q3G9:/_K@4[E,)EX0""C0,S#WVL,-".&)G(P? V9^0$BK6"7S0_4<8_%QZOD(+&YZDC[F+14**SJ*6 ]@ID%S% M-SL,]W "<#SG >D 2(/N6"BHO&7(\LSHGAB?[=C\(E@-:">.*_]1MFC<*7E2K)BEENB:[(QH %A?'DU2T@X\*2+W# CHG7&44G MPY/18BBYBB739TK.R%HK;"SYH$HH_\13)W_TD!X]K-(7"=?,7)#9] U))^G\ M!;[9>">SP#=_[DXZN0/CK=^W8)QO59,MU*X5T9ZS&]DN YL?@GV>9G1_1L!\ M%##_3P%KIKK*=6YGO(@[5G#!D<-9&?-_9$QG?^F@)XTBP=1A'"PI=*HVM-U.HVOBL&S<7P.,3W#G ME7:M-P2^P/@?RG\!4$L#!!0 ( *: HEB;O8L6=P( (H& 9 >&PO M=V]R:W-H965T@E#-W N]CXE'OBFMF_"SM&8;6(%]KA\T6OX0I> 52,.5 M)!K6<^][>+-(G'_K\)M#8_;&Q&7RJM2;,^Z+N1!X6L'"Q#"!4*, M/WU,;]C2"??'']'OVMPQEU=F8*'$"R]L.?>F'BE@S;;"/JKF!_3Y3%R\7 G3 M/DG3^P8>R;?&JJH7(T'%9?=F[WT=]@1A_(6 ]@+ZOX*H%T1MHAU9F]:269:E M6C5$.V^,Y@9M;5HU9L.E^XHKJW&5H\YFOY0%0LDEN9<[D%9I#@:MA:IJ)7'" M$+7^M':^!,NX,!?H];Q:DO.S"W)&N"1/I=H:)@N3^A;!7'@_[R%N.PCZ!<1/ MIJ](%'XC-*#QB'QQ6KZ$?)!'G^4^EF.H"1UJ0MMX\1?Q'EF#);:@.1.CV73R MI)6[:[++KL-I$*;^;A_ZV"N9AF$P>'UBBP:VZ"3;"UZ*2RXO:ZUR,*-T78#) MWKZS8!H?P!T[36+![;X)-L=EQQ/8D$V2HT?@_AHUS"BUX=L(U[A+ S' MX28#W.0DW&I;UP(/\!C6Y&A#&E%Z0#7B1&?).%0R0"4GH9Z490(OSW"]QNB2 MHW,T2^+IX6D;\0H1\(#/W^L4KDOCS=MP:8B ->J"JVO,3W>=KS.LJMOF\:HL MMJ)V6.+/ K1SP/6UP@;2&ZX?#;^?[!]02P,$% @ IH"B6*FQ_34M!0 ME"$ !D !X;"]W;W)K&ULM9IM;]LV$,>_"J$5 M0PNDD4GZ*9EMH$E6+$ S!$G;O1CV@I%I6Z@D>B1MI\ ^_"A9$2U+.DNV_,;6 MP]WQ>'^*_)GR:"/D#[7@7*/7,(C4V%EHO;QV7>4M>,C4I5CRR-R9"1DR;4[E MW%5+R=DT<0H#EW0Z?3=D?N1,1LFU1SD9B94._(@_2J168B,W8P<[; MA2=_OM#Q!72)0R2?:I+8=!WDK MI468.IL,0C_:?K/7M! [#KA;X4!2!U+7@:8.-.GH-K.D6W=,L\E(B@V2L;6) M%A\DM4F\36_\*);Q64MSUS=^>O*GT!Q1]!%]9KY$WUFPXNB!,[62W(BEE;GS M22EN#E@T15]\]N('OO:Y>K.:(J9WG8TT3]Q;2>E'*JD:M-7^*,7"_-^V:;-ZG(^X')2T3Q!2(=TBUQ MOX7=[[B7N=.\NVLJF)619&4D2;QN1;RO0K, S?R(19YOCEA2L[)N;>/TDSCQ M,[:>="DE(W>]FWR)$1EV,J-W M4W[:'?;V-"HQHE>X7*->EF+O2(T(J!$8M:E&+07+%:"?%:#?DD;]0OF'W<&> M1"4VPZMRA099@H,C%:*@0F#4I@JU%"Q7@&%6@&%+"@T+U>_LZ0-9Y)*[RI*[ M I.[XS,NXS7I5H0&=!1+4.$Q8!$H#ABTJ3@M!-%055)G M_2JSJES L*4,#&/&J:K""QW<>&-5SX$CV/((AH&DH:I%X.@."J(6C7JD2E-+ M)1C&DE,UA9=&N/'&FIX#7[#E%PP#3$--BX12F'PADWR2EF'P 8@1TOR\C=#O MK]Z"17..S(4-DU-8IE81IJUH^0I8B,$PQ=QQZ:]9O(, PN\@GN[LM3M/F( M<:]"(1<*L@DT;+33@5BSZQ?$)@/CDX M]$Y8\N&FFW:_K6CY0EDZ(H?HJ,8(36- \P=HDL]M9[,#QI'C1B< MVF2I(R&$'6DW:I,)W7EW Y/)L?+!3 (WVEB^#E:> (ADVUN[LXK\_C_ M"@],SOU(H8#/C$_G:+%,WJ*_"*U%F!PN.)MR&1N8^S,A]-M) M_&(^^R/&Y']02P,$% @ IH"B6*"]2*II!@ 8C8 !D !X;"]W;W)K M&ULO9M=;]LV%(;_"N%V10IDMBG;LITZ!E+KJ\#2 M%4FZ70R[8&S&$BJ)KDC''K ?/U)2]&$IK#6<[2:Q9)Z'A]:KE_2AM3BPY!OW M*17H&(4QO^[Y0NRN!@.^]FE$>)_M:"S?>6))1(0\3+8#ODLHV:1!43@PAD-S M$)$@[BT7Z;DOR7+!]B(,8OHE07P?123YZR,-V>&ZAWLO)^Z"K2_4B<%RL2-; M>D_%U]V71!X-"LHFB&C, Q:CA#Y=]V[PE6<8*B!M\5M #[SR&JFA/#+V31U\ MVESWABHC&M*U4 @B_SW3%0U#19)Y?,^AO:)/%5A]_4)WTL'+P3P23E\[;"'UGLN6)0'RPRB(,[^DV/^ M050"Y$#; XP\P#@W8)0'C,X-&.4J-:2IEZD@DBCY24,8J7=>Y'(=P,9)Y:?F:!H MC'Y&%DV"9Z*$A#[%7"1[*5#!$8DWR*.;;1!OT8W262 "RM&%104)0HX>Z%'L M2?@>O45!C!Y\MN?%L]7 R$'(!*8[#.D_V8 M)6N\DNP(W;)8^!S9\89NZO$#.?!B],;+Z#\:6N M2?IHA"^1,33&Z.N]A2[> MOF_):]4%L[IY#6-UP=A?[]!%_BFVP6P]S*+K C;2#,WI@GE]:&X7S(^&YNEA M-SOY.0U'&4RC@E%Q#XQ2WO@5WJ_"IPE:L4BZOZ]L.;T'UBRBZ.(7QOG[2[0B MW$>.-/KT9J"7R)730O'N(Y63"$5W=!T2SH.G8$TR8Y8WSP,YM@D]R\A,,U+S MR_-R/!PN!L]5T6FS5I/:%=^1-;WNR;PY39YI;_GN#3:'']JD!PFS(6$.),R% MA'E L)HHQX4HQUI1EF*B&R08^BS7,?$*RF.+-0G-G)\3[%@LI>!+*/\IL:IUKC MTZ*[&A\DS(*$V9 P!Q+F0L(\(%A-AM-"AM/_V_BFC<6>T5CL:9/JJCE(F T) MY M,8#U.P,6Y<$VEDK:(,*+B;'\T4!U G580F5C9!_7/HFW5)TXD&2CGT5"TNF;+K06LWUOH.H^:C4EH/&].HUDK]>VG7(?WS9.B MACZSSHII9C;!S=FQ-;-IO94+FID'1:M?X;)JC_5E>Q!7PGI?@JPWKT!I%BC- M!J4YH#07E.9!T>JJ+>O^6%_X[^I+L^;BN''WK_1]=E961L.XVFG_M"3;EEEC MD\L!SG[[*PLXYQ54UMFS543:&;N69EY4'UF5WA0>4 EHLDV?5B)H[6Z M8MGO](NSQ0-1-^EC0"?G5_C*PBWG;7SE9H\[E?CLZ:M;DDA/XRBD3[*K87\J M)X(D>Z I.Q!LESX>\\B$8%'ZTJ=D0Q/50+[_Q)AX.5 =%(^5+?\!4$L#!!0 M ( *: HEB6VN1\-@, (4* 9 >&PO=V]R:W-H965TYMDL"]+:MP#H4S2X/PQY4F[&%VI(G*4DW M[.-'V:Z:BQNL6/N22!1Y1)YC21PMI;K1*:*!VSP3>NREQA2'OJ^C%'.F]V6! M@E9F4N7,T%0EOBX4LK@,RC,_#(*^GS,NO,FHM%VJR4C.3<8%7BK0\SQGZMG>&*)ZFQ!G\R*EB"4S1?BDM%,]^AQ#Q'H;D4H' V]H[:AR<'UK]T M^,IQJ5?&8"NYEO+&3L[CL1?8A###R%@$1G\+/,$LLT"4QL\:TW-;VL#5\1WZ MN[)VJN6::3R1V3<>FW3L#3V(<<;FF;F2RP]8U].S>)',=/D+R]HW\""::R/S M.I@RR+FH_MEMS<-* .$T!X1U0+@9T'T@H%,'=,I"J\S*LDZ989.1DDM0UIO0 M[*#DIHRF:KBP*DZ-HE5.<6;R21J$+K3@%!5?,,LIG MMU)RD,AJ8B.$#Q@D7 M"1Q9RKGAJ,E_6LD.<@;OZ6/1L/=1:HWZ->R=HF$\HU$+")Z0-4\$,Q@#TP[L M?A/X?H'Y-:H?Y/]E>@I[+U_#2^ "/J=RKBD!/?(-E6H3]J.ZK..JK/"!LCIP M(85)-9R)&./U>)\H_3=/!EEZ; MBFY[M(:#9D&'+N'ASH3/A4&BP< 5W<\P7;)B54JW>G9+78/&G2+NW.BQ(CX1 MV!HG!XZ3@V<3\6#KWFQOW:T-/KWAAHS^RHN>HTK*1D=#).?"5(^6L[I>ZJAL M(3;LQ]1C52W1/4S5H-&3E-A",YP19+ _H ]+54U/-3&R*/N&:VFH"RF'*?6) MJ*P#K<\D]0[UQ&[@.L_)7U!+ P04 " "F@*)8@#A1/EX# #N#0 &0 M 'AL+W=O'H@=:&EM$*-)+4G:VO[XDI:AVK @Q(-0'BZ3FO9EY0U+D M9"_DL\H0-;SDC*NIEVF]O?%]E628$W4MMLC-F[60.=&F*S>^VDHDJ0/ES ^# M8.CGA')O-G%C2SF;B$(SRG$I015Y3N2/.V1B/_5ZWNO ]UDV@[XL\F6;/ 1 M]=?M4IJ>7[.D-$>NJ. @<3WU;GLWB[&U=P;?*.[501ML)BLAGFWGCW3J!38@ M9)AHRT#,8X=S9,P2F3"^5YQ>[=("#]NO[+^YW$TN*Z)P+MB?--79U!M[D.*: M%$P_B/WO6.4SL'R)8,K]P[ZT'44>)(72(J_ )H*<\O))7BH=#@"&IQD05H#P M+:#_#B"J -%' ?T*T/\H8% !7.I^F;L3+B::S"92[$%::\-F&TY]AS9Z46[G MR:.6YBTU.#W[(C3" #[#HQ;)R*O(>I=01B$_89XYA^'1PWPN!T>8W(-P?OP13O\B]@9>-@$ M/Q(CJNL:.;[^.WRNG/" VT(FF5E(*9@JF;ZFTK3C0E*^@25**M(K^$98@4T5 M+'T,G0^[X^QFT:AOM-T=RMH:B-WG;M26)#CUS$:F4.[0F_W\4V\8_-HD% "64FPDR>&O>\Q7*/]NTKN5\LSLYUV2Q5V2+3HB M.ZK+H*[+X*R%\5J7*[@M="8D_<>LC]M<%%PW5:B5_-P*=4D6=TFV&)PN_,#\ MZI5_)/VPEG[8*OU#P1!ZP6KPN0=/DJ1N"V*$7T&,BFXXT:W2MY*?*WV79/'P M1*W>D5JEIAVY/))^5$L_ZNYSX+8N!1?F^ZY<\[*I'*7#P6'2X>@DZ_FIV1N+ MN#7R??XCZ:\"9ECWX9R!0S7AC*X'IFI*LO; M1=G18NN.SRNAS6'<-3-S(4-I#&PO=V]R:W-H965TC)S"1?<@0AG+$O,G5S]AF5 I]9>*!.=?\.JE/4<"#-M9%HJ M$X*4B^*7K4LB=A2"[AZ%H%0(T,AGD*P=3(\ EN M1(@BGT\25L]#8?-8":H M\JI KHOLT?#W&"W ?^K\-QJSQ>="+UB(?8>JBT:U1&?P\T]^Q_NEX0@[%=3. M^Z#"<,54!/=,S:GR_8Y+3%I 4I9%*D9U^ L/?O!C L\J5&>-J HDH]=7;J@4 M$W.DXF=@M(%=N0G;Y,L%_NLO&3<;.GUM5&;7-=R:F#+D/F8";A?6FH;/4BQ1 M&](N\V=H7D1N\VF7H4.ZWL7M.8*OM?>H8.3L548%'8\^]:R<5ZR&BO45%S'P2G M^\9$].+R%'LEVD9N&]U]E-OMH^8WOVK%>_]=4=G6G=9.U#_(HD.4YF1O:]P4!MY@/NG@/:OHU^ M\^/X_HCVXJ<#Y3(".M3GY:(5^@N9.JH-J1E:0!Z8JFU&W)W>+44JRK9#U1!: M HLVKEJMNN!AT?MMQ8L6FOJ@.:=ZG^",5+WC,RK-JNA*BXF1B[P3?)2&^LI\ M&%,GC\H*T/Y,4C=83JR#ZK_!X!M02P,$% @ IH"B6-+.ZKF] @ /P@ M !D !X;"]W;W)K&ULK59M;YLP$/XK%JNF5FH+ M@0!K1Y":M'OYT*EJUNW#M ].N 2K8&>VDW3_?F=#&'DIVJ1\ ;_.WQ' MLA;R6>4 FKR4!5<#)]=Z<>VZ:II#2=6E6 #'G9F0)=4XE7-7+230S#J5A>M[ M7N26E'$G3>S:@TP3L=0%X_ @B5J6)96_AU"(]<#I.9N%1S;/M5EPTV1!YS & M_;1XD#AS&Y2,E< 5$YQ(F V[Q!_V"UHY8)53 2Q7>6Z7S@O'-(!C.Z M+/2C6'^"6D]H\*:B4/9)UK6MYY#I4FE1UL[(H&2\>M.7.@XM!\0Y[.#7#OZN M0_\5AZ!V"*S0BIF5=4LU31,IUD0::T0S QL;ZXUJ&#=9'&N)NPS]=/I%:" 1 MN2#CG$JX,!')R$B4^)4H:@/=L77W8L9 3F]!4U:H,S1^&M^2TY,S^BR$:IOU$Z]#L![ZF\ M)$'OG/B>WS_ 9_3O[D$'G: )?&#Q^J_@M8,Z;0<5JJ >BEB%&%E$8W-%M=^P[7?R74DE"9B1L:T $5^W$,Y ?GS$,-.'%.1KM6" M3F'@8,E1(%?@I&_?]"+O_:&$' EL2W+82 Z/GIX*,6Q%/@C]G>SLV_AQ>#@[ M44,UZJ:*-9#Q^3GY"!PD+0A>.'*38;%@2DMJRN3FIG8GK_.8_TW>D<"V(A(W M$8F/GKQX[]I$<;"3O'V;N+>;/+=5BTN0<]NB%-)8.[<-H)^2S MRA U?"ERKL9>IO7ZUO=5DF%!54>LD9N5I9 %U68J5[Y:2Z2I4RIR/PR"V"\H MX]YDY&0/V,=*V"V_$GPYTZ&H.%LA#BV4Y^3\=>8"/"'!-M M35#SV>(,\]Q:,G'\71GU:I]6\7B\M_ZK V_ +*C"F)!NE15$IFP@*QLLO_5(1<:00A1<4PDHA/%,@ MT06%J%*('- R,@?K/=5T,I)B!]+N-M;LP''CM T:QFT:YUJ:56;T].2CT @Q MW, \HQ)O+",IS$1ARD111_0-/,Z?@/(4'N93F%K:F?X*;]ZCIBQ7;T>^-G%8 M:WY2^;PK?887?$9P+[C.%'S@*::G^KZ)OP81[D'01B$7?@1 M?% 6C:H^+1ZBFJ;(>>A>\/"(2DN6:$/.7(OD&9XXTZID!:4[33S!:FVZHS)5 M\.D>BP7*STT$M7JS1_=6K6F"8\^<385RB][DYQ]('/S2@J5;8^FV8GGB6X/& M(#%Y5?O$*GC#>,776_BGD;DR]-)XSQFWE\1V$H9Q-"0C?WNT;=8>PR?RN05) MKT;2NP+).]BYPVOD=(O27$:PDI1K2*FI]25E$K8TWZ!#G(H\IU+!&F6)V8(_ M5% 3 65,_6,"AITXKO&?0(EK*'%[@9WDPL5KXO_>G,0O MDWX-I'\ED"NH[K^@.NIVXD$SU8,ZPL%_6?^#%UQ'8= GO3.NVV-HYWI8(QG^ M#^M_^#(II-,=-B>%!(>'*+CFBFV[1=LM7GF-DJ.GD[Q>ZE4&OK=Z*I/'Y7,3 M]@9D>%8^K[ANKQ\2'B"$_PK"%>50>3BIAZ 3]2[4@WUQ3R6'=XN\^FC\D2'P MC2T($,ORW*9,);FP;8N)7V=,@::+','$"U0;"1J!7)F..,K.2*F&&BFKMZ4PABPNC1'BA[P^\A/&T M,QD5=7,U&^M!OV=08':*[M2<)@QPR8C);>@[->D9A\*F(4U=9^G=MP71M%;3G9F M"2'&PT7*0QQG5[C_I0=21\[,AYZ!3\DZ5= MZ 5'$/K!$#XO9O#^W8<#[9JZ92Z9>I0)^PZ9V2NMR6UK_*(U+\C4>MFKAJM7 MZ/9?T/T+C4&E0:Y@JC#F!JYSHPT-&(W5$9PE,D_-H=%PRMKDXN74;\JK3;%92V(UKL<5UV,GUVNS0;7' M\#'B8,YX#+0*P<7WG&?V584\AJ^T?%&>@1N,D))\?(BWTV]3WJ58T'/&9TL> M:QP'%<=!(XZ'B#@5FA(9/)^Q_>[@!R(M>:P1&59$ADXBB$.G9E.6;8K-3IX'M=_M5T%=8_2Q8O2Q41PN\@S5 M*J>*!:>=DBOHG,)-0;4I-FM)K 8T\)]VF+X3Z55ND<'U"N:TV:3H8T(\V(F= MT/]5'[LUQ/7U-V IK3:4JOCVMN0!TY<%]IP.L^@ MW8)K8W=Z%_,S6!0G):J\P03CAX.H2MW!/BK??\;*Z;TQJY;4ZJS")U;A&UG= MTF$4C+1K:B:09FH%S-(KH<'[K\C4H=W\^2M^@AX\D.FA")VZ31L#;4FM#O3I M>!&\ZVJS=I2J]-\.H4$[F/(_\M\ M_>>9K__C9&[U9-&66DG+V[N42%"MB\L=#9$]+Y3W$U5M=8%T5ER;>$^?E[=/ M="A?\U2#P!69^MTA05'EA4Y9,#(KKCB6TAB9%(\;9#$J^P&]7TGBORM8!]6U MVN0_4$L#!!0 ( *: HEA!DJ]+HP( /0% 9 >&PO=V]R:W-H965T M>N_,]XZW2#Z9 M/!8"FDF06%M=1F&)BVP M9*:O*I1TLU:Z9):V.@]-I9%EWJD481Q%YV')N R2L3];Z&2L:BNXQ(4&4Y/;1UV' AGOT/<.L2O'49O. Q;AZ%/M&'FT[IBEB5CK;:@G36A MN86OC?>F;+AT7;RUFFXY^=GDN[((%W *2]R@K!$&<'R%EG%AX X?; MWU[!\=$)' &7<,.%H!:8<6B)@<,)TS;:K(D6OQ%M"#=*VL+ M^D?$O.. M?OQ,?Q8?!+QAN@_#00_B*![MX3/_?_?A 3K#KII#CS=Z V].V6EZF=1$6\#< MMP]U#[YQMN*"VZ<>'9:U8.[MPIS9M#BM*YAFO\F49L."5<^=(-."R1Q=Q:^- MY?1D$=0:[C23AC5#L- \Q7UM:&@.(L_33?(F&?0_CL/-;FWV&$7]46?TH@*C MK@*C@Q7HR"_1:0B7.2Q0>[61*<*/E> Y<]Q[,"U5+>T^]DV(\QU>\=G9*_(' M:3CMNS052W$2D+@9U!L,DO?O!N?1IWUM#G<&B!J6>UTQD#J"S6/L3COIFOJ) M?74^(TEK%.@?3*.']-1R+@T(7!-DU/] @J ;C6DV5E5^3%?*TJOQRX)D&;4S MH/NUHE%M-RY )_3)7U!+ P04 " "F@*)8,KD%[G0" "Y!P &0 'AL M+W=OT'A 92U?CLN\?/XSN?)UNE'\P* MT<*N%-),@Y6UU3@,3;;"DIF>JE#22J%TR2R9>AF:2B/+?5 IPB2*AF')N S2 MB9^;Z72BUE9PB3,-9EV63#]>H5#;:1 '3Q-W?+FR;B),)Q5;XASMYVJFR0I; ME)R7* U7$C06T^ R'E^-G+]W^,)Q:_;&X)0LE'IPQOM\&D2.$ K,K$-@]-G@ M-0KA@(C&SP8S:+=T@?OC)_1W7CMI63"#UTI\Y;E=38.+ '(LV%K8.[6]Q4;/ MP.%E2AC_#]O&-PH@6QNKRB:8&)1E2\K<:EKE%&?3C\HB7, 9W.$&Y1HA@9,;M(P+ _>X MLVLF7DU"2SLY_S!K4*]JU.0 Z@>F>W >GT(2)?W?PT,BV+),6I:)Q^L?P&O( MG1)+5VA<+F&&VI>DS! ^+01?,I?E4WB[JRCAF,,]+YV?*F!.2Z9@6>TPMTQ; MH,-"^'ZYX^;'V+,\B^@7=TD]2LU=FK&I6(;3@&Z%0;W!('WY(AY&;XX(/V^% MG_\MX32?H;1TD[I$U-O$=<+<3=VD46](N=ETL.NW[/K/EA8*Y"J'DV_(=&?% M':?R&DHE[)W:/&C7")9<&!!:$%/5&E%]=/Q2U857EF_-"66KU M?KBBMQ6U&PO=V]R:W-H965T M"-(3;)I>^@4]6-[F/;@P 6L@IW9)NG^_6Q#69+2K*OZ$FQSS^&<>^-[ MXPWC=Z($D.B^KJB86*64JW/;%FD)-1:G; 54OE92R7)BC2V408Z; M2EZQS6?H_ 2:+V65,+]HT\4Z%DH;(5G=@96"FM#VB>^[/&P!%,\PP.L WCY@ M] 3 [P"^,=HJ,[;F6.(DYFR#N(Y6;'IAD??@:.H=)+S$_!3Y[COD M.=YH0,_L^7#_@!R_3[!O^$9/)5C=1($K&$Q-"PT-5-^W=>*ZON<&L;W>5OPX M[.S,.8OZJ!UAHU[8Z*"P&XZIR(%SR!!; TNO!RVO20H.M9(\=QXGV2O(X*O2# M43A.] MR@Q$!4'@[E7&WFJ9-?#"3!*!4M90V?::_K0?5A>F1^^=3]40:V?.7YIV JI. M4A J4 6YHG1.(_5OX>U4:3>2K4QC7C*IVKQ9EFH0 ]&ULK991C]LH$,>_"K+ZT$K;M;&-'5=)I$VVIU:Z7E>[[?69 MQ),8U88.;/;V" F1Z%_*H* (V^5257,Z_0>O?& M]]6Z@(JJ6[$#;KYLA*RH-EVY]=5. LV=4U7Z81 D?D49]^93-_8@YU.QUR7C M\""1VE<5E=\74(KCS,/>:>"1;0MM!_SY=$>W\ 3Z\^Y!FI[?JN2L JZ8X$C" M9N;=X3=+'%H'9_$W@Z/JM)$-927$5]MYG\^\P!)!"6MM):CY.\ 2RM(J&8Y_ M&E&OG=,Z=MLG]3]<\":8%56P%.47ENMBYDT\E,.&[DO]*([OH F(6+VU*)7[ M1J^TJ!IG0U Q7O_3;\U"=!R,SKA#V#B$?8?X@D/4.$0NT)K,A75/ M-9U/I3@B::V-FFVXM7'>)AK&[38^:6F^,N.GYW\)#6B"7J-'. #?@VDM!=?2 M+"_ZPG2!EHX!)+I3"K1"E.?H3T97K&2:@4(O[T%35JI7QO/STSUZ^>(5>H$8 M1Y\*L5?&6DU];4#M=/ZZ@5K44.$%J A], R%0F]Y#OFYOV\";*,,3U$NPJN" M'ZB\11&^06$0QB,\RQ]WCZ[@1.VB1TXOOJ"WH"7E:[A!*]@RSAG?(K%!.Y!, MY&.K5:LE3LV>R\,7L7\CM M[M+\8$.PW"85C,]V=)]K:=)!2H,D#GK@0RL2!?$%;M)RDZOX/^H"Y!AT,J1)DJR'/&*$2!QSTF).?NNIFPPH0AR3?NX.K7 : MDPLYD+6HV4_EP.GB_7X]?[,!4T)P/WN'1GB2I&0<' ?/[TGP/Z^+T?L_&"9B M%B5ICW',# =Q=N%JP)U7#__J E\\:(WTV(>J-\I+\PJ;5W5I=!:[+FNW^!VM*WL[EP]TQM?V(K/E2W/ M,G6Y:%Y8&ULC51K;],P%/TKEI$02*-Y=EU+$FGMAMB'0=4- M$!_=Y*:QYMC!=A_\>VPG#6%J*[XX?MQS?,Z-[TWV0KZH"D"C0\VX2G&E=3/S M/)574!,U$@UP32C'6>+VEC)+Q%8SRF$I MD=K6-9&_Y\#$/L4!/FZLZ*;2=L/+DH9LX GTMV8ISP5X,YLD[60KS8Q4.18M\* @:YM@S$?':P ,8LD9'QJ^/$_946 M.)P?V3\Y[\;+FBA8"/:#%KI*\0U&!91DR_1*[#]#YV=L^7+!E!O1OHT=^QCE M6Z5%W8&-@IKR]DL.71X&@.@<(.P X2M $)\!1!T@>"YJ0,_D J]NP--*%/H&0YZ M2]C[Q-/F,@OQ\HYXWA*'9X@C]"BXKA2ZYP44_^(]([)7&AZ5SL.+A(]$CE 4 M7*'0#^,3>A;_#X\NR(GZQ$6.+S[#]]74D:WQ1['U9@BNWP2M!*V)> MS@IRP7/**+%%>866('/@^E0^VBNF[@K;6W:9/PHGX\3;#6V>C+J9]%&M?F_P MX&N0&]<'%,K%ENOV1?6[?:NY=17V:G]N6E#;,?[2M/W+O)<-Y0HQ* VE/YJ, M,9)M3V@76C2NK-9"FR)UT\JT49 VP)R7PI16M[ 7](TY^P-02P,$% @ MIH"B6(G\PSP;!0 NA@ !D !X;"]W;W)K&UL MM5E1IEI+IFDUSYT^B"#;.@!\DERG,[T MQU=@ @8)3>+X7F(0WR[?KJ3]%F6\H^P;CP@1X#E-,CZQ(B$V5[;-@XBDF%_2 M#AN8D'K9> A7DDT M+= H-R@0?\1DQP^N01[*DM)O^_,#0^O7[Q_*H*7P2PQ)PN:_!F'(II80PN$9(6WB7B@N\^D#&B0^PMHPHN_ M8%=B'0L$6RYH6AI+!FF<[7_Q'E&7H<;Z)JLY-,0S$DFKP2XEY0YF(7_R#*0Y@F?"<'BY5;@94* H. >%_/P MURU)EX3]K0O.^/9<(Z[X!@=D8LG)XX0]$6OZ\T_0>BG=YF6\9BC7WHK1M%'5=;L[D55=%\9(W2*M*$R( M1A#0J07,^;$5J?3?2"UL\=9A1AW,#Z07'KND2\O6FO91FY8.-G"ZE7V0N"LUS(SR^ 3/8%6& >@4^R 02?2;@F%^TZ!/X#LL62#50&/CX'$<[6 M)!_8818::Y69U%N+U:F\-5-8ZS<\6L!+R^:LM7>*!C3JT&Y8BS)RA54 M%;I=KC20'G0Z^-W2UNCOFF,[M]:_$YE;=F$FI) M1T=_F"-5>'LCY9Q#A_*'7CB4>U4".S4/^ M\J/1]V%;#;2@CLX5U0*/S +__NJC?D K!T\:3/?)$ZKU%1VMKZ6EUUCBCL)+ MAU*:)OO@%#@E;%T@U6AU #\KCIU;XW-XM=@?H]=N]J?ZMYBM MXXR#A*RD2^?2EZEB^X/R_8V@F^*L>4F%H&EQ&1$<$I8#Y/,5I>+E)G]!]>^* MZ?]02P,$% @ IH"B6.,0M:**! .A, !D !X;"]W;W)K&ULO5A=;]LV%/TKA%8,"9!$HN0O9;:!Q&G7 $MG).WV,.R! MEJXMK9+HDE2< OOQ(R5%LB2:31&O+Y9(WWMX>,G+>\3ICK+// (0Z"E-,CZS M(B&VE[;-@PA2PB_H%C+YSYJRE C99!N;;QF0L'!*$]MUG)&=DCBSYM.B;\GF M4YJ+),Y@R1#/TY2PK]>0T-W,PM9SQWV\B83JL.?3+=G XA/VR63+;M&">,4 M,A[3##%8SZPK?+EP"X?"XH\8=GSO':FIK"C]K!JWX\B H86-)5;(U)K]@CH-\JY-+N'("&H#A#'R.:_< >P_=T4Q$'+W- M0@C;_K:,1!T.]SDXJ8Q_GON=,\-1^W"?=MYJX0]>IK5KT,.76_2X=4W$16LL3'D40;O2A'/=#.1@/.B0U1M[(UY.C7 LM';8]PH\?ET-J?Q;1XG7 MV0]FFS8SMV'FOF*75LYF6D:;-JVFYF)ST7WQ05WA[(_N= GV3?"!0QHWA1>; M*^__DTC%X7^BI-KI&9)+ =4$&[4!C;+#:,. MPAKUT*/5MQD%&7N ?HB^.D5VWF0"Y9P6ZEQCH84>VYKPZJGXY%EI[&1H%@U\C87!?H/C= MKQZ-#<8'Q*?;J!C7K&)>7!TJG':.^1V..B/O$,>FY+OFDO\].KZ"VO\XQ&XW MTW1&PTF'IKUW"Y$"VQ27,QP%-,]$^05>]]870%?%M4>G_QI?+LIKG :FO%62 MW]>;6,J[!-82TKD8R\"Q\J*F; BZ+>XZ5E0(FA:O$9 0F#*0_Z\I%<\--4!] M73;_#U!+ P04 " "F@*)86@0HVCT" #O! &0 'AL+W=OM@KJ=T\:;WO+AAS58N* MNQ/3H::;QEC%/9EVRUQGD=<1I"3+TO2<*2YT4A;Q;&W+PO1>"HUK"ZY7BMO? M2Y1F-T]FR=/!G=BV/ARPLNCX%C?HOW=K2Q:;6&JA4#MA-%ALYLEB=K'*@W]T M^"%PYP[V$#*Y-^8A&-?U/$F#()18^<# :7G$%4H9B$C&KY$SF4(&X.'^B?U+ MS)URN><.5T;^%+5OY\GG!&IL>"_]G=E]Q3&?L\!7&>GB%W:C;YI U3MOU @F M!4KH8>7[L0X' .)Y'9"-@.PEX/0-0#X"8N78H"RF=_N/&6;@7A?'EK/,)L!A_AEEKF6E=&(:S1PJ;E%N'#)7HNI(-ON/<] MET?DZ,*-*YBG\(&$56.HY1 J>R-4#C=&^];!E:ZQ_AO/2/:D/7O2OLS>);SA M]@3RV3%D:7;ZBI[5_\/S=^3D4RGSR'?Z!M]">U$+V8>^A U6O15>(*6[KV1/ M&4-CC8*545WO>>QAT\ 5MUKHK7NN^3$LE.FUAP]"C[4^>JW8@YBS*";,ZF-Y MGJ9IP1X/*_"OT[/'D"0[Z!V%=AM'RD$5) R_8CJ=IG81F_7%^9*F>1B^9YKA M*:!";X5V(+$ARO3D$^FQPW@-AC==[-![XZG?X[:E%PEM<*#[QE"7CD8(,+UQ MY1]02P,$% @ IH"B6."39\"S P NPH !D !X;"]W;W)K&ULC59;;]LZ#/XKA-&'%NCB:VY%$J!-=K !NQ3K>O9P+2ME? MV':Z40!YJ[2H.S RJ!EW_^2I"\0.($X/ )(.D.P#A@< :0=(]P'9 4#6 3(; M&>>*C<.*:+*82;$%:;31FEG88%HTNL^XN?<[+?$K0YQ>?!&:0AS#._B"2?:1 MYZ*F<$LEW)5$4A1_$DI9P0U1+ ?""UBQJM6T@!\VJ+BX?J02DP26HJ[Q+AWT M:ZN51G7&-X#YB1^Y9KPU6V=$Y4Z"!KXV:,#D@8+S%=6$5>H"S[Z_6\'YV06< M00C*&%7 .-QSIM7ECN![*5J%-E%X]FH_"S6&R#@:YETXEBX'J&3]M>=6GO9H>O& M2V;VDGVQ<=B1Q9J&\;@8)NED%C[N$GZKE*2CI%=Z12OK:65':;G<.L>[<[=Z MX6/G3 QW#IY.X]$>.Y]2%OG9#7MVPZ/LWJ_7V*5 K*'!:L&<)57U&PI3!=BS M('=9W^7C<2=NCI_T7_R_S_/A&Z?B9+KGN$:[S;5?G[TA7 MYZ\]%CN%_IU1]2DGJISH-]@1Q]/*<1'_+X.\E M?9LRO*T?T FL(8(%U-=.ET)$H0+$Z1Y=1%-EWQ]C2I:04:M?:J6GM@)TU+_O./,!'@QI#YH<+ M+\E3C:4#7Z,.=][HFLJ-G744>MER[1IE+^WGJ1L[1>S)EV;.\LBOIU?+J4\> M1U=+-YB%+P>[L0YY;Q@^NA5=(XEH,,:BDVY2&ULK5?;;MLX$/T50BUZ ;:11-WLK&V@ M<7:W?4C7B-O=AV(?&&EL"95$+4G'#="/[Y"2%=N2U3;)BR629 BCRMT M"Y:5UFQBYA9B-N$;E6NN=SU], 8_%/!ENY]TYT*#>*-5+QHP,B@R,KZR;XVB=@#H)]^ &T M]!C@GP!X#!;(K0U>M,O)C<&C=%DI2[C4@E1]68M#)_G-P>@:2/,H'D$&]C)MITT%TZ+NB@PRLFSHCG_D:H0_T>/O.?AWL# M=+RV.I[QYY^J#G['DN70FYH:&AJH_EIO9Z[K43>8V+?[C+MFX[$SCEJK V)^ M2\P?)/:7X%*22O!5IOJXU>A@;U/JN)Y_1*UKY89!=():T%(+!JGU2._S%10W M(/[K8SKH3!^BY[)B,4PM/"4EB%NP9B^>N:'S>Y\ZGLC90=QA&W?X<*V$W4SW M::5K-J"5J"46/4HKT4]II6LUH)512VWT4*V0;WBHK-$>!!YY2P60DP5636X$ MD$56P:"J!K?]554]D;.##(W;#(T?KJIQIR8CQW&BH\IUK4(O\,/^RKG._<7E M/$I6#?Q ,3[UZ1&['K,H&M$3[/:N5?<1RD(AQ4R:NU;@4VQBI66%E^"!Z.ZD M@F+X^!JF\:M*>RIOATFC]TFC#Q=;@]TOE.=19W12F&]*5?31_(5N ML4V?>.^F[L^Q4T&=29+#"ETZ9Q$F3-0M;SU0O#)=XPU7V(.:UQ3_)H#0!KB^ MXM@Y-@.]0?O'8_8=4$L#!!0 ( *: HE@YU96'6 , H5 - >&PO MPT:8N/ 0^#KA7$OL_WW7?G2V(85&K%Z>6<4N4MJ\J;%0JBAWV],GKU\3H=^&)_XGJ4;%RD=^M>'[WXL"G7VQK/7@_<'!YWK MH[-=^Z$!COS 27KZ"-+C#LZK,8PZWJ9>+^^\U62'[0QS[[G=M[Q1Y_ZCTGH@ M*XPX<1/_OON%4K?87\A['4?*;;Y8LKW06:F-.AG'H.ZRT2 K1-MLD6\-FIGD MU+LA?.B/"6<3R< K(SGC*VON@F%:\$)Z2G>Y#A6"I;JU<&AG< /4/#D3A32Q M;03[>U(OWP'6,Q#(.&\$=GUK& U*HA25XEQ/S&)CO =Y]?AJ56J%,TE68??4 M;QW,10>9%#*EL@D3^FO3:,!I!G(DF\WAJHHR %"I(M>#E)%9(8C1L/:H!YIV M2CF_A*?#]VR+>YEM[)G9:-$,M:!Z:&GL!/@WV2SW)NW)LWB]DMT4ZM-"IR/, M''J37DB:L:69+[-& ,8>XNRD+/GJ(V?-"\EN=31HE:DV M4.E[-U0J-MVT_)2DO*)+M6ZG989K[NZAYG];YQD55!*^*5KW_FNN\K,51[V7 MDFR>*KN"G1KK5_YK%WFZ#R+C?1"Y%SW9WP>1R1Z([+W84_,I(L-7*3*HCT(; MYZVMTU9C]>!4._2_P?F8MT&]R8)QQ40]F[,TI>+>H4O3*S+1?^AM\>OU*E4[_@+IA7%SI-:QF$CIDJ;C>BIG$S/T]$!' MK3_@L(N5FM\M_$.>;@/ ML#U]J$.P3/%.Q#+%:PV(NV[@D23NW<;B@ >V"UCO0'QW'.@IMT\4P:YBVK [ M&$>2!$.@%]T]&L=(=6+XNO<'NTNB*$G<"&!N!5&$(7 WX@BF #1@2!29]^#. M^RA8OZ>"]K^?HS]02P,$% @ IH"B6)>*NQS $P( L !?3T\$MP>:4#M.*2VBZD8_1!2:5K5N %(MB6/:(7->=I3W;+T]!;X"O.DQQ0FE(2S,.\,W2?S+W M\PPU1>5*(Y5;&GC3Y?YVX$G1H2)8%II%R=.B':5_';Y%D8L1&-L'^O,O^]X1EIA12M M>./U*IMGQ.S5RZ]*BS6_:-4=A-RYT\!=S(+;\/UP M_.P[\5+_GVY4VZVH^+6JNI9+V_>CYHT#E&8O#B8CDK5\E1V;D"M9D\_20B>1 M&]F?"MJZ.X5+W]3]75O #?I07PHXH&]J#SX>Y"30FY""#/$T+$YH\LJ;CY'?.3*=="+U54W-M?B"?_^I X"$D MYII\9-EXR*6#W#/-3S>LG^,MG-) ZQ 3LTT^LFX\YAE@ EHKK!]G/[,A'%D1 M+8$PW^0C"\=CG@/F5PZ3N^,A%Z:8?&3'>*X+'W0JU7+RP%[CJ(.I)1_9+7W8 MG@/=506-N\:KY<[NN7;#'6)B7 M-=_YI.'[F4*!>:9(X9F\]/.D\HE-5:G.3>2=F]0A)N:98F3/@%,$Q&SRH%GM MT*ZT9G+'WTNF0!.:%))YMYP@)Y#$-MS\&$)BDBE22&9H71$E"P4FF2*%9(;6 M%3$F)IDBA62&E!UC8LXI4C@G<.%W_Y68=XHIO1/W(^:=8E+OA.6 A-/,:5X MR$E86L'44R91ST".&%> ,/64*5*<]V'=KWX/2D;5M!*S3YG"/H.!/2RPE&A! M+85_!@-[A(GYIYS4/V$EJ,3\4Z;PSU!>&\]TS#]E"O\,:C(:=,Q"90H+#6)& M@XY9J$QAH4',L !88A8J4UAHJ$X0A7>*68BFL%"X-LK)R36W3#2&//#7$!.S M$$UAH1"S&,3$+$136"C$A @J#-OM--_%-2R*68BFL%",Z?Z5FE66_"'"ZBI% M'^RDL-#[6M&W<0\Q,0O1%!8:7+V'X9UB%J(I+#2(&89WBEF()LF%!I*,.&YB M%J)3YD+QH&,6HI/F0J?APU',0@MOH=GQ!8.:;X7D]2UN\KCMFN83[+N3ORE6']]7.+YK\?$?4$L#!!0 ( *: HE@X@V\FQ $ M T> : >&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'/-V3MNPD 4A>&M M("\@PWV8A BHTM!&V8!%AH=BL.69*+#[(%*0@U*D07,J:VSY^J\^6^/9:VR; MO.L.:;OKT^BX;P]I7FUS[I]#2*MMW#?IH>OCX7QEW0W[)I^7PR;TS>JCV<2@ MX_$D#+]G5(O9[YFCMU,?_S.Q6Z]WJ_C2K3[W\9#_&!R^NN$C;6/,U>BM&38Q MSZMP;*^G4[@H*@I_)!4PB:E@^2,^/U\9?ESTE\7]07G /\_5U\ U!+ P04 M" "F@*)8@(3XG< ! '@ $P %M#;VYT96YT7U1Y<&5S72YX;6S-VUW M7VSI;#)^VUGRO6U5UGZ2+$.P#XSY;$F5]JFQ5,>1N7&5#O'1+9C5V4HOB(G! M8,0R4P>J0S\T-9+I^(GF>EV&WO,VOO:%J2>)H](GO&PO=&AE;64O=&AE;64Q M+GAM;%!+ 0(4 Q0 ( *: HEC=Y+$ZY04 /T> 8 " M@0X( !X;"]W;W)K&PO=V]R:W-H965T&UL4$L! A0#% @ IH"B6/7C$ZW? P =1 !@ M ("!GQ( 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0# M% @ IH"B6*A7_8\D"P R(X !@ ("!.2$ 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ IH"B6+,I @'D M! =0L !@ ("!]#8 'AL+W=O&UL4$L! A0#% @ IH"B M6!/PYH-8!0 C@P !D ("![#X 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ IH"B6+H&[&F$!0 8PT M !D ("!.DT 'AL+W=O*1#/,% !6#0 &0 @('U4@ M>&PO=V]R:W-H965T&UL4$L! A0#% @ IH"B6%WZ60W @ - 8 !D M ("!IE\ 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ IH"B6/D#WJ'N!0 @PT !D ("!+FP 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ IH"B6+QE MY:V3 @ ?P4 !D ("!"'@ 'AL+W=O@ >&PO=V]R:W-H965T&UL4$L! A0#% @ IH"B6+@!9ELW P 80< !D M ("!V( 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ IH"B6 >0VH*X @ &@8 !D ("! MLHP 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ IH"B6)N]BQ9W @ B@8 !D ("![Y0 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ IH"B6);:Y'PV M P A0H !D ("!H:, 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ IH"B6-+.ZKF] @ /P@ !D M ("!H:X 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ IH"B6$&2KTNC @ ] 4 !D ("!_;D M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ MIH"B6&2TH7=3 P $PL !D ("!;,( 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ IH"B6.,0M:**! M.A, !D ("!V&PO=V]R:W-H965T&UL4$L! A0#% @ IH"B6(/01R=X P A P !D M ("!^-@ 'AL+W=O&PO&PO7W)E;',O=V]R M:V)O;VLN>&UL+G)E;'-02P$"% ,4 " "F@*)8@(3XG< ! '@ $P M @ %YYP 6T-O;G1E;G1?5'EP97-=+GAM;%!+!08 .@ Z + ,T/ !JZ0 ! end XML 68 Show.js IDEA: XBRL DOCUMENT // 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)}}} XML 69 report.css IDEA: XBRL DOCUMENT /* 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; } XML 71 FilingSummary.xml IDEA: XBRL DOCUMENT 3.24.1.u1 html 169 208 1 true 43 0 false 8 false false R1.htm 000 - Document - Document And Entity Information Sheet http://www.nwpipe.com/20240331/role/statement-document-and-entity-information Document And Entity Information Cover 1 false false R2.htm 001 - Statement - Condensed Consolidated Statements of Operations (Unaudited) Sheet http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited Condensed Consolidated Statements of Operations (Unaudited) Statements 2 false false R3.htm 002 - Statement - Condensed Consolidated Statements of Comprehensive Income (Unaudited) Sheet http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited Condensed Consolidated Statements of Comprehensive Income (Unaudited) Statements 3 false false R4.htm 003 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) Sheet http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited Condensed Consolidated Balance Sheets (Current Period Unaudited) Statements 4 false false R5.htm 004 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) Sheet http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) Statements 5 false false R6.htm 005 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited) Sheet http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited Condensed Consolidated Statements of Stockholders' Equity (Unaudited) Statements 6 false false R7.htm 006 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited) (Parentheticals) Sheet http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals Condensed Consolidated Statements of Stockholders' Equity (Unaudited) (Parentheticals) Statements 7 false false R8.htm 007 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited) Sheet http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited Condensed Consolidated Statements of Cash Flows (Unaudited) Statements 8 false false R9.htm 008 - Disclosure - Note 1 - Organization and Basis of Presentation Sheet http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation Note 1 - Organization and Basis of Presentation Notes 9 false false R10.htm 009 - Disclosure - Note 2 - Inventories Sheet http://www.nwpipe.com/20240331/role/statement-note-2-inventories Note 2 - Inventories Notes 10 false false R11.htm 010 - Disclosure - Note 3 - Fair Value Measurements Sheet http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements Note 3 - Fair Value Measurements Notes 11 false false R12.htm 011 - Disclosure - Note 4 - Derivative Instruments and Hedging Activities Sheet http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities Note 4 - Derivative Instruments and Hedging Activities Notes 12 false false R13.htm 012 - Disclosure - Note 5 - Stockholders' Equity Sheet http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity Note 5 - Stockholders' Equity Notes 13 false false R14.htm 013 - Disclosure - Note 6 - Share-based Compensation Sheet http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation Note 6 - Share-based Compensation Notes 14 false false R15.htm 014 - Disclosure - Note 7 - Commitments and Contingencies Sheet http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies Note 7 - Commitments and Contingencies Notes 15 false false R16.htm 015 - Disclosure - Note 8 - Revenue Sheet http://www.nwpipe.com/20240331/role/statement-note-8-revenue Note 8 - Revenue Notes 16 false false R17.htm 016 - Disclosure - Note 9 - Income Taxes Sheet http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes Note 9 - Income Taxes Notes 17 false false R18.htm 017 - Disclosure - Note 10 - Accumulated Other Comprehensive Loss Sheet http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss Note 10 - Accumulated Other Comprehensive Loss Notes 18 false false R19.htm 018 - Disclosure - Note 11 - Net Income Per Share Sheet http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share Note 11 - Net Income Per Share Notes 19 false false R20.htm 019 - Disclosure - Note 12 - Segment Information Sheet http://www.nwpipe.com/20240331/role/statement-note-12-segment-information Note 12 - Segment Information Notes 20 false false R21.htm 020 - Disclosure - Note 13 - Recent Accounting and Reporting Developments Sheet http://www.nwpipe.com/20240331/role/statement-note-13-recent-accounting-and-reporting-developments Note 13 - Recent Accounting and Reporting Developments Notes 21 false false R22.htm 995445 - Disclosure - Insider Trading Arrangements Sheet http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements Insider Trading Arrangements Notes 22 false false R23.htm 995467 - Disclosure - Note 2 - Inventories (Tables) Sheet http://www.nwpipe.com/20240331/role/statement-note-2-inventories-tables Note 2 - Inventories (Tables) Tables http://www.nwpipe.com/20240331/role/statement-note-2-inventories 23 false false R24.htm 995468 - Disclosure - Note 3 - Fair Value Measurements (Tables) Sheet http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-tables Note 3 - Fair Value Measurements (Tables) Tables http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements 24 false false R25.htm 995469 - Disclosure - Note 4 - Derivative Instruments and Hedging Activities (Tables) Sheet http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-tables Note 4 - Derivative Instruments and Hedging Activities (Tables) Tables http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities 25 false false R26.htm 995470 - Disclosure - Note 6 - Share-based Compensation (Tables) Sheet http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-tables Note 6 - Share-based Compensation (Tables) Tables http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation 26 false false R27.htm 995471 - Disclosure - Note 8 - Revenue (Tables) Sheet http://www.nwpipe.com/20240331/role/statement-note-8-revenue-tables Note 8 - Revenue (Tables) Tables http://www.nwpipe.com/20240331/role/statement-note-8-revenue 27 false false R28.htm 995472 - Disclosure - Note 10 - Accumulated Other Comprehensive Loss (Tables) Sheet http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-tables Note 10 - Accumulated Other Comprehensive Loss (Tables) Tables http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss 28 false false R29.htm 995473 - Disclosure - Note 11 - Net Income Per Share (Tables) Sheet http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-tables Note 11 - Net Income Per Share (Tables) Tables http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share 29 false false R30.htm 995474 - Disclosure - Note 12 - Segment Information (Tables) Sheet http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-tables Note 12 - Segment Information (Tables) Tables http://www.nwpipe.com/20240331/role/statement-note-12-segment-information 30 false false R31.htm 995475 - Disclosure - Note 1 - Organization and Basis of Presentation (Details Textual) Sheet http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation-details-textual Note 1 - Organization and Basis of Presentation (Details Textual) Details http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation 31 false false R32.htm 995476 - Disclosure - Note 2 - Inventories - Components of Inventories (Details) Sheet http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details Note 2 - Inventories - Components of Inventories (Details) Details 32 false false R33.htm 995477 - Disclosure - Note 3 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details) Sheet http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details Note 3 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details) Details 33 false false R34.htm 995478 - Disclosure - Note 4 - Derivative Instruments and Hedging Activities (Details Textual) Sheet http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual Note 4 - Derivative Instruments and Hedging Activities (Details Textual) Details http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-tables 34 false false R35.htm 995479 - Disclosure - Note 4 - Derivative Instruments and Hedging Activities - Summary of Gains (Losses) (Details) Sheet http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details Note 4 - Derivative Instruments and Hedging Activities - Summary of Gains (Losses) (Details) Details 35 false false R36.htm 995480 - Disclosure - Note 5 - Stockholders' Equity (Details Textual) Sheet http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual Note 5 - Stockholders' Equity (Details Textual) Details http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity 36 false false R37.htm 995481 - Disclosure - Note 6 - Share-based Compensation (Details Textual) Sheet http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual Note 6 - Share-based Compensation (Details Textual) Details http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-tables 37 false false R38.htm 995482 - Disclosure - Note 6 - Share-based Compensation - Share-based Compensation Expense (Details) Sheet http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-sharebased-compensation-expense-details Note 6 - Share-based Compensation - Share-based Compensation Expense (Details) Details 38 false false R39.htm 995483 - Disclosure - Note 6 - Share-based Compensation - RSU and PSA Activity (Details) Sheet http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details Note 6 - Share-based Compensation - RSU and PSA Activity (Details) Details 39 false false R40.htm 995484 - Disclosure - Note 7 - Commitments and Contingencies (Details Textual) Sheet http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual Note 7 - Commitments and Contingencies (Details Textual) Details http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies 40 false false R41.htm 995485 - Disclosure - Note 8 - Revenue 1 (Details Textual) Sheet http://www.nwpipe.com/20240331/role/statement-note-8-revenue-1-details-textual Note 8 - Revenue 1 (Details Textual) Details http://www.nwpipe.com/20240331/role/statement-note-8-revenue-tables 41 false false R42.htm 995486 - Disclosure - Note 8 - Revenue 2 (Details Textual) Sheet http://www.nwpipe.com/20240331/role/statement-note-8-revenue-2-details-textual Note 8 - Revenue 2 (Details Textual) Details http://www.nwpipe.com/20240331/role/statement-note-8-revenue-tables 42 false false R43.htm 995487 - Disclosure - Note 8 - Revenue - Disaggregation of Revenue (Details) Sheet http://www.nwpipe.com/20240331/role/statement-note-8-revenue-disaggregation-of-revenue-details Note 8 - Revenue - Disaggregation of Revenue (Details) Details 43 false false R44.htm 995488 - Disclosure - Note 8 - Revenue - Contract With Customer Assets and Liabilities (Details) Sheet http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details Note 8 - Revenue - Contract With Customer Assets and Liabilities (Details) Details 44 false false R45.htm 995489 - Disclosure - Note 9 - Income Taxes (Details Textual) Sheet http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes-details-textual Note 9 - Income Taxes (Details Textual) Details http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes 45 false false R46.htm 995490 - Disclosure - Note 10 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details) Sheet http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details Note 10 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details) Details 46 false false R47.htm 995491 - Disclosure - Note 10 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details) Sheet http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details Note 10 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details) Details 47 false false R48.htm 995492 - Disclosure - Note 11 - Net Income Per Share (Details Textual) Sheet http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-details-textual Note 11 - Net Income Per Share (Details Textual) Details http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-tables 48 false false R49.htm 995493 - Disclosure - Note 11 - Net Income Per Share - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details) Sheet http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details Note 11 - Net Income Per Share - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details) Details 49 false false R50.htm 995494 - Disclosure - Note 12 - Segment Information - Information Related to the Operations of the Company's Operating Segments (Details) Sheet http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details Note 12 - Segment Information - Information Related to the Operations of the Company's Operating Segments (Details) Details 50 false false All Reports Book All Reports [ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 44 fact(s) appearing in ix:hidden were eligible for transformation: dei:EntityRegistrantName, ecd:NonRule10b51ArrAdoptedFlag, ecd:NonRule10b51ArrTrmntdFlag, ecd:Rule10b51ArrAdoptedFlag, ecd:Rule10b51ArrTrmntdFlag, nwpx:NumberOfInactiveStockIncentivePlans, us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment, us-gaap:AllowanceForDoubtfulAccountsReceivable, us-gaap:CommonStockParOrStatedValuePerShare, us-gaap:CommonStockSharesAuthorized, us-gaap:CommonStockSharesIssued, us-gaap:CommonStockSharesOutstanding, us-gaap:DerivativeNotionalAmount, us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTaxParent, us-gaap:OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax, us-gaap:PreferredStockParOrStatedValuePerShare, us-gaap:PreferredStockSharesAuthorized, us-gaap:PreferredStockSharesIssued, us-gaap:PreferredStockSharesOutstanding, us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1, us-gaap:RevenueRemainingPerformanceObligationPercentage - nwpx20240331_10q.htm 8, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58 nwpx-20240331.xsd nwpx-20240331_cal.xml nwpx-20240331_def.xml nwpx-20240331_lab.xml nwpx-20240331_pre.xml nwpx20240331_10q.htm http://fasb.org/srt/2024 http://fasb.org/us-gaap/2024 http://xbrl.sec.gov/dei/2024 http://xbrl.sec.gov/ecd/2024 true true JSON 74 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "nwpx20240331_10q.htm": { "nsprefix": "nwpx", "nsuri": "http://www.nwpipe.com/20240331", "dts": { "schema": { "local": [ "nwpx-20240331.xsd" ], "remote": [ "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd", "https://xbrl.sec.gov/country/2024/country-2024.xsd", "https://xbrl.sec.gov/currency/2024/currency-2024.xsd", "https://xbrl.sec.gov/dei/2024/dei-2024.xsd", "https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd", "https://xbrl.sec.gov/exch/2024/exch-2024.xsd", "https://xbrl.sec.gov/naics/2024/naics-2024.xsd", "https://xbrl.sec.gov/sic/2024/sic-2024.xsd", "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd" ] }, "calculationLink": { "local": [ "nwpx-20240331_cal.xml" ] }, "definitionLink": { "local": [ "nwpx-20240331_def.xml" ] }, "labelLink": { "local": [ "nwpx-20240331_lab.xml" ] }, "presentationLink": { "local": [ "nwpx-20240331_pre.xml" ] }, "inline": { "local": [ "nwpx20240331_10q.htm" ] } }, "keyStandard": 188, "keyCustom": 20, "axisStandard": 20, "axisCustom": 0, "memberStandard": 28, "memberCustom": 15, "hidden": { "total": 52, "http://xbrl.sec.gov/ecd/2024": 4, "http://fasb.org/us-gaap/2024": 41, "http://xbrl.sec.gov/dei/2024": 6, "http://www.nwpipe.com/20240331": 1 }, "contextCount": 169, "entityCount": 1, "segmentCount": 43, "elementCount": 336, "unitCount": 8, "baseTaxonomies": { "http://fasb.org/us-gaap/2024": 504, "http://xbrl.sec.gov/dei/2024": 29, "http://xbrl.sec.gov/ecd/2024": 5, "http://fasb.org/srt/2024": 1 }, "report": { "R1": { "role": "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information", "longName": "000 - Document - Document And Entity Information", "shortName": "Document And Entity Information", "isDefault": "true", "groupType": "document", "subGroupType": "", "menuCat": "Cover", "order": "1", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "b", "p", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "b", "p", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R2": { "role": "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "longName": "001 - Statement - Condensed Consolidated Statements of Operations (Unaudited)", "shortName": "Condensed Consolidated Statements of Operations (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "2", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:SellingGeneralAndAdministrativeExpense", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "unique": true } }, "R3": { "role": "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "longName": "002 - Statement - Condensed Consolidated Statements of Comprehensive Income (Unaudited)", "shortName": "Condensed Consolidated Statements of Comprehensive Income (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "3", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:NetIncomeLoss", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ComprehensiveIncomeNetOfTax", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "unique": true } }, "R4": { "role": "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "longName": "003 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited)", "shortName": "Condensed Consolidated Balance Sheets (Current Period Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "4", "firstAnchor": { "contextRef": "i_2024-03-31", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2024-03-31", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R5": { "role": "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals", "longName": "004 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)", "shortName": "Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)", "isDefault": "false", "groupType": "statement", "subGroupType": "parenthetical", "menuCat": "Statements", "order": "5", "firstAnchor": null, "uniqueAnchor": null }, "R6": { "role": "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "longName": "005 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited)", "shortName": "Condensed Consolidated Statements of Stockholders' Equity (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "6", "firstAnchor": { "contextRef": "i_2022-12-31_StatementEquityComponentsAxis-CommonStockMember", "name": "us-gaap:SharesOutstanding", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2022-12-31_StatementEquityComponentsAxis-CommonStockMember", "name": "us-gaap:SharesOutstanding", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R7": { "role": "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals", "longName": "006 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited) (Parentheticals)", "shortName": "Condensed Consolidated Statements of Stockholders' Equity (Unaudited) (Parentheticals)", "isDefault": "false", "groupType": "statement", "subGroupType": "parenthetical", "menuCat": "Statements", "order": "7", "firstAnchor": null, "uniqueAnchor": null }, "R8": { "role": "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "longName": "007 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)", "shortName": "Condensed Consolidated Statements of Cash Flows (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "8", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:NetIncomeLoss", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "nwpx:DepreciationAndFinanceLeaseRightOfUseAssetAmortization", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "unique": true } }, "R9": { "role": "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation", "longName": "008 - Disclosure - Note 1 - Organization and Basis of Presentation", "shortName": "Note 1 - Organization and Basis of Presentation", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "9", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R10": { "role": "http://www.nwpipe.com/20240331/role/statement-note-2-inventories", "longName": "009 - Disclosure - Note 2 - Inventories", "shortName": "Note 2 - Inventories", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "10", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:InventoryDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:InventoryDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R11": { "role": "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements", "longName": "010 - Disclosure - Note 3 - Fair Value Measurements", "shortName": "Note 3 - Fair Value Measurements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "11", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:FairValueDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:FairValueDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R12": { "role": "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "longName": "011 - Disclosure - Note 4 - Derivative Instruments and Hedging Activities", "shortName": "Note 4 - Derivative Instruments and Hedging Activities", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "12", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R13": { "role": "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity", "longName": "012 - Disclosure - Note 5 - Stockholders' Equity", "shortName": "Note 5 - Stockholders' Equity", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "13", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R14": { "role": "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "longName": "013 - Disclosure - Note 6 - Share-based Compensation", "shortName": "Note 6 - Share-based Compensation", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "14", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R15": { "role": "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "longName": "014 - Disclosure - Note 7 - Commitments and Contingencies", "shortName": "Note 7 - Commitments and Contingencies", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "15", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R16": { "role": "http://www.nwpipe.com/20240331/role/statement-note-8-revenue", "longName": "015 - Disclosure - Note 8 - Revenue", "shortName": "Note 8 - Revenue", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "16", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R17": { "role": "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes", "longName": "016 - Disclosure - Note 9 - Income Taxes", "shortName": "Note 9 - Income Taxes", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "17", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R18": { "role": "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss", "longName": "017 - Disclosure - Note 10 - Accumulated Other Comprehensive Loss", "shortName": "Note 10 - Accumulated Other Comprehensive Loss", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "18", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ComprehensiveIncomeNoteTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ComprehensiveIncomeNoteTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R19": { "role": "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share", "longName": "018 - Disclosure - Note 11 - Net Income Per Share", "shortName": "Note 11 - Net Income Per Share", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "19", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R20": { "role": "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information", "longName": "019 - Disclosure - Note 12 - Segment Information", "shortName": "Note 12 - Segment Information", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "20", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R21": { "role": "http://www.nwpipe.com/20240331/role/statement-note-13-recent-accounting-and-reporting-developments", "longName": "020 - Disclosure - Note 13 - Recent Accounting and Reporting Developments", "shortName": "Note 13 - Recent Accounting and Reporting Developments", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "21", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R22": { "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "longName": "995445 - Disclosure - Insider Trading Arrangements", "shortName": "Insider Trading Arrangements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "22", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "ecd:MtrlTermsOfTrdArrTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "ecd:MtrlTermsOfTrdArrTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R23": { "role": "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-tables", "longName": "995467 - Disclosure - Note 2 - Inventories (Tables)", "shortName": "Note 2 - Inventories (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "23", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "nwpx:ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "nwpx:ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R24": { "role": "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-tables", "longName": "995468 - Disclosure - Note 3 - Fair Value Measurements (Tables)", "shortName": "Note 3 - Fair Value Measurements (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "24", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:FairValueDisclosuresTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:FairValueDisclosuresTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R25": { "role": "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-tables", "longName": "995469 - Disclosure - Note 4 - Derivative Instruments and Hedging Activities (Tables)", "shortName": "Note 4 - Derivative Instruments and Hedging Activities (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "25", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R26": { "role": "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-tables", "longName": "995470 - Disclosure - Note 6 - Share-based Compensation (Tables)", "shortName": "Note 6 - Share-based Compensation (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "26", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R27": { "role": "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-tables", "longName": "995471 - Disclosure - Note 8 - Revenue (Tables)", "shortName": "Note 8 - Revenue (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "27", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R28": { "role": "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-tables", "longName": "995472 - Disclosure - Note 10 - Accumulated Other Comprehensive Loss (Tables)", "shortName": "Note 10 - Accumulated Other Comprehensive Loss (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "28", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "nwpx:ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:ComprehensiveIncomeNoteTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "nwpx:ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:ComprehensiveIncomeNoteTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R29": { "role": "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-tables", "longName": "995473 - Disclosure - Note 11 - Net Income Per Share (Tables)", "shortName": "Note 11 - Net Income Per Share (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "29", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R30": { "role": "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-tables", "longName": "995474 - Disclosure - Note 12 - Segment Information (Tables)", "shortName": "Note 12 - Segment Information (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "30", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:SegmentReportingDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:SegmentReportingDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R31": { "role": "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation-details-textual", "longName": "995475 - Disclosure - Note 1 - Organization and Basis of Presentation (Details Textual)", "shortName": "Note 1 - Organization and Basis of Presentation (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "31", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:NumberOfOperatingSegments", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:NumberOfOperatingSegments", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R32": { "role": "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details", "longName": "995476 - Disclosure - Note 2 - Inventories - Components of Inventories (Details)", "shortName": "Note 2 - Inventories - Components of Inventories (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "32", "firstAnchor": { "contextRef": "i_2024-03-31", "name": "us-gaap:InventoryRawMaterialsNetOfReserves", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "nwpx:ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock", "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2024-03-31", "name": "us-gaap:InventoryRawMaterialsNetOfReserves", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "nwpx:ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock", "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R33": { "role": "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details", "longName": "995477 - Disclosure - Note 3 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details)", "shortName": "Note 3 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "33", "firstAnchor": { "contextRef": "i_2024-03-31", "name": "us-gaap:AssetsFairValueDisclosure", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "us-gaap:FairValueDisclosuresTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2024-03-31", "name": "us-gaap:AssetsFairValueDisclosure", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "us-gaap:FairValueDisclosuresTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R34": { "role": "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual", "longName": "995478 - Disclosure - Note 4 - Derivative Instruments and Hedging Activities (Details Textual)", "shortName": "Note 4 - Derivative Instruments and Hedging Activities (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "34", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R35": { "role": "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details", "longName": "995479 - Disclosure - Note 4 - Derivative Instruments and Hedging Activities - Summary of Gains (Losses) (Details)", "shortName": "Note 4 - Derivative Instruments and Hedging Activities - Summary of Gains (Losses) (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "35", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31_HedgingDesignationAxis-NondesignatedMember", "name": "us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31_HedgingDesignationAxis-NondesignatedMember", "name": "us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock", "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R36": { "role": "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual", "longName": "995480 - Disclosure - Note 5 - Stockholders' Equity (Details Textual)", "shortName": "Note 5 - Stockholders' Equity (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "36", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:StockRepurchasedAndRetiredDuringPeriodValue", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "i_2023-11-02_ShareRepurchaseProgramAxis-ShareRepurchaseProgramMember", "name": "srt:StockRepurchaseProgramAuthorizedAmount1", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-7", "ancestors": [ "p", "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "unique": true } }, "R37": { "role": "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual", "longName": "995481 - Disclosure - Note 6 - Share-based Compensation (Details Textual)", "shortName": "Note 6 - Share-based Compensation (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "37", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "nwpx:NumberOfActiveStockIncentivePlans", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "nwpx:NumberOfActiveStockIncentivePlans", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R38": { "role": "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-sharebased-compensation-expense-details", "longName": "995482 - Disclosure - Note 6 - Share-based Compensation - Share-based Compensation Expense (Details)", "shortName": "Note 6 - Share-based Compensation - Share-based Compensation Expense (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "38", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R39": { "role": "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details", "longName": "995483 - Disclosure - Note 6 - Share-based Compensation - RSU and PSA Activity (Details)", "shortName": "Note 6 - Share-based Compensation - RSU and PSA Activity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "39", "firstAnchor": { "contextRef": "i_2023-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "td", "tr", "tbody", "table", "nwpx:ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2023-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "td", "tr", "tbody", "table", "nwpx:ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R40": { "role": "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual", "longName": "995484 - Disclosure - Note 7 - Commitments and Contingencies (Details Textual)", "shortName": "Note 7 - Commitments and Contingencies (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "40", "firstAnchor": { "contextRef": "i_2024-03-31", "name": "us-gaap:LettersOfCreditOutstandingAmount", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2024-03-31", "name": "us-gaap:LettersOfCreditOutstandingAmount", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R41": { "role": "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-1-details-textual", "longName": "995485 - Disclosure - Note 8 - Revenue 1 (Details Textual)", "shortName": "Note 8 - Revenue 1 (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "41", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R42": { "role": "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-2-details-textual", "longName": "995486 - Disclosure - Note 8 - Revenue 2 (Details Textual)", "shortName": "Note 8 - Revenue 2 (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "42", "firstAnchor": null, "uniqueAnchor": null }, "R43": { "role": "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-disaggregation-of-revenue-details", "longName": "995487 - Disclosure - Note 8 - Revenue - Disaggregation of Revenue (Details)", "shortName": "Note 8 - Revenue - Disaggregation of Revenue (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "43", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "unique": true } }, "R44": { "role": "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details", "longName": "995488 - Disclosure - Note 8 - Revenue - Contract With Customer Assets and Liabilities (Details)", "shortName": "Note 8 - Revenue - Contract With Customer Assets and Liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "44", "firstAnchor": { "contextRef": "i_2023-12-31", "name": "us-gaap:ContractWithCustomerAssetNet", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2023-12-31", "name": "us-gaap:ContractWithCustomerAssetNet", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R45": { "role": "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes-details-textual", "longName": "995489 - Disclosure - Note 9 - Income Taxes (Details Textual)", "shortName": "Note 9 - Income Taxes (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "45", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "3", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R46": { "role": "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "longName": "995490 - Disclosure - Note 10 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details)", "shortName": "Note 10 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "46", "firstAnchor": { "contextRef": "i_2023-12-31", "name": "us-gaap:StockholdersEquity", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "i_2023-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember", "name": "us-gaap:StockholdersEquity", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "nwpx:ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock", "us-gaap:ComprehensiveIncomeNoteTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "unique": true } }, "R47": { "role": "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details", "longName": "995491 - Disclosure - Note 10 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details)", "shortName": "Note 10 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "47", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:CostOfGoodsAndServicesSold", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember", "name": "us-gaap:NetIncomeLoss", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock", "us-gaap:ComprehensiveIncomeNoteTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "unique": true } }, "R48": { "role": "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-details-textual", "longName": "995492 - Disclosure - Note 11 - Net Income Per Share (Details Textual)", "shortName": "Note 11 - Net Income Per Share (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "48", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "td", "tr", "tbody", "table", "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "td", "tr", "tbody", "table", "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true, "unique": true } }, "R49": { "role": "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details", "longName": "995493 - Disclosure - Note 11 - Net Income Per Share - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details)", "shortName": "Note 11 - Net Income Per Share - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "49", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:NetIncomeLoss", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "unique": true } }, "R50": { "role": "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details", "longName": "995494 - Disclosure - Note 12 - Segment Information - Information Related to the Operations of the Company's Operating Segments (Details)", "shortName": "Note 12 - Segment Information - Information Related to the Operations of the Company's Operating Segments (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "50", "firstAnchor": { "contextRef": "d_2024-01-01_2024-03-31", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-01-01_2024-03-31_ConsolidationItemsAxis-OperatingSegmentsMember", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "us-gaap:SegmentReportingDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "nwpx20240331_10q.htm", "unique": true } } }, "tag": { "us-gaap_AccountsPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsPayableCurrent", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Accounts payable", "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r40", "r705" ] }, "us-gaap_AccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccruedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Accrued liabilities", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r42" ] }, "us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedDefinedBenefitPlansAdjustmentMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "Accumulated Defined Benefit Plans Adjustment Attributable to Parent [Member]", "documentation": "Accumulated other comprehensive (income) loss related to defined benefit plans attributable to the parent." } } }, "auth_ref": [ "r2", "r3", "r9", "r16", "r56", "r739", "r740", "r741" ] }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Accumulated depreciation and amortization", "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services." } } }, "auth_ref": [ "r26", "r123", "r529" ] }, "us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedGainLossNetCashFlowHedgeParentMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "Accumulated Gain (Loss), Net, Cash Flow Hedge, Parent [Member]", "documentation": "Accumulated other comprehensive income (loss) from gain (loss) of derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness, attributable to parent." } } }, "auth_ref": [ "r137", "r144", "r145", "r439", "r660", "r739" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Accumulated other comprehensive loss", "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source." } } }, "auth_ref": [ "r15", "r16", "r57", "r128", "r526", "r557", "r560" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedOtherComprehensiveIncomeMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "AOCI Attributable to Parent [Member]", "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r1", "r9", "r16", "r448", "r451", "r497", "r553", "r554", "r739", "r740", "r741", "r747", "r748", "r749", "r750" ] }, "us-gaap_AdditionalPaidInCapitalCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdditionalPaidInCapitalCommonStock", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Additional paid-in-capital", "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital." } } }, "auth_ref": [ "r50" ] }, "us-gaap_AdditionalPaidInCapitalMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdditionalPaidInCapitalMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Additional Paid-in Capital [Member]", "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders." } } }, "auth_ref": [ "r567", "r747", "r748", "r749", "r750", "r778", "r834" ] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Share-based compensation expense", "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement." } } }, "auth_ref": [ "r31", "r32", "r375" ] }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Adjustments to reconcile net income to net cash provided by (used in) operating activities:" } } }, "auth_ref": [] }, "us-gaap_AllocatedShareBasedCompensationExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AllocatedShareBasedCompensationExpense", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-sharebased-compensation-expense-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_AllocatedShareBasedCompensationExpense", "terseLabel": "Share-based compensation expense", "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized." } } }, "auth_ref": [ "r403", "r408" ] }, "us-gaap_AllowanceForDoubtfulAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AllowanceForDoubtfulAccountsReceivable", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Allowance for doubtful accounts", "documentation": "Amount of allowance for credit loss on accounts receivable." } } }, "auth_ref": [ "r129", "r228", "r234", "r235", "r236", "r801" ] }, "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "AmendmentFlag", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Amendment Flag", "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission." } } }, "auth_ref": [] }, "us-gaap_AmortizationOfIntangibleAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AmortizationOfIntangibleAssets", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_AmortizationOfIntangibleAssets", "terseLabel": "Amortization of intangible assets", "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method." } } }, "auth_ref": [ "r7", "r248", "r249", "r675" ] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)", "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented." } } }, "auth_ref": [ "r186" ] }, "us-gaap_Assets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Assets", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_Assets", "totalLabel": "Total assets", "documentation": "Amount of asset recognized for present right to economic benefit." } } }, "auth_ref": [ "r81", "r89", "r126", "r153", "r190", "r196", "r215", "r219", "r229", "r266", "r267", "r269", "r270", "r271", "r272", "r273", "r275", "r276", "r437", "r440", "r480", "r521", "r599", "r668", "r669", "r705", "r719", "r769", "r770", "r793" ] }, "us-gaap_AssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsCurrent", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_AssetsCurrent", "totalLabel": "Total current assets", "documentation": "Amount of asset recognized for present right to economic benefit, classified as current." } } }, "auth_ref": [ "r120", "r131", "r153", "r229", "r266", "r267", "r269", "r270", "r271", "r272", "r273", "r275", "r276", "r437", "r440", "r480", "r705", "r769", "r770", "r793" ] }, "us-gaap_AssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsCurrentAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Current assets:" } } }, "auth_ref": [] }, "us-gaap_AssetsFairValueDisclosure": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsFairValueDisclosure", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" ], "lang": { "en-us": { "role": { "label": "Total financial assets", "documentation": "Fair value portion of asset recognized for present right to economic benefit." } } }, "auth_ref": [ "r461", "r462", "r697" ] }, "us-gaap_AwardTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AwardTypeAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details" ], "lang": { "en-us": { "role": { "label": "Award Type [Axis]", "documentation": "Information by type of award under share-based payment arrangement." } } }, "auth_ref": [ "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402" ] }, "us-gaap_CapitalAdditionsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CapitalAdditionsMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "Capital Addition Purchase Commitments [Member]", "documentation": "Contractual obligation to increase property, plant and equipment either through construction or future purchases." } } }, "auth_ref": [] }, "us-gaap_CapitalExpendituresIncurredButNotYetPaid": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CapitalExpendituresIncurredButNotYetPaid", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Accrued property and equipment purchases", "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred." } } }, "auth_ref": [ "r20", "r21", "r22" ] }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashAndCashEquivalentsAtCarryingValue", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Cash and cash equivalents", "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation." } } }, "auth_ref": [ "r19", "r122", "r651" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "periodStartLabel": "Cash and cash equivalents, beginning of period", "periodEndLabel": "Cash and cash equivalents, end of period", "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r19", "r69", "r151" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "totalLabel": "Change in cash and cash equivalents", "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r0", "r69" ] }, "us-gaap_CashFlowHedgeGainLossToBeReclassifiedWithinTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashFlowHedgeGainLossToBeReclassifiedWithinTwelveMonths", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_CashFlowHedgeGainLossToBeReclassifiedWithinTwelveMonths", "terseLabel": "Cash Flow Hedge Gain (Loss) to be Reclassified within 12 Months", "documentation": "The estimated net amount of existing gains or losses on cash flow hedges at the reporting date expected to be reclassified to earnings within the next 12 months." } } }, "auth_ref": [ "r38" ] }, "us-gaap_CashFlowHedgingMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashFlowHedgingMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "Cash Flow Hedging [Member]", "documentation": "Hedge of the exposure to variability in the cash flows of a recognized asset or liability, or of a forecasted transaction, that is attributable to a particular risk." } } }, "auth_ref": [ "r33" ] }, "us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Noncash investing and financing activities:" } } }, "auth_ref": [] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CityAreaCode", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "us-gaap_CommitmentsAndContingencies": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommitmentsAndContingencies", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Commitments and contingencies (Note 7)", "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur." } } }, "auth_ref": [ "r46", "r82", "r523", "r586" ] }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies" ], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies Disclosure [Text Block]", "documentation": "The entire disclosure for commitments and contingencies." } } }, "auth_ref": [ "r74", "r258", "r259", "r646", "r762", "r764" ] }, "us-gaap_CommonStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Common Stock [Member]", "documentation": "Stock that is subordinate to all other stock of the issuer." } } }, "auth_ref": [ "r708", "r709", "r710", "r712", "r713", "r714", "r717", "r747", "r748", "r750", "r778", "r832", "r834" ] }, "us-gaap_CommonStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockParOrStatedValuePerShare", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, par value (in dollars per share)", "documentation": "Face amount or stated value per share of common stock." } } }, "auth_ref": [ "r49" ] }, "us-gaap_CommonStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesAuthorized", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, shares authorized (in shares)", "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r49", "r587" ] }, "us-gaap_CommonStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesIssued", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, shares issued (in shares)", "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury." } } }, "auth_ref": [ "r49" ] }, "us-gaap_CommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesOutstanding", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, shares outstanding (in shares)", "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation." } } }, "auth_ref": [ "r10", "r49", "r587", "r605", "r834", "r835" ] }, "us-gaap_CommonStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockValue", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Common stock, $.01 par value, 15,000,000 shares authorized, 9,872,897 and 9,985,580 shares issued and outstanding as of March 31, 2024 and December 31, 2023, respectively", "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r49", "r525", "r705" ] }, "us-gaap_ComprehensiveIncomeNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ComprehensiveIncomeNetOfTax", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_ComprehensiveIncomeNetOfTax", "totalLabel": "Comprehensive income", "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r17", "r140", "r142", "r147", "r516", "r534", "r535" ] }, "us-gaap_ComprehensiveIncomeNoteTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ComprehensiveIncomeNoteTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss" ], "lang": { "en-us": { "role": { "label": "Comprehensive Income (Loss) Note [Text Block]", "documentation": "The entire disclosure for comprehensive income, which includes, but is not limited to, 1) the amount of income tax expense or benefit allocated to each component of other comprehensive income, including reclassification adjustments, 2) the reclassification adjustments for each classification of other comprehensive income and 3) the ending accumulated balances for each component of comprehensive income." } } }, "auth_ref": [ "r55", "r146", "r515", "r533" ] }, "srt_ConsolidationItemsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ConsolidationItemsAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details" ], "lang": { "en-us": { "role": { "label": "Consolidation Items [Axis]", "documentation": "Information by components, eliminations, non-segment corporate-level activity and reconciling items used in consolidating a parent entity and its subsidiaries or its operating segments." } } }, "auth_ref": [ "r87", "r97", "r103", "r104", "r105", "r106", "r107", "r108", "r109", "r110", "r111", "r157", "r190", "r198", "r213", "r214", "r215", "r216", "r217", "r219", "r220", "r221", "r266", "r267", "r268", "r269", "r271", "r272", "r273", "r274", "r275", "r668", "r669", "r734", "r735", "r769", "r770" ] }, "srt_ConsolidationItemsDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ConsolidationItemsDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details" ], "lang": { "en-us": { "role": { "label": "Consolidation Items [Domain]", "documentation": "Components, elimination, non-segment corporate-level activity and reconciling items used in consolidating a parent entity and its subsidiaries or its operating segments." } } }, "auth_ref": [ "r87", "r97", "r103", "r104", "r105", "r106", "r107", "r108", "r109", "r110", "r111", "r157", "r190", "r198", "r213", "r214", "r215", "r216", "r217", "r219", "r220", "r221", "r266", "r267", "r268", "r269", "r271", "r272", "r273", "r274", "r275", "r668", "r669", "r734", "r735", "r769", "r770" ] }, "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-tables" ], "lang": { "en-us": { "role": { "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]", "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability." } } }, "auth_ref": [ "r773" ] }, "nwpx_ContractWithCustomerAssetBillings": { "xbrltype": "monetaryItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ContractWithCustomerAssetBillings", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details" ], "lang": { "en-us": { "role": { "label": "Contract With Customer, Asset, Billings", "documentation": "Represents billings portion of the contract with customer, asset." } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerAssetNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerAssetNet", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerAssetNet", "periodStartLabel": "Balance, beginning of period", "periodEndLabel": "Balance, end of period", "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time." } } }, "auth_ref": [ "r294", "r296", "r307" ] }, "us-gaap_ContractWithCustomerAssetNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerAssetNetCurrent", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Contract assets", "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current." } } }, "auth_ref": [ "r294", "r296", "r307" ] }, "nwpx_ContractWithCustomerAssetOther": { "xbrltype": "monetaryItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ContractWithCustomerAssetOther", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details" ], "lang": { "en-us": { "role": { "label": "Contract With Customer, Asset, Other", "documentation": "Represents the other portion of contract with customer, asset." } } }, "auth_ref": [] }, "nwpx_ContractWithCustomerAssetRevenueRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ContractWithCustomerAssetRevenueRecognized", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details" ], "lang": { "en-us": { "role": { "label": "Revenue recognized in advance of billings", "documentation": "Represents the revenue recognized in contract with customer, asset." } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerLiability", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerLiability", "periodStartLabel": "Balance, beginning of period", "periodEndLabel": "Balance, end of period", "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable." } } }, "auth_ref": [ "r294", "r295", "r307" ] }, "nwpx_ContractWithCustomerLiabilityBillings": { "xbrltype": "monetaryItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ContractWithCustomerLiabilityBillings", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details" ], "lang": { "en-us": { "role": { "label": "Contract With Customer, Liability, Billings", "documentation": "Represents the billings portion of the contract with customer liability." } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-1-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInEstimateOfTransactionPrice", "terseLabel": "Contract with Customer, Liability, Cumulative Catch-up Adjustment to Revenue, Change in Estimate of Transaction Price", "documentation": "Amount of increase (decrease) in revenue recognized for cumulative catch-up adjustment from change in estimate of transaction price which (increases) decreases obligation to transfer good or service to customer for which consideration from customer has been received or is due. Includes, but is not limited to, change in assessment of whether estimate of variable consideration is constrained." } } }, "auth_ref": [ "r682" ] }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerLiabilityCurrent", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Contract liabilities", "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current." } } }, "auth_ref": [ "r294", "r295", "r307" ] }, "nwpx_ContractWithCustomerLiabilityOther": { "xbrltype": "monetaryItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ContractWithCustomerLiabilityOther", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details" ], "lang": { "en-us": { "role": { "label": "Contract With Customer, Liability, Other", "documentation": "Represents the other portion of contract with customer, liability." } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerLiabilityRevenueRecognized", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details" ], "lang": { "en-us": { "role": { "label": "Revenue recognized", "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due." } } }, "auth_ref": [ "r308" ] }, "us-gaap_CostOfGoodsAndServicesSold": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CostOfGoodsAndServicesSold", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_GrossProfit", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "Cost of sales", "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities." } } }, "auth_ref": [ "r60", "r61", "r508" ] }, "us-gaap_CostOfSalesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CostOfSalesMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-sharebased-compensation-expense-details" ], "lang": { "en-us": { "role": { "label": "Cost of Sales [Member]", "documentation": "Primary financial statement caption encompassing cost of sales." } } }, "auth_ref": [] }, "srt_CounterpartyNameAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "CounterpartyNameAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "Counterparty Name [Axis]", "documentation": "Information by name of counterparty. A counterparty is the other party that participates in a financial transaction. Examples include, but not limited to, the name of the financial institution." } } }, "auth_ref": [ "r112", "r113", "r155", "r156", "r277", "r282", "r500", "r506", "r520", "r657", "r659" ] }, "dei_CurrentFiscalYearEndDate": { "xbrltype": "gMonthDayItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CurrentFiscalYearEndDate", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Current Fiscal Year End Date", "documentation": "End date of current fiscal year in the format --MM-DD." } } }, "auth_ref": [] }, "us-gaap_DeferredCompensationPlanAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredCompensationPlanAssets", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" ], "lang": { "en-us": { "role": { "label": "Deferred compensation plan", "documentation": "Carrying amount as of the balance sheet date of assets held under deferred compensation agreements." } } }, "auth_ref": [ "r737" ] }, "nwpx_DeferredCompensationPlanMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "DeferredCompensationPlanMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" ], "lang": { "en-us": { "role": { "label": "Deferred Compensation Plan [Member]", "documentation": "Represents deferred compensation plan." } } }, "auth_ref": [] }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredIncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Deferred income taxes", "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations." } } }, "auth_ref": [ "r7", "r93", "r746" ] }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredIncomeTaxLiabilitiesNet", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredIncomeTaxLiabilitiesNet", "terseLabel": "Deferred income taxes", "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting." } } }, "auth_ref": [ "r411", "r412", "r522" ] }, "nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "DepreciationAndFinanceLeaseRightOfUseAssetAmortization", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 10.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Depreciation and finance lease amortization", "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 and amount of amortization expense attributable to right-of-use asset from finance lease." } } }, "auth_ref": [] }, "us-gaap_DerivativeAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeAssets", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_DerivativeAssets", "terseLabel": "Derivative assets", "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other 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 assets not subject to a master netting arrangement and not elected to be offset." } } }, "auth_ref": [ "r132", "r133", "r461", "r462", "r472", "r479", "r569", "r570", "r571", "r572", "r573", "r574", "r575", "r576", "r577", "r578", "r593", "r594", "r634", "r637", "r640", "r641", "r642", "r643", "r659", "r697", "r700", "r710", "r781", "r782", "r783", "r833" ] }, "us-gaap_DerivativeContractTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeContractTypeDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details" ], "lang": { "en-us": { "role": { "label": "Derivative Contract [Domain]", "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." } } }, "auth_ref": [ "r576", "r578", "r592", "r593", "r594", "r595", "r596", "r597", "r598", "r600", "r601", "r602", "r603", "r613", "r614", "r615", "r616", "r619", "r620", "r621", "r622", "r634", "r635", "r640", "r642", "r708", "r710", "r784", "r785", "r786", "r787", "r788", "r789", "r790", "r791" ] }, "us-gaap_DerivativeFixedInterestRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeFixedInterestRate", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_DerivativeFixedInterestRate", "terseLabel": "Derivative, Fixed Interest Rate", "documentation": "Fixed interest rate related to the interest rate derivative." } } }, "auth_ref": [] }, "us-gaap_DerivativeInstrumentRiskAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeInstrumentRiskAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details" ], "lang": { "en-us": { "role": { "label": "Derivative Instrument [Axis]", "documentation": "Information by type of derivative contract." } } }, "auth_ref": [ "r34", "r35", "r37", "r80", "r576", "r578", "r592", "r593", "r594", "r595", "r596", "r597", "r598", "r600", "r601", "r602", "r603", "r613", "r614", "r615", "r616", "r619", "r620", "r621", "r622", "r634", "r635", "r640", "r642", "r659", "r708", "r710", "r784", "r785", "r786", "r787", "r788", "r789", "r790", "r791" ] }, "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities" ], "lang": { "en-us": { "role": { "label": "Derivative Instruments and Hedging Activities Disclosure [Text Block]", "documentation": "The entire disclosure for derivative instruments and hedging activities including, but not limited to, risk management strategies, non-hedging derivative instruments, assets, liabilities, revenue and expenses, and methodologies and assumptions used in determining the amounts." } } }, "auth_ref": [ "r79", "r445", "r454" ] }, "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "Hedging Relationship [Axis]", "documentation": "Information by type of hedging relationship." } } }, "auth_ref": [ "r11", "r34", "r35" ] }, "us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details" ], "lang": { "en-us": { "role": { "verboseLabel": "Gains (losses) recognized on derivatives", "label": "us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet", "documentation": "Amount of realized and unrealized gain (loss) of derivative instruments not designated or qualifying as hedging instruments." } } }, "auth_ref": [ "r36", "r733" ] }, "us-gaap_DerivativeLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeLiabilities", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_DerivativeLiabilities", "negatedTerseLabel": "Foreign currency forward contracts", "documentation": "Fair value, after the 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 not subject to a master netting arrangement and not elected to be offset." } } }, "auth_ref": [ "r132", "r133", "r461", "r462", "r472", "r479", "r569", "r570", "r571", "r572", "r574", "r575", "r576", "r577", "r578", "r600", "r602", "r603", "r635", "r636", "r637", "r640", "r641", "r642", "r643", "r659", "r781", "r782", "r783", "r833" ] }, "us-gaap_DerivativeNotionalAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DerivativeNotionalAmount", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_DerivativeNotionalAmount", "terseLabel": "Derivative, Notional Amount", "documentation": "Nominal or face amount used to calculate payment on derivative." } } }, "auth_ref": [ "r776", "r777" ] }, "us-gaap_DesignatedAsHedgingInstrumentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DesignatedAsHedgingInstrumentMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "Designated as Hedging Instrument [Member]", "documentation": "Derivative instrument designated as hedging instrument under Generally Accepted Accounting Principles (GAAP)." } } }, "auth_ref": [ "r11" ] }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisaggregationOfRevenueTableTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-tables" ], "lang": { "en-us": { "role": { "label": "Disaggregation of Revenue [Table Text Block]", "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor." } } }, "auth_ref": [ "r774" ] }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement [Text Block]", "documentation": "The entire disclosure for share-based payment arrangement." } } }, "auth_ref": [ "r374", "r376", "r404", "r405", "r407", "r695" ] }, "us-gaap_DisclosureTextBlockAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisclosureTextBlockAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information", "http://www.nwpipe.com/20240331/role/statement-note-13-recent-accounting-and-reporting-developments", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue", "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes" ], "lang": { "en-us": { "role": { "label": "us-gaap_DisclosureTextBlockAbstract", "terseLabel": "Notes to Financial Statements" } } }, "auth_ref": [] }, "dei_DocumentFiscalPeriodFocus": { "xbrltype": "fiscalPeriodItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentFiscalPeriodFocus", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Period Focus", "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY." } } }, "auth_ref": [] }, "dei_DocumentFiscalYearFocus": { "xbrltype": "gYearItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentFiscalYearFocus", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Year Focus", "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006." } } }, "auth_ref": [] }, "dei_DocumentInformationLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentInformationLineItems", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Information [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "dei_DocumentInformationTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentInformationTable", "lang": { "en-us": { "role": { "label": "Document Information [Table]", "documentation": "Container to support the formal attachment of each official or unofficial, public or private document as part of a submission package." } } }, "auth_ref": [] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentPeriodEndDate", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Period End Date", "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD." } } }, "auth_ref": [] }, "dei_DocumentQuarterlyReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentQuarterlyReport", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Quarterly Report", "documentation": "Boolean flag that is true only for a form used as an quarterly report." } } }, "auth_ref": [ "r723" ] }, "dei_DocumentTransitionReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentTransitionReport", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Transition Report", "documentation": "Boolean flag that is true only for a form used as a transition report." } } }, "auth_ref": [ "r724" ] }, "dei_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentType", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Type", "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'." } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_EarningsPerShareAbstract", "terseLabel": "Net income per share:" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareBasic": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareBasic", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" ], "lang": { "en-us": { "role": { "label": "Basic (in dollars per share)", "terseLabel": "Basic (in dollars per share)", "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period." } } }, "auth_ref": [ "r148", "r167", "r168", "r169", "r170", "r171", "r172", "r179", "r181", "r183", "r184", "r185", "r189", "r433", "r436", "r458", "r459", "r517", "r536", "r661" ] }, "us-gaap_EarningsPerShareDiluted": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareDiluted", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" ], "lang": { "en-us": { "role": { "label": "Diluted (in dollars per share)", "terseLabel": "Diluted (in dollars per share)", "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period." } } }, "auth_ref": [ "r148", "r167", "r168", "r169", "r170", "r171", "r172", "r181", "r183", "r184", "r185", "r189", "r433", "r436", "r458", "r459", "r517", "r536", "r661" ] }, "us-gaap_EarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Text Block]", "documentation": "The entire disclosure for earnings per share." } } }, "auth_ref": [ "r178", "r186", "r187", "r188" ] }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EffectiveIncomeTaxRateContinuingOperations", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "terseLabel": "Effective Income Tax Rate Reconciliation, Percent", "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r414", "r696" ] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "terseLabel": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)", "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." } } }, "auth_ref": [ "r406" ] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions", "terseLabel": "Share-Based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount", "documentation": "Amount of cost to be recognized for nonvested award under share-based payment arrangement. Excludes share and unit options." } } }, "auth_ref": [ "r775" ] }, "nwpx_EngineeredSteelPressurePipeMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "EngineeredSteelPressurePipeMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details" ], "lang": { "en-us": { "role": { "label": "Engineered Steel Pressure Pipe [Member]", "documentation": "Represents Engineered Steel Pressure Pipe segment." } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressAddressLine1", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Address, Address Line One", "documentation": "Address Line 1 such as Attn, Building Name, Street Name" } } }, "auth_ref": [] }, "dei_EntityAddressCityOrTown": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressCityOrTown", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Address, City or Town", "documentation": "Name of the City or Town" } } }, "auth_ref": [] }, "dei_EntityAddressPostalZipCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Address, Postal Zip Code", "documentation": "Code for the postal or zip code" } } }, "auth_ref": [] }, "dei_EntityAddressStateOrProvince": { "xbrltype": "stateOrProvinceItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Address, State or Province", "documentation": "Name of the state or province." } } }, "auth_ref": [] }, "dei_EntityCentralIndexKey": { "xbrltype": "centralIndexKeyItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCentralIndexKey", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Central Index Key", "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK." } } }, "auth_ref": [ "r721" ] }, "dei_EntityCommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCommonStockSharesOutstanding", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Common Stock, Shares Outstanding", "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument." } } }, "auth_ref": [] }, "dei_EntityCurrentReportingStatus": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCurrentReportingStatus", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Current Reporting Status", "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [] }, "dei_EntityDomain": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information", "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation", "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-tables", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-tables", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-tables", "http://www.nwpipe.com/20240331/role/statement-note-13-recent-accounting-and-reporting-developments", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-tables", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-tables", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-tables", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-sharebased-compensation-expense-details", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-tables", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-1-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-2-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-disaggregation-of-revenue-details", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-tables", "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes", "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes-details-textual" ], "lang": { "en-us": { "role": { "label": "Entity [Domain]", "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." } } }, "auth_ref": [] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Emerging Growth Company", "documentation": "Indicate if registrant meets the emerging growth company criteria." } } }, "auth_ref": [ "r721" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityFileNumber", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity File Number", "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen." } } }, "auth_ref": [] }, "dei_EntityFilerCategory": { "xbrltype": "filerCategoryItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityFilerCategory", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Filer Category", "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [ "r721" ] }, "dei_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Incorporation, State or Country Code", "documentation": "Two-character EDGAR code representing the state or country of incorporation." } } }, "auth_ref": [] }, "dei_EntityInteractiveDataCurrent": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityInteractiveDataCurrent", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Interactive Data Current", "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)." } } }, "auth_ref": [ "r727" ] }, "dei_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityRegistrantName", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Registrant Name", "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC." } } }, "auth_ref": [ "r721" ] }, "dei_EntityShellCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityShellCompany", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Shell Company", "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act." } } }, "auth_ref": [ "r721" ] }, "dei_EntitySmallBusiness": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntitySmallBusiness", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Small Business", "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)." } } }, "auth_ref": [ "r721" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Tax Identification Number", "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS." } } }, "auth_ref": [ "r721" ] }, "us-gaap_EnvironmentalRemediationSiteAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EnvironmentalRemediationSiteAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "Environmental Remediation Site [Axis]", "documentation": "Information by location or named area designated for environmental remediation." } } }, "auth_ref": [ "r676", "r677", "r728", "r729", "r730", "r767", "r768" ] }, "us-gaap_EnvironmentalRemediationSiteDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EnvironmentalRemediationSiteDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "Environmental Remediation Site [Domain]", "documentation": "Location or named area designated for environmental remediation." } } }, "auth_ref": [ "r676", "r677", "r728", "r729", "r730", "r767", "r768" ] }, "us-gaap_EquityComponentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityComponentDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "Equity Component [Domain]", "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc." } } }, "auth_ref": [ "r10", "r116", "r143", "r144", "r145", "r158", "r159", "r160", "r164", "r171", "r173", "r175", "r191", "r230", "r233", "r251", "r293", "r421", "r422", "r428", "r429", "r430", "r434", "r435", "r436", "r447", "r448", "r449", "r450", "r451", "r453", "r457", "r481", "r482", "r483", "r484", "r485", "r486", "r488", "r489", "r497", "r533", "r553", "r554", "r555", "r567", "r625" ] }, "nwpx_EstimatedCostOfEPASelectedRemedy": { "xbrltype": "monetaryItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "EstimatedCostOfEPASelectedRemedy", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "nwpx_EstimatedCostOfEPASelectedRemedy", "terseLabel": "Estimated Cost of EPA Selected Remedy", "documentation": "The estimated cost of the remedy selected by EPA." } } }, "auth_ref": [] }, "nwpx_EstimatedTimeToCompleteSelectedEPARemedy": { "xbrltype": "durationItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "EstimatedTimeToCompleteSelectedEPARemedy", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "nwpx_EstimatedTimeToCompleteSelectedEPARemedy", "terseLabel": "Estimated Time to Complete Selected EPA Remedy (Year)", "documentation": "The estimated amount of time to complete the selected EPA remedy." } } }, "auth_ref": [] }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueByFairValueHierarchyLevelAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" ], "lang": { "en-us": { "role": { "label": "Fair Value Hierarchy and NAV [Axis]", "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient." } } }, "auth_ref": [ "r278", "r334", "r335", "r336", "r337", "r338", "r339", "r460", "r462", "r463", "r464", "r465", "r471", "r472", "r474", "r501", "r502", "r503", "r679", "r680", "r684", "r685", "r686", "r697", "r700" ] }, "us-gaap_FairValueDisclosuresTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueDisclosuresTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements" ], "lang": { "en-us": { "role": { "label": "Fair Value Disclosures [Text Block]", "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information." } } }, "auth_ref": [ "r467", "r469", "r470", "r471", "r474", "r475", "r476", "r477", "r478", "r513", "r697", "r701" ] }, "us-gaap_FairValueInputsLevel1Member": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueInputsLevel1Member", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" ], "lang": { "en-us": { "role": { "label": "Fair Value, Inputs, Level 1 [Member]", "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date." } } }, "auth_ref": [ "r278", "r334", "r339", "r462", "r472", "r501", "r684", "r685", "r686", "r697" ] }, "us-gaap_FairValueInputsLevel2Member": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueInputsLevel2Member", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" ], "lang": { "en-us": { "role": { "label": "Fair Value, Inputs, Level 2 [Member]", "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets." } } }, "auth_ref": [ "r278", "r334", "r339", "r462", "r463", "r472", "r502", "r679", "r680", "r684", "r685", "r686", "r697" ] }, "us-gaap_FairValueInputsLevel3Member": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueInputsLevel3Member", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" ], "lang": { "en-us": { "role": { "label": "Fair Value, Inputs, Level 3 [Member]", "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing." } } }, "auth_ref": [ "r278", "r334", "r335", "r336", "r337", "r338", "r339", "r462", "r463", "r464", "r465", "r472", "r503", "r679", "r680", "r684", "r685", "r686", "r697", "r700" ] }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueMeasurementsFairValueHierarchyDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" ], "lang": { "en-us": { "role": { "label": "Fair Value Hierarchy and NAV [Domain]", "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value." } } }, "auth_ref": [ "r278", "r334", "r335", "r336", "r337", "r338", "r339", "r460", "r462", "r463", "r464", "r465", "r471", "r472", "r474", "r501", "r502", "r503", "r679", "r680", "r684", "r685", "r686", "r697", "r700" ] }, "us-gaap_FinanceLeasePrincipalPayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeasePrincipalPayments", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_FinanceLeasePrincipalPayments", "negatedLabel": "Payments on finance lease obligations", "documentation": "Amount of cash outflow for principal payment on finance lease." } } }, "auth_ref": [ "r492", "r493" ] }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FiniteLivedIntangibleAssetsNet", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Intangible assets, net", "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r509", "r761" ] }, "nwpx_ForeignExchangeForward1Member": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ForeignExchangeForward1Member", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "Foreign Exchange Forward 1 [Member]", "documentation": "Represents one forward exchange forward contract" } } }, "auth_ref": [] }, "us-gaap_ForeignExchangeForwardMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ForeignExchangeForwardMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details" ], "lang": { "en-us": { "role": { "label": "Foreign Exchange Forward [Member]", "documentation": "Foreign exchange forward traded on an exchange (examples include but are not limited to the International Securities Exchange, Philadelphia Stock Exchange, or the Chicago Mercantile Exchange) for options or future contracts to buy or sell a certain currency, at a specified date, at a fixed exercise exchange rate." } } }, "auth_ref": [ "r593", "r597", "r602", "r615", "r621", "r638", "r639", "r640", "r710" ] }, "us-gaap_Goodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Goodwill", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Goodwill", "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized." } } }, "auth_ref": [ "r124", "r238", "r514", "r669", "r674", "r698", "r705", "r759", "r760" ] }, "us-gaap_GrossProfit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GrossProfit", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details" ], "lang": { "en-us": { "role": { "label": "Gross profit", "totalLabel": "Gross profit", "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity." } } }, "auth_ref": [ "r58", "r62", "r88", "r153", "r229", "r266", "r267", "r269", "r270", "r271", "r272", "r273", "r275", "r276", "r480", "r663", "r668", "r752", "r754", "r755", "r756", "r757", "r769" ] }, "us-gaap_HedgingDesignationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "HedgingDesignationAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details" ], "lang": { "en-us": { "role": { "label": "Hedging Designation [Axis]", "documentation": "Information by designation of purpose of derivative instrument." } } }, "auth_ref": [ "r11", "r444" ] }, "us-gaap_HedgingDesignationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "HedgingDesignationDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details" ], "lang": { "en-us": { "role": { "label": "Hedging Designation [Domain]", "documentation": "Designation of purpose of derivative instrument." } } }, "auth_ref": [ "r11" ] }, "us-gaap_HedgingRelationshipDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "HedgingRelationshipDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "Hedging Relationship [Domain]", "documentation": "Nature or intent of a hedge." } } }, "auth_ref": [ "r11" ] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "totalLabel": "Income before income taxes", "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest." } } }, "auth_ref": [ "r59", "r84", "r88", "r518", "r531", "r663", "r668", "r752", "r754", "r755", "r756", "r757" ] }, "us-gaap_IncomeStatementAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeStatementAbstract", "lang": { "en-us": { "role": { "label": "Income Statement [Abstract]" } } }, "auth_ref": [] }, "us-gaap_IncomeStatementLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeStatementLocationAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-sharebased-compensation-expense-details" ], "lang": { "en-us": { "role": { "label": "Statement of Income Location, Balance [Axis]", "documentation": "Information by location in statement of income where disaggregated amount has been reported." } } }, "auth_ref": [ "r252", "r254", "r255", "r466", "r468", "r473", "r550", "r552", "r610", "r649", "r699", "r803" ] }, "us-gaap_IncomeStatementLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeStatementLocationDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-sharebased-compensation-expense-details" ], "lang": { "en-us": { "role": { "label": "Statement of Income Location, Balance [Domain]", "documentation": "Location in statement of income where disaggregated amount has been reported." } } }, "auth_ref": [ "r254", "r255", "r466", "r468", "r473", "r550", "r552", "r610", "r649", "r699", "r803" ] }, "us-gaap_IncomeTaxDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxDisclosureTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes" ], "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Text Block]", "documentation": "The entire disclosure for income tax." } } }, "auth_ref": [ "r154", "r410", "r414", "r415", "r416", "r417", "r419", "r420", "r423", "r425", "r426", "r427", "r566", "r696" ] }, "us-gaap_IncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "Income tax expense", "negatedLabel": "Tax (expense) benefit", "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r90", "r94", "r174", "r175", "r190", "r204", "r219", "r413", "r414", "r424", "r537", "r696" ] }, "us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccountsAndOtherReceivables", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 7.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables", "negatedTerseLabel": "Trade and other receivables", "documentation": "The increase (decrease) during the reporting period in the amount due from customers for the credit sale of goods and services; includes accounts receivable and other types of receivables." } } }, "auth_ref": [ "r6" ] }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccountsPayable", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInAccountsPayable", "terseLabel": "Accounts payable", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business." } } }, "auth_ref": [ "r6" ] }, "us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities", "terseLabel": "Accrued and other liabilities", "documentation": "Amount of increase (decrease) in accrued expenses, and obligations classified as other." } } }, "auth_ref": [ "r743" ] }, "us-gaap_IncreaseDecreaseInContractWithCustomerAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInContractWithCustomerAsset", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 9.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInContractWithCustomerAsset", "negatedLabel": "Contract assets, net", "documentation": "Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time." } } }, "auth_ref": [ "r743" ] }, "us-gaap_IncreaseDecreaseInInventories": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInInventories", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 11.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInInventories", "negatedTerseLabel": "Inventories", "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities." } } }, "auth_ref": [ "r6" ] }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Changes in operating assets and liabilities:" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "negatedTerseLabel": "Prepaid expenses and other assets", "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other." } } }, "auth_ref": [ "r6" ] }, "ecd_InsiderTradingArrLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTradingArrLineItems", "auth_ref": [ "r725" ] }, "us-gaap_InterestExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InterestExpense", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "Gain on cash flow hedges", "negatedLabel": "Interest expense", "documentation": "Amount of interest expense classified as operating and nonoperating. Includes, but is not limited to, cost of borrowing accounted for as interest expense." } } }, "auth_ref": [ "r190", "r196", "r200", "r206", "r219", "r487", "r668", "r669" ] }, "us-gaap_InterestExpenseMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InterestExpenseMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details" ], "lang": { "en-us": { "role": { "label": "Interest Expense [Member]", "documentation": "Primary financial statement caption encompassing interest expense." } } }, "auth_ref": [ "r12" ] }, "us-gaap_InterestRateSwapMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InterestRateSwapMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details" ], "lang": { "en-us": { "role": { "label": "Interest Rate Swap [Member]", "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." } } }, "auth_ref": [ "r650", "r715", "r716" ] }, "us-gaap_InventoryDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryDisclosureTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-2-inventories" ], "lang": { "en-us": { "role": { "label": "Inventory Disclosure [Text Block]", "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory." } } }, "auth_ref": [ "r237" ] }, "us-gaap_InventoryFinishedGoodsNetOfReserves": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryFinishedGoodsNetOfReserves", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details": { "parentTag": "us-gaap_InventoryNet", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details" ], "lang": { "en-us": { "role": { "label": "Finished goods", "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale." } } }, "auth_ref": [ "r73", "r653" ] }, "us-gaap_InventoryNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryNet", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 3.0 }, "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details" ], "lang": { "en-us": { "role": { "label": "Inventories", "totalLabel": "Total inventories", "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer." } } }, "auth_ref": [ "r130", "r652", "r705" ] }, "us-gaap_InventoryRawMaterialsNetOfReserves": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryRawMaterialsNetOfReserves", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details": { "parentTag": "us-gaap_InventoryNet", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details" ], "lang": { "en-us": { "role": { "label": "Raw materials", "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process." } } }, "auth_ref": [ "r73", "r655" ] }, "us-gaap_InventorySuppliesNetOfReserves": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventorySuppliesNetOfReserves", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details": { "parentTag": "us-gaap_InventoryNet", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details" ], "lang": { "en-us": { "role": { "label": "Supplies", "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of products used directly or indirectly in the manufacturing or production process, which may or may not become part of the final product. May also include items used in the storage, presentation or transportation of physical goods." } } }, "auth_ref": [ "r73", "r656" ] }, "us-gaap_InventoryWorkInProcessNetOfReserves": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryWorkInProcessNetOfReserves", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details": { "parentTag": "us-gaap_InventoryNet", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details" ], "lang": { "en-us": { "role": { "label": "Work-in-process", "documentation": "Carrying amount, net of reserves and adjustments, as of the balance sheet date of merchandise or goods which are partially completed. This inventory is generally comprised of raw materials, labor and factory overhead costs, which require further materials, labor and overhead to be converted into finished goods, and which generally require the use of estimates to determine percentage complete and pricing." } } }, "auth_ref": [ "r73", "r654" ] }, "dei_LegalEntityAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "LegalEntityAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information", "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation", "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-tables", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-tables", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-tables", "http://www.nwpipe.com/20240331/role/statement-note-13-recent-accounting-and-reporting-developments", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-tables", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-tables", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-tables", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-sharebased-compensation-expense-details", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-tables", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-1-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-2-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-disaggregation-of-revenue-details", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-tables", "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes", "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes-details-textual" ], "lang": { "en-us": { "role": { "label": "Legal Entity [Axis]", "documentation": "The set of legal entities associated with a report." } } }, "auth_ref": [] }, "us-gaap_LettersOfCreditOutstandingAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LettersOfCreditOutstandingAmount", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LettersOfCreditOutstandingAmount", "terseLabel": "Letters of Credit Outstanding, Amount", "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date." } } }, "auth_ref": [] }, "us-gaap_Liabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Liabilities", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_Liabilities", "totalLabel": "Total liabilities", "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others." } } }, "auth_ref": [ "r14", "r41", "r42", "r43", "r44", "r45", "r46", "r47", "r153", "r229", "r266", "r267", "r269", "r270", "r271", "r272", "r273", "r275", "r276", "r438", "r440", "r441", "r480", "r585", "r662", "r719", "r769", "r793", "r794" ] }, "us-gaap_LiabilitiesAndStockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesAndStockholdersEquity", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_LiabilitiesAndStockholdersEquity", "totalLabel": "Total liabilities and stockholders\u2019 equity", "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any." } } }, "auth_ref": [ "r54", "r83", "r528", "r705", "r745", "r758", "r792" ] }, "us-gaap_LiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_LiabilitiesCurrent", "totalLabel": "Total current liabilities", "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer." } } }, "auth_ref": [ "r43", "r121", "r153", "r229", "r266", "r267", "r269", "r270", "r271", "r272", "r273", "r275", "r276", "r438", "r440", "r441", "r480", "r705", "r769", "r793", "r794" ] }, "us-gaap_LiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesCurrentAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Current liabilities:" } } }, "auth_ref": [] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "LocalPhoneNumber", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "us-gaap_LongTermDebtCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtCurrent", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Current debt", "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as current. Excludes lease obligation." } } }, "auth_ref": [ "r127" ] }, "us-gaap_LongTermLineOfCredit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermLineOfCredit", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Borrowings on line of credit", "documentation": "The carrying value as of the balance sheet date of the noncurrent portion of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement." } } }, "auth_ref": [ "r14", "r27", "r28" ] }, "us-gaap_LossContingenciesByNatureOfContingencyAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LossContingenciesByNatureOfContingencyAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "Loss Contingency Nature [Axis]", "documentation": "Information by type of existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur." } } }, "auth_ref": [ "r260", "r261", "r262", "r265", "r409", "r561", "r678", "r765", "r766" ] }, "us-gaap_LossContingencyAccrualCarryingValueCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LossContingencyAccrualCarryingValueCurrent", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LossContingencyAccrualCarryingValueCurrent", "terseLabel": "Loss Contingency, Accrual, Current", "documentation": "Amount of loss contingency liability expected to be resolved within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r260" ] }, "us-gaap_LossContingencyNatureDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LossContingencyNatureDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "Loss Contingency, Nature [Domain]", "documentation": "An existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur. Resolution of the uncertainty may confirm the incurrence of a loss or impairment of an asset or the incurrence of a liability." } } }, "auth_ref": [ "r260", "r261", "r262", "r265", "r409", "r561", "r678", "r765", "r766" ] }, "nwpx_LowerWillametteGroupMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "LowerWillametteGroupMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "Lower Willamette Group [Member]", "documentation": "Refers to information regarding the Lower Willamette Group." } } }, "auth_ref": [] }, "srt_MaximumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MaximumMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]", "documentation": "Upper limit of the provided range." } } }, "auth_ref": [ "r98", "r99", "r100", "r101", "r102", "r114", "r115", "r261", "r262", "r263", "r264", "r372", "r409", "r465", "r507", "r549", "r551", "r561", "r577", "r578", "r630", "r631", "r632", "r633", "r644", "r647", "r648", "r673", "r681", "r694", "r700", "r701", "r702", "r703", "r706", "r771", "r795", "r796", "r797", "r798", "r799", "r800" ] }, "srt_MinimumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MinimumMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]", "documentation": "Lower limit of the provided range." } } }, "auth_ref": [ "r98", "r99", "r100", "r101", "r102", "r114", "r115", "r261", "r262", "r263", "r264", "r372", "r409", "r465", "r507", "r549", "r551", "r561", "r577", "r578", "r630", "r631", "r632", "r633", "r644", "r647", "r648", "r673", "r681", "r694", "r700", "r701", "r702", "r706", "r771", "r795", "r796", "r797", "r798", "r799", "r800" ] }, "ecd_MtrlTermsOfTrdArrTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MtrlTermsOfTrdArrTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Material Terms of Trading Arrangement [Text Block]" } } }, "auth_ref": [ "r726" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInFinancingActivities", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "totalLabel": "Net cash provided by (used in) financing activities", "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit." } } }, "auth_ref": [ "r150" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Cash flows from financing activities:" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInInvestingActivities", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "totalLabel": "Net cash used in investing activities", "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets." } } }, "auth_ref": [ "r150" ] }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Cash flows from investing activities:" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInOperatingActivities", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "totalLabel": "Net cash provided by (used in) operating activities", "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities." } } }, "auth_ref": [ "r69", "r70", "r71" ] }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Cash flows from operating activities:" } } }, "auth_ref": [] }, "us-gaap_NetIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetIncomeLoss", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 0.0 }, "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 8.0 }, "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" ], "lang": { "en-us": { "role": { "label": "Net income", "totalLabel": "Net income", "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent." } } }, "auth_ref": [ "r63", "r71", "r85", "r119", "r138", "r141", "r145", "r153", "r163", "r167", "r168", "r169", "r170", "r171", "r174", "r175", "r182", "r229", "r266", "r267", "r269", "r270", "r271", "r272", "r273", "r275", "r276", "r433", "r436", "r459", "r480", "r532", "r607", "r623", "r624", "r718", "r769" ] }, "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-13-recent-accounting-and-reporting-developments" ], "lang": { "en-us": { "role": { "label": "Accounting Standards Update and Change in Accounting Principle [Text Block]", "documentation": "The entire disclosure for change in accounting principle. Includes, but is not limited to, nature, reason, and method of adopting amendment to accounting standards or other change in accounting principle." } } }, "auth_ref": [ "r95", "r117", "r161", "r162", "r165", "r166", "r176", "r177", "r226", "r231", "r232", "r431", "r432", "r434", "r436", "r452", "r456", "r496", "r498", "r499", "r510", "r511", "r512", "r556", "r557", "r558", "r559", "r560" ] }, "ecd_NonRule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonRule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "ecd_NonRule10b51ArrAdoptedFlag", "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted [Flag]" } } }, "auth_ref": [ "r726" ] }, "ecd_NonRule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonRule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "ecd_NonRule10b51ArrTrmntdFlag", "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated [Flag]" } } }, "auth_ref": [ "r726" ] }, "us-gaap_NondesignatedMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NondesignatedMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details" ], "lang": { "en-us": { "role": { "label": "Not Designated as Hedging Instrument [Member]", "documentation": "Derivative instrument not designated as hedging instrument under Generally Accepted Accounting Principles (GAAP)." } } }, "auth_ref": [ "r11" ] }, "nwpx_NoteToFinancialStatementDetailsTextual": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "NoteToFinancialStatementDetailsTextual", "lang": { "en-us": { "role": { "label": "Note To Financial Statement Details Textual" } } }, "auth_ref": [] }, "nwpx_NotesToFinancialStatementsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "NotesToFinancialStatementsAbstract", "lang": { "en-us": { "role": { "label": "Notes To Financial Statements [Abstract]" } } }, "auth_ref": [] }, "nwpx_NumberOfActiveStockIncentivePlans": { "xbrltype": "integerItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "NumberOfActiveStockIncentivePlans", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "nwpx_NumberOfActiveStockIncentivePlans", "terseLabel": "Number Of Active Stock Incentive Plans", "documentation": "The number of active stock incentive plans." } } }, "auth_ref": [] }, "nwpx_NumberOfInactiveStockIncentivePlans": { "xbrltype": "integerItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "NumberOfInactiveStockIncentivePlans", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "nwpx_NumberOfInactiveStockIncentivePlans", "terseLabel": "Number Of Inactive Stock Incentive Plans", "documentation": "The number of inactive stock incentive plans." } } }, "auth_ref": [] }, "nwpx_NumberOfManufacturingFacilities": { "xbrltype": "integerItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "NumberOfManufacturingFacilities", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation-details-textual" ], "lang": { "en-us": { "role": { "label": "nwpx_NumberOfManufacturingFacilities", "terseLabel": "Number of Manufacturing Facilities", "documentation": "Represents number of manufacturing facilities." } } }, "auth_ref": [] }, "us-gaap_NumberOfOperatingSegments": { "xbrltype": "integerItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NumberOfOperatingSegments", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_NumberOfOperatingSegments", "terseLabel": "Number of Operating Segments", "documentation": "Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues." } } }, "auth_ref": [ "r669", "r753" ] }, "nwpx_NumberOfPotentiallyResponsibleParties": { "xbrltype": "integerItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "NumberOfPotentiallyResponsibleParties", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "nwpx_NumberOfPotentiallyResponsibleParties", "terseLabel": "Number Of Potentially Responsible Parties", "documentation": "Number of potentially responsible parties for Portland Harbor Superfund site." } } }, "auth_ref": [] }, "us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OciBeforeReclassificationsNetOfTaxAttributableToParent", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "Other comprehensive income before reclassifications", "documentation": "Amount after tax, before reclassification adjustments, of other comprehensive income (loss), attributable to parent." } } }, "auth_ref": [ "r13", "r16" ] }, "us-gaap_OpenTaxYear": { "xbrltype": "gYearListItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OpenTaxYear", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_OpenTaxYear", "terseLabel": "Open Tax Year", "documentation": "Tax year that remains open to examination under enacted tax laws, in YYYY format." } } }, "auth_ref": [ "r418" ] }, "us-gaap_OperatingIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingIncomeLoss", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_OperatingIncomeLoss", "totalLabel": "Operating income", "documentation": "The net result for the period of deducting operating expenses from operating revenues." } } }, "auth_ref": [ "r88", "r663", "r752", "r754", "r755", "r756", "r757" ] }, "us-gaap_OperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Current portion of operating lease liabilities", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current." } } }, "auth_ref": [ "r491" ] }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Operating lease liabilities", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent." } } }, "auth_ref": [ "r491" ] }, "us-gaap_OperatingLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseRightOfUseAsset", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_OperatingLeaseRightOfUseAsset", "terseLabel": "Operating lease right-of-use assets", "documentation": "Amount of lessee's right to use underlying asset under operating lease." } } }, "auth_ref": [ "r490" ] }, "us-gaap_OperatingSegmentsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingSegmentsMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details" ], "lang": { "en-us": { "role": { "label": "Operating Segments [Member]", "documentation": "Identifies components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity." } } }, "auth_ref": [ "r213", "r214", "r215", "r216", "r217", "r220", "r668", "r669" ] }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation" ], "lang": { "en-us": { "role": { "label": "Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]", "documentation": "The entire disclosure for organization, consolidation and basis of presentation of financial statements disclosure." } } }, "auth_ref": [ "r39", "r77", "r562", "r563" ] }, "us-gaap_OtherAssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherAssetsNoncurrent", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Other assets", "documentation": "Amount of noncurrent assets classified as other." } } }, "auth_ref": [ "r125" ] }, "us-gaap_OtherCommitment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherCommitment", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_OtherCommitment", "terseLabel": "Other Commitment", "documentation": "Minimum amount of other commitment not otherwise specified in the taxonomy. Excludes commitments explicitly modeled in the taxonomy, including but not limited to, long-term and short-term purchase commitments, recorded and unrecorded purchase obligations, supply commitments, registration payment arrangements, leases, debt, product warranties, guarantees, environmental remediation obligations, and pensions." } } }, "auth_ref": [] }, "nwpx_OtherCommitmentAmountPaidForEquipmentPurchasedYetNotReceived": { "xbrltype": "monetaryItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "OtherCommitmentAmountPaidForEquipmentPurchasedYetNotReceived", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "nwpx_OtherCommitmentAmountPaidForEquipmentPurchasedYetNotReceived", "terseLabel": "Other Commitment, Amount Paid for Equipment Purchased Yet Not Received", "documentation": "Amount of commitment of payment for equipment purchased but not received." } } }, "auth_ref": [] }, "us-gaap_OtherCommitmentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherCommitmentsAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "Other Commitments [Axis]", "documentation": "Information by type of other commitment." } } }, "auth_ref": [] }, "us-gaap_OtherCommitmentsDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherCommitmentsDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "Other Commitments [Domain]", "documentation": "Other future obligation." } } }, "auth_ref": [] }, "us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": -1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent", "negatedLabel": "Pension liability adjustment", "documentation": "Amount, after tax and reclassification adjustment, of (increase) decrease in accumulated other comprehensive income for defined benefit plan, attributable to parent." } } }, "auth_ref": [ "r2", "r3", "r9", "r56", "r57", "r78" ] }, "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Unrealized gain on derivatives designated as cash flow hedges", "documentation": "Amount, after tax and reclassification, of gain (loss) from derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness, attributable to parent." } } }, "auth_ref": [ "r135" ] }, "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTaxParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTaxParent", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationTaxParent", "negatedLabel": "Unrealized gain (loss) on cash flow hedges, tax expense/benefit", "documentation": "Amount, after reclassification, of tax expense (benefit) for gain (loss) from derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness, attributable to parent." } } }, "auth_ref": [ "r136" ] }, "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAndTax", "terseLabel": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), before Reclassification and Tax", "documentation": "Amount, before tax and reclassification, of gain (loss) from derivative instrument designated and qualifying cash flow hedge included in assessment of hedge effectiveness." } } }, "auth_ref": [ "r134", "r135", "r442", "r443", "r446" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 1.0 }, "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "totalLabel": "Net current period other comprehensive income", "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity." } } }, "auth_ref": [ "r5", "r9", "r78", "r139", "r142", "r171" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited" ], "lang": { "en-us": { "role": { "label": "Other comprehensive income (loss), net of tax:" } } }, "auth_ref": [] }, "us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax", "negatedLabel": "Pension liability adjustment, tax expense/benefit", "documentation": "Amount, after reclassification adjustment, of tax (expense) benefit for (increase) decrease in accumulated other comprehensive income of defined benefit plan." } } }, "auth_ref": [ "r2", "r3", "r4", "r56", "r78" ] }, "us-gaap_OtherLiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherLiabilitiesNoncurrent", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Other long-term liabilities", "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r45" ] }, "us-gaap_OtherNoncashIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherNoncashIncomeExpense", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 6.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_OtherNoncashIncomeExpense", "negatedLabel": "Other, net", "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other." } } }, "auth_ref": [ "r71" ] }, "us-gaap_OtherNonoperatingIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherNonoperatingIncomeExpense", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Other income (expense)", "documentation": "Amount of income (expense) related to nonoperating activities, classified as other." } } }, "auth_ref": [ "r65" ] }, "us-gaap_PaymentsForProceedsFromOtherInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsForProceedsFromOtherInvestingActivities", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_PaymentsForProceedsFromOtherInvestingActivities", "negatedLabel": "Other investing activities", "documentation": "Amount of cash (inflow) outflow from investing activities classified as other." } } }, "auth_ref": [ "r731", "r742" ] }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsForRepurchaseOfCommonStock", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_PaymentsForRepurchaseOfCommonStock", "negatedLabel": "Repurchase of common stock", "documentation": "The cash outflow to reacquire common stock during the period." } } }, "auth_ref": [ "r67" ] }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "negatedLabel": "Tax withholdings related to net share settlements of equity awards", "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement." } } }, "auth_ref": [ "r149" ] }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment", "negatedLabel": "Purchases of property and equipment", "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets." } } }, "auth_ref": [ "r66" ] }, "us-gaap_PensionPlansDefinedBenefitMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PensionPlansDefinedBenefitMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Pension Plan [Member]", "documentation": "Plan designed to provide participant with pension benefits. Includes, but is not limited to, defined benefit and defined contribution plans. Excludes other postretirement benefits." } } }, "auth_ref": [ "r310", "r311", "r312", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r322", "r323", "r324", "r325", "r326", "r327", "r328", "r329", "r330", "r331", "r332", "r333", "r334", "r335", "r336", "r337", "r338", "r339", "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r355", "r356", "r357", "r358", "r359", "r360", "r361", "r362", "r363", "r364", "r365", "r366", "r367", "r368", "r369", "r370", "r373", "r686", "r687", "r691", "r692", "r693" ] }, "nwpx_PerformanceAwardsIssuedMultiplier": { "xbrltype": "percentItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "PerformanceAwardsIssuedMultiplier", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "nwpx_PerformanceAwardsIssuedMultiplier", "terseLabel": "Performance Awards Issued Multiplier", "documentation": "The percentage of the performance awards issued multiplier." } } }, "auth_ref": [] }, "nwpx_PerformanceShareAwardTargetLevelPercentage": { "xbrltype": "percentItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "PerformanceShareAwardTargetLevelPercentage", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "nwpx_PerformanceShareAwardTargetLevelPercentage", "terseLabel": "Performance Share Award Target Level, Percentage", "documentation": "Represents the target level percentage for performance share awards." } } }, "auth_ref": [] }, "us-gaap_PerformanceSharesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PerformanceSharesMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "Performance Shares [Member]", "documentation": "Share-based payment arrangement awarded for meeting performance target." } } }, "auth_ref": [] }, "nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "PortlandHarborNaturalreSourcesTrusteeCouncilMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "Portland Harbor Natural Resources Trustee Council [Member]", "documentation": "The name or description of the loss contingency by its nature." } } }, "auth_ref": [] }, "nwpx_PortlandHarborSuperfundSiteMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "PortlandHarborSuperfundSiteMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "Portland Harbor Superfund Site [Member]", "documentation": "Represents the Portland Harbor Superfund Site." } } }, "auth_ref": [] }, "nwpx_PrecastInfrastructureAndEngineeredSystemsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "PrecastInfrastructureAndEngineeredSystemsMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details" ], "lang": { "en-us": { "role": { "label": "Precast Infrastructure and Engineered Systems [Member]", "documentation": "Represents Precast Infrastructure and Engineered Systems segment." } } }, "auth_ref": [] }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockParOrStatedValuePerShare", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred stock, par value (in dollars per share)", "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer." } } }, "auth_ref": [ "r48", "r280" ] }, "us-gaap_PreferredStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockSharesAuthorized", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred stock, shares authorized (in shares)", "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r48", "r587" ] }, "us-gaap_PreferredStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockSharesIssued", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred stock, shares issued (in shares)", "documentation": "Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt." } } }, "auth_ref": [ "r48", "r280" ] }, "us-gaap_PreferredStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockSharesOutstanding", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred stock, shares outstanding (in shares)", "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased." } } }, "auth_ref": [ "r48", "r587", "r605", "r834", "r835" ] }, "us-gaap_PreferredStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PreferredStockValue", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Preferred stock, $.01 par value, 10,000,000 shares authorized, none issued or outstanding", "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r48", "r524", "r705" ] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PrepaidExpenseAndOtherAssetsCurrent", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Prepaid expenses and other", "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r738" ] }, "us-gaap_ProceedsFromLinesOfCredit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromLinesOfCredit", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_ProceedsFromLinesOfCredit", "terseLabel": "Borrowings on line of credit", "documentation": "Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements." } } }, "auth_ref": [ "r18", "r744" ] }, "nwpx_PropertyAndEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "PropertyAndEquipmentMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details" ], "lang": { "en-us": { "role": { "label": "Property and Equipment [Member]", "documentation": "Represents property and equipment." } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentGrossPeriodIncreaseDecrease": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentGrossPeriodIncreaseDecrease", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "Property and equipment", "documentation": "Amount of increase (decrease) of long-lived, 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, furniture and fixtures, and computer equipment." } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentNet", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Property and equipment, less accumulated depreciation and amortization of $129,510 and $126,359", "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures." } } }, "auth_ref": [ "r8", "r495", "r519", "r530", "r705" ] }, "srt_RangeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RangeAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]", "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median." } } }, "auth_ref": [ "r98", "r99", "r100", "r101", "r102", "r114", "r115", "r261", "r262", "r263", "r264", "r332", "r372", "r399", "r400", "r401", "r409", "r465", "r504", "r505", "r507", "r549", "r551", "r561", "r577", "r578", "r630", "r631", "r632", "r633", "r644", "r647", "r648", "r673", "r681", "r694", "r700", "r701", "r702", "r703", "r706", "r710", "r763", "r771", "r782", "r796", "r797", "r798", "r799", "r800" ] }, "srt_RangeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RangeMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]", "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median." } } }, "auth_ref": [ "r98", "r99", "r100", "r101", "r102", "r114", "r115", "r261", "r262", "r263", "r264", "r332", "r372", "r399", "r400", "r401", "r409", "r465", "r504", "r505", "r507", "r549", "r551", "r561", "r577", "r578", "r630", "r631", "r632", "r633", "r644", "r647", "r648", "r673", "r681", "r694", "r700", "r701", "r702", "r703", "r706", "r710", "r763", "r771", "r782", "r796", "r797", "r798", "r799", "r800" ] }, "us-gaap_ReceivablesNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReceivablesNetCurrent", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Trade and other receivables, net of allowance of $159 and $121", "documentation": "The total amount due to the entity within one year of the balance sheet date (or one operating cycle, if longer) from outside sources, including trade accounts receivable, notes and loans receivable, as well as any other types of receivables, net of allowances established for the purpose of reducing such receivables to an amount that approximates their net realizable value." } } }, "auth_ref": [ "r705" ] }, "us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent", "negatedLabel": "Amounts reclassified from Accumulated other comprehensive loss", "documentation": "Amount after tax of reclassification adjustments of other comprehensive income (loss) attributable to parent." } } }, "auth_ref": [ "r13", "r16" ] }, "us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "Reclassification out of Accumulated Other Comprehensive Income [Axis]", "documentation": "Information by item reclassified out of accumulated other comprehensive income (loss)." } } }, "auth_ref": [ "r145" ] }, "us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "Reclassification out of Accumulated Other Comprehensive Income [Domain]", "documentation": "Item reclassified out of accumulated other comprehensive income (loss)." } } }, "auth_ref": [ "r145" ] }, "us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "Reclassification out of Accumulated Other Comprehensive Income [Member]", "documentation": "Identifies item reclassified out of accumulated other comprehensive income (loss)." } } }, "auth_ref": [ "r145" ] }, "us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-tables" ], "lang": { "en-us": { "role": { "label": "Reclassification out of Accumulated Other Comprehensive Income [Table Text Block]", "documentation": "Tabular disclosure of information about items reclassified out of accumulated other comprehensive income (loss)." } } }, "auth_ref": [] }, "us-gaap_ReclassificationTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReclassificationTypeAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "Reclassification, Type [Axis]", "documentation": "Information by type of reclassification adjustment affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error." } } }, "auth_ref": [ "r736" ] }, "us-gaap_ReclassificationTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReclassificationTypeDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "Reclassification, Type [Domain]", "documentation": "Type of reclassification adjustment affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error." } } }, "auth_ref": [ "r736" ] }, "nwpx_ReclassifiedToInterestExpenseMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ReclassifiedToInterestExpenseMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "Reclassified to Interest Expense [Member]", "documentation": "Related to reclassified to interest expense." } } }, "auth_ref": [] }, "nwpx_ReclassifiedToNetSalesMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ReclassifiedToNetSalesMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "Reclassified to Net Sales [Member]", "documentation": "Related to reclassified to net sales." } } }, "auth_ref": [] }, "us-gaap_RepaymentsOfLinesOfCredit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RepaymentsOfLinesOfCredit", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_RepaymentsOfLinesOfCredit", "negatedLabel": "Repayments on line of credit", "documentation": "Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements." } } }, "auth_ref": [ "r68", "r744" ] }, "srt_RepurchaseAgreementCounterpartyNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RepurchaseAgreementCounterpartyNameDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual" ], "lang": { "en-us": { "role": { "label": "Counterparty Name [Domain]", "documentation": "Named other party that participates in a financial transaction. Examples include, but not limited to, the name of the financial institution." } } }, "auth_ref": [ "r112", "r113", "r155", "r156", "r277", "r282", "r500", "r506", "r520", "r658", "r659" ] }, "nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "RestrictedStockUnitsAndPerformanceStockAwardsMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details" ], "lang": { "en-us": { "role": { "label": "Restricted Stock Units and Performance Stock Awards [Member]", "documentation": "The type or description of the award." } } }, "auth_ref": [] }, "nwpx_RestrictedStockUnitsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "RestrictedStockUnitsMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details" ], "lang": { "en-us": { "role": { "label": "Restricted Stock Units [Member]", "documentation": "Represents the restricted stock units." } } }, "auth_ref": [] }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RetainedEarningsAccumulatedDeficit", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Retained earnings", "documentation": "Amount of accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r51", "r76", "r527", "r556", "r560", "r565", "r588", "r705" ] }, "us-gaap_RetainedEarningsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RetainedEarningsMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Retained Earnings [Member]", "documentation": "Accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r116", "r158", "r159", "r160", "r164", "r171", "r173", "r175", "r230", "r233", "r251", "r421", "r422", "r428", "r429", "r430", "r434", "r435", "r436", "r447", "r449", "r450", "r453", "r457", "r488", "r489", "r553", "r555", "r567", "r834" ] }, "us-gaap_RetirementPlanTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RetirementPlanTypeAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Retirement Plan Type [Axis]", "documentation": "Information by type of retirement benefit plan. Includes, but is not limited to, retirement benefit arrangement for defined benefit pension and other postretirement plans, retirement benefit arrangement for defined contribution pension and other postretirement plans, and special and contractual termination benefits payable upon retirement." } } }, "auth_ref": [ "r310", "r311", "r312", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r322", "r323", "r324", "r325", "r326", "r327", "r328", "r329", "r330", "r331", "r332", "r333", "r334", "r335", "r336", "r337", "r338", "r339", "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r355", "r356", "r357", "r358", "r359", "r360", "r361", "r362", "r363", "r364", "r365", "r366", "r367", "r368", "r369", "r370", "r371", "r373", "r686", "r687", "r688", "r689", "r690", "r691", "r692", "r693" ] }, "us-gaap_RetirementPlanTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RetirementPlanTypeDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Retirement Plan Type [Domain]", "documentation": "Type of plan designed to provide participants with retirement benefits. Includes, but is not limited to, retirement benefit arrangement for defined benefit pension and other postretirement plans, retirement benefit arrangement for defined contribution pension and other postretirement plans, and special and contractual termination benefits payable upon retirement." } } }, "auth_ref": [ "r310", "r311", "r312", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r322", "r323", "r324", "r325", "r326", "r327", "r328", "r329", "r330", "r331", "r332", "r333", "r334", "r335", "r336", "r337", "r338", "r339", "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r355", "r356", "r357", "r358", "r359", "r360", "r361", "r362", "r363", "r364", "r365", "r366", "r367", "r368", "r369", "r370", "r371", "r373", "r686", "r687", "r688", "r689", "r690", "r691", "r692", "r693" ] }, "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerIncludingAssessedTax", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_GrossProfit", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-disaggregation-of-revenue-details" ], "lang": { "en-us": { "role": { "label": "Net sales", "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise." } } }, "auth_ref": [ "r86", "r87", "r190", "r197", "r198", "r213", "r219", "r222", "r224", "r225", "r305", "r306", "r508" ] }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer [Text Block]", "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts." } } }, "auth_ref": [ "r96", "r297", "r298", "r299", "r300", "r301", "r302", "r303", "r304", "r309" ] }, "us-gaap_RevenueRemainingPerformanceObligation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueRemainingPerformanceObligation", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-1-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_RevenueRemainingPerformanceObligation", "terseLabel": "Revenue, Remaining Performance Obligation, Amount", "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue." } } }, "auth_ref": [ "r91" ] }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-2-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Year)", "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r92" ] }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-2-details-textual" ], "lang": { "en-us": { "role": { "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]", "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format." } } }, "auth_ref": [ "r92" ] }, "us-gaap_RevenueRemainingPerformanceObligationPercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueRemainingPerformanceObligationPercentage", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-2-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_RevenueRemainingPerformanceObligationPercentage", "terseLabel": "Revenue, Remaining Performance Obligation, Percentage", "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue." } } }, "auth_ref": [ "r732" ] }, "us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Right-of-use assets obtained in exchange for finance lease liabilities", "documentation": "Amount of increase in right-of-use asset obtained in exchange for finance lease liability." } } }, "auth_ref": [ "r494", "r704" ] }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Right-of-use assets obtained in exchange for operating lease liabilities", "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability." } } }, "auth_ref": [ "r494", "r704" ] }, "ecd_Rule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Rule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "ecd_Rule10b51ArrAdoptedFlag", "terseLabel": "Rule 10b5-1 Arrangement Adopted [Flag]" } } }, "auth_ref": [ "r726" ] }, "ecd_Rule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Rule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "ecd_Rule10b51ArrTrmntdFlag", "terseLabel": "Rule 10b5-1 Arrangement Terminated [Flag]" } } }, "auth_ref": [ "r726" ] }, "nwpx_Rule10b51TradingPlanDesignatedAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "Rule10b51TradingPlanDesignatedAmount", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual" ], "lang": { "en-us": { "role": { "label": "nwpx_Rule10b51TradingPlanDesignatedAmount", "terseLabel": "Rule 10b5-1 Trading Plan, Designated Amount", "documentation": "The amount of stock designated for repurchase under the Company's Rule 10b5-1 trading plan." } } }, "auth_ref": [] }, "us-gaap_SalesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details" ], "lang": { "en-us": { "role": { "label": "Sales [Member]", "documentation": "Primary financial statement caption encompassing revenue from sale of goods and services rendered in the normal course of business." } } }, "auth_ref": [ "r12" ] }, "nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-tables" ], "lang": { "en-us": { "role": { "label": "Schedule of Changes in Accumulated Other Comprehensive Income Loss [Table Text Block]", "documentation": "Represents schedule of changes in accumulated other comprehensive income loss." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-tables" ], "lang": { "en-us": { "role": { "label": "Derivative Instruments, Gain (Loss) [Table Text Block]", "documentation": "Tabular disclosure of the location and amount of derivative instruments and nonderivative instruments designated as hedging instruments reported before netting adjustments, and the amount of gain (loss) on derivative instruments and nonderivative instruments designated and qualified as hedging instruments." } } }, "auth_ref": [ "r34", "r35", "r444" ] }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-tables" ], "lang": { "en-us": { "role": { "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations." } } }, "auth_ref": [ "r751" ] }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-tables" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]", "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement." } } }, "auth_ref": [ "r30" ] }, "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-tables" ], "lang": { "en-us": { "role": { "label": "Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]", "documentation": "Tabular disclosure of assets and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3)." } } }, "auth_ref": [ "r779", "r780" ] }, "nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-tables" ], "lang": { "en-us": { "role": { "label": "Schedule Of Inventory Current And Non Current [Table Text Block]", "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process. Includes current and non-current inventory balances." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-tables" ], "lang": { "en-us": { "role": { "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]", "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss." } } }, "auth_ref": [ "r23", "r24", "r25" ] }, "nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-tables" ], "lang": { "en-us": { "role": { "label": "Schedule of Unvested Restricted Stock Units and Performance Share Awards Activity [Table Text Block]", "documentation": "Tabular disclosure of the change in restricted stock units (RSUs) and performance share awards (PSAs)." } } }, "auth_ref": [] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "Security12bTitle", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Title of 12(b) Security", "documentation": "Title of a 12(b) registered security." } } }, "auth_ref": [ "r720" ] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "SecurityExchangeName", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Security Exchange Name", "documentation": "Name of the Exchange on which a security is registered." } } }, "auth_ref": [ "r722" ] }, "us-gaap_SegmentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SegmentDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details" ], "lang": { "en-us": { "role": { "label": "Segments [Domain]", "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity." } } }, "auth_ref": [ "r86", "r87", "r88", "r89", "r190", "r193", "r196", "r197", "r198", "r199", "r200", "r201", "r202", "r203", "r204", "r205", "r207", "r208", "r210", "r211", "r212", "r213", "r214", "r215", "r216", "r217", "r219", "r220", "r221", "r225", "r239", "r240", "r241", "r242", "r243", "r244", "r245", "r246", "r247", "r250", "r256", "r257", "r538", "r539", "r540", "r541", "r542", "r543", "r544", "r545", "r546", "r547", "r548", "r665", "r668", "r669", "r674", "r707", "r802", "r804", "r805", "r806", "r807", "r808", "r809", "r810", "r811", "r812", "r813", "r814", "r815", "r816", "r817", "r818", "r819", "r820", "r821", "r822", "r823", "r824", "r825", "r826", "r827", "r828", "r829", "r830", "r831" ] }, "us-gaap_SegmentReportingDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SegmentReportingDisclosureTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information" ], "lang": { "en-us": { "role": { "label": "Segment Reporting Disclosure [Text Block]", "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments." } } }, "auth_ref": [ "r89", "r190", "r192", "r193", "r194", "r195", "r196", "r209", "r211", "r212", "r217", "r218", "r219", "r220", "r221", "r222", "r223", "r225", "r664", "r666", "r667", "r668", "r670", "r671", "r672" ] }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SellingGeneralAndAdministrativeExpense", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Selling, general, and administrative expense", "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc." } } }, "auth_ref": [ "r64" ] }, "us-gaap_SellingGeneralAndAdministrativeExpensesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SellingGeneralAndAdministrativeExpensesMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-sharebased-compensation-expense-details" ], "lang": { "en-us": { "role": { "label": "Selling, General and Administrative Expenses [Member]", "documentation": "Primary financial statement caption encompassing selling, general and administrative expense." } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensation", "crdr": "debit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensation", "terseLabel": "Share-based compensation expense", "documentation": "Amount of noncash expense for share-based payment arrangement." } } }, "auth_ref": [ "r6" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details" ], "lang": { "en-us": { "role": { "label": "RSUs and PSAs granted (in shares)", "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)." } } }, "auth_ref": [ "r391" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details" ], "lang": { "en-us": { "role": { "label": "RSUs and PSAs granted (in dollars per share)", "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)." } } }, "auth_ref": [ "r391" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "periodStartLabel": "Unvested RSUs and PSAs (in shares)", "periodEndLabel": "Unvested RSUs and PSAs (in shares)", "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date." } } }, "auth_ref": [ "r388", "r389" ] }, "nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance": { "xbrltype": "sharesItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance", "terseLabel": "Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number At Target Level Of Performance (in shares)", "documentation": "The number of non-vested equity-based payment instruments at a target level of performance, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date." } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "periodStartLabel": "Unvested RSUs and PSAs, weighted average grant date fair value (in dollars per share)", "periodEndLabel": "Unvested RSUs and PSAs, weighted average grant date fair value (in dollars per share)", "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options." } } }, "auth_ref": [ "r388", "r389" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "negatedLabel": "RSUs vested (in shares)", "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period." } } }, "auth_ref": [ "r392" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details" ], "lang": { "en-us": { "role": { "label": "RSUs vested (in dollars per share)", "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement." } } }, "auth_ref": [ "r392" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details" ], "lang": { "en-us": { "role": { "label": "Award Type [Domain]", "documentation": "Award under share-based payment arrangement." } } }, "auth_ref": [ "r377", "r378", "r379", "r380", "r381", "r382", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r401", "r402" ] }, "srt_ShareRepurchaseProgramAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ShareRepurchaseProgramAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program [Axis]", "documentation": "Information by share repurchase program." } } }, "auth_ref": [ "r772" ] }, "srt_ShareRepurchaseProgramDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ShareRepurchaseProgramDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program [Domain]", "documentation": "Name of share repurchase program." } } }, "auth_ref": [ "r772" ] }, "nwpx_ShareRepurchaseProgramMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "ShareRepurchaseProgramMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program [Member]", "documentation": "Represents information regarding the share repurchase program." } } }, "auth_ref": [] }, "us-gaap_SharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharesOutstanding", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharesOutstanding", "periodStartLabel": "Balances (in shares)", "periodEndLabel": "Balances (in shares)", "documentation": "Number of shares issued which are neither cancelled nor held in the treasury." } } }, "auth_ref": [] }, "us-gaap_StatementBusinessSegmentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementBusinessSegmentsAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details" ], "lang": { "en-us": { "role": { "label": "Segments [Axis]", "documentation": "Information by business segments." } } }, "auth_ref": [ "r86", "r87", "r88", "r89", "r118", "r190", "r193", "r196", "r197", "r198", "r199", "r200", "r201", "r202", "r203", "r204", "r205", "r207", "r208", "r210", "r211", "r212", "r213", "r214", "r215", "r216", "r217", "r219", "r220", "r221", "r225", "r239", "r240", "r241", "r242", "r243", "r244", "r245", "r246", "r247", "r250", "r253", "r256", "r257", "r538", "r539", "r540", "r541", "r542", "r543", "r544", "r545", "r546", "r547", "r548", "r665", "r668", "r669", "r674", "r707", "r802", "r804", "r805", "r806", "r807", "r808", "r809", "r810", "r811", "r812", "r813", "r814", "r815", "r816", "r817", "r818", "r819", "r820", "r821", "r822", "r823", "r824", "r825", "r826", "r827", "r828", "r829", "r830", "r831" ] }, "us-gaap_StatementEquityComponentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementEquityComponentsAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "Equity Components [Axis]", "documentation": "Information by component of equity." } } }, "auth_ref": [ "r10", "r49", "r52", "r53", "r116", "r143", "r144", "r145", "r158", "r159", "r160", "r164", "r171", "r173", "r175", "r191", "r230", "r233", "r251", "r293", "r421", "r422", "r428", "r429", "r430", "r434", "r435", "r436", "r447", "r448", "r449", "r450", "r451", "r453", "r457", "r481", "r482", "r483", "r484", "r485", "r486", "r488", "r489", "r497", "r533", "r553", "r554", "r555", "r567", "r625" ] }, "us-gaap_StatementLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementLineItems", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals", "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation", "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-tables", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-tables", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-tables", "http://www.nwpipe.com/20240331/role/statement-note-13-recent-accounting-and-reporting-developments", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-tables", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-tables", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-tables", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-sharebased-compensation-expense-details", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-tables", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-1-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-2-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-disaggregation-of-revenue-details", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-tables", "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes", "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes-details-textual" ], "lang": { "en-us": { "role": { "label": "Statement [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r158", "r159", "r160", "r191", "r489", "r508", "r564", "r568", "r579", "r580", "r581", "r582", "r583", "r584", "r587", "r590", "r591", "r592", "r593", "r594", "r595", "r596", "r597", "r598", "r600", "r601", "r602", "r603", "r604", "r606", "r608", "r609", "r611", "r612", "r613", "r614", "r615", "r616", "r617", "r618", "r619", "r620", "r621", "r622", "r625", "r711" ] }, "us-gaap_StatementOfCashFlowsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfCashFlowsAbstract", "lang": { "en-us": { "role": { "label": "Statement of Cash Flows [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfFinancialPositionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfFinancialPositionAbstract", "lang": { "en-us": { "role": { "label": "Statement of Financial Position [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract", "lang": { "en-us": { "role": { "label": "Statement of Comprehensive Income [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfStockholdersEquityAbstract", "lang": { "en-us": { "role": { "label": "Statement of Stockholders' Equity [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementTable", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-comprehensive-income-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited-parentheticals", "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation", "http://www.nwpipe.com/20240331/role/statement-note-1-organization-and-basis-of-presentation-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-tables", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-tables", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-tables", "http://www.nwpipe.com/20240331/role/statement-note-13-recent-accounting-and-reporting-developments", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-components-of-inventories-details", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-tables", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-tables", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-tables", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-rsu-and-psa-activity-details", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-sharebased-compensation-expense-details", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-tables", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies", "http://www.nwpipe.com/20240331/role/statement-note-7-commitments-and-contingencies-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-1-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-2-details-textual", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-disaggregation-of-revenue-details", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-tables", "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes", "http://www.nwpipe.com/20240331/role/statement-note-9-income-taxes-details-textual" ], "lang": { "en-us": { "role": { "label": "Statement [Table]", "documentation": "Disclosure of information about statement of comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity." } } }, "auth_ref": [ "r158", "r159", "r160", "r191", "r227", "r489", "r508", "r564", "r568", "r579", "r580", "r581", "r582", "r583", "r584", "r587", "r590", "r591", "r592", "r593", "r594", "r595", "r596", "r597", "r598", "r600", "r601", "r602", "r603", "r604", "r606", "r608", "r609", "r611", "r612", "r613", "r614", "r615", "r616", "r617", "r618", "r619", "r620", "r621", "r622", "r625", "r711" ] }, "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Issuance of common stock under stock compensation plans, net of tax withholdings (in shares)", "documentation": "Number, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP)." } } }, "auth_ref": [ "r10", "r48", "r49", "r76" ] }, "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodValueShareBasedCompensation", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation", "negatedLabel": "Issuance of common stock under stock compensation plans, net of tax withholdings", "documentation": "Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP)." } } }, "auth_ref": [ "r29", "r48", "r49", "r76" ] }, "srt_StockRepurchaseProgramAuthorizedAmount1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "StockRepurchaseProgramAuthorizedAmount1", "crdr": "credit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual" ], "lang": { "en-us": { "role": { "label": "srt_StockRepurchaseProgramAuthorizedAmount1", "terseLabel": "Stock Repurchase Program, Authorized Amount", "documentation": "Amount authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership." } } }, "auth_ref": [ "r772" ] }, "us-gaap_StockRepurchasedAndRetiredDuringPeriodShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockRepurchasedAndRetiredDuringPeriodShares", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockRepurchasedAndRetiredDuringPeriodShares", "terseLabel": "Stock Repurchased and Retired During Period, Shares (in shares)", "negatedLabel": "Repurchase of common stock (in shares)", "documentation": "Number of shares that have been repurchased and retired during the period." } } }, "auth_ref": [ "r10", "r48", "r49", "r76" ] }, "us-gaap_StockRepurchasedAndRetiredDuringPeriodValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockRepurchasedAndRetiredDuringPeriodValue", "crdr": "debit", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockRepurchasedAndRetiredDuringPeriodValue", "terseLabel": "Stock Repurchased and Retired During Period, Value", "negatedLabel": "Repurchase of common stock", "documentation": "Equity impact of the value of stock that has been repurchased and retired during the period. The excess of the purchase price over par value can be charged against retained earnings (once the excess is fully allocated to additional paid in capital)." } } }, "auth_ref": [ "r10", "r48", "r49", "r76" ] }, "us-gaap_StockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquity", "crdr": "credit", "calculation": { "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockholdersEquity", "totalLabel": "Total stockholders\u2019 equity", "periodStartLabel": "Balance", "periodEndLabel": "Balance", "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest." } } }, "auth_ref": [ "r49", "r52", "r53", "r72", "r589", "r605", "r626", "r627", "r705", "r719", "r745", "r758", "r792", "r834" ] }, "us-gaap_StockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Stockholders\u2019 equity:" } } }, "auth_ref": [] }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityNoteDisclosureTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-5-stockholders-equity" ], "lang": { "en-us": { "role": { "label": "Equity [Text Block]", "documentation": "The entire disclosure for equity." } } }, "auth_ref": [ "r75", "r152", "r279", "r281", "r283", "r284", "r285", "r286", "r287", "r288", "r289", "r290", "r291", "r292", "r293", "r455", "r628", "r629", "r645" ] }, "us-gaap_TableTextBlock": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TableTextBlock", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-10-accumulated-other-comprehensive-loss-tables", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-tables", "http://www.nwpipe.com/20240331/role/statement-note-12-segment-information-tables", "http://www.nwpipe.com/20240331/role/statement-note-2-inventories-tables", "http://www.nwpipe.com/20240331/role/statement-note-3-fair-value-measurements-tables", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-tables", "http://www.nwpipe.com/20240331/role/statement-note-6-sharebased-compensation-tables", "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-tables" ], "lang": { "en-us": { "role": { "label": "us-gaap_TableTextBlock", "terseLabel": "Notes Tables" } } }, "auth_ref": [] }, "nwpx_The1941InterestRateSwapMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "The1941InterestRateSwapMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "The 1.941% Interest Rate Swap [Member]", "documentation": "Relating to the 1.941% interest rate swap." } } }, "auth_ref": [] }, "nwpx_The296InterestRateSwapMember": { "xbrltype": "domainItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "The296InterestRateSwapMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities", "http://www.nwpipe.com/20240331/role/statement-note-4-derivative-instruments-and-hedging-activities-details-textual" ], "lang": { "en-us": { "role": { "label": "The 2.96% Interest Rate Swap [Member]", "documentation": "Relating to the 2.96% interest rate swap." } } }, "auth_ref": [] }, "us-gaap_TimingOfTransferOfGoodOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TimingOfTransferOfGoodOrServiceAxis", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-disaggregation-of-revenue-details" ], "lang": { "en-us": { "role": { "label": "Timing of Transfer of Good or Service [Axis]", "documentation": "Information by timing of transfer of good or service to customer." } } }, "auth_ref": [ "r683", "r774" ] }, "us-gaap_TimingOfTransferOfGoodOrServiceDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TimingOfTransferOfGoodOrServiceDomain", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-disaggregation-of-revenue-details" ], "lang": { "en-us": { "role": { "label": "Timing of Transfer of Good or Service [Domain]", "documentation": "Timing of transfer of good or service to customer. Includes, but is not limited to, at point in time or over time." } } }, "auth_ref": [ "r683", "r774" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "TradingSymbol", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Trading Symbol", "documentation": "Trading symbol of an instrument as listed on an exchange." } } }, "auth_ref": [] }, "us-gaap_TransferredAtPointInTimeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TransferredAtPointInTimeMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-disaggregation-of-revenue-details" ], "lang": { "en-us": { "role": { "label": "Transferred at Point in Time [Member]", "documentation": "Contract with customer in which good or service is transferred at point in time." } } }, "auth_ref": [ "r683" ] }, "us-gaap_TransferredOverTimeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TransferredOverTimeMember", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-8-revenue-disaggregation-of-revenue-details" ], "lang": { "en-us": { "role": { "label": "Transferred over Time [Member]", "documentation": "Contract with customer in which good or service is transferred over time." } } }, "auth_ref": [ "r683" ] }, "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment", "calculation": { "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" ], "lang": { "en-us": { "role": { "label": "Effect of potentially dilutive common shares (in shares)", "documentation": "The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation." } } }, "auth_ref": [ "r751" ] }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "calculation": { "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "terseLabel": "Diluted (in shares)", "totalLabel": "Diluted weighted-average common shares outstanding (in shares)", "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period." } } }, "auth_ref": [ "r180", "r185" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfSharesOutstandingAbstract", "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Shares used in per share calculations:" } } }, "auth_ref": [] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "calculation": { "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.nwpipe.com/20240331/role/statement-condensed-consolidated-statements-of-operations-unaudited", "http://www.nwpipe.com/20240331/role/statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" ], "lang": { "en-us": { "role": { "label": "Basic (in shares)", "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period." } } }, "auth_ref": [ "r179", "r185" ] }, "nwpx_statement-statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-10-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details", "lang": { "en-us": { "role": { "label": "Note 10 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details)" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-10-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details", "lang": { "en-us": { "role": { "label": "Note 10 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details)" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-10-accumulated-other-comprehensive-loss-tables": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-10-accumulated-other-comprehensive-loss-tables", "lang": { "en-us": { "role": { "label": "Note 10 - Accumulated Other Comprehensive Loss" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-11-net-income-per-share-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details", "lang": { "en-us": { "role": { "label": "Note 11 - Net Income Per Share - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details)" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-11-net-income-per-share-tables": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-11-net-income-per-share-tables", "lang": { "en-us": { "role": { "label": "Note 11 - Net Income Per Share" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-12-segment-information-information-related-to-the-operations-of-the-companys-operating-segments-details", "lang": { "en-us": { "role": { "label": "Note 12 - Segment Information - Information Related to the Operations of the Company's Operating Segments (Details)" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-12-segment-information-tables": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-12-segment-information-tables", "lang": { "en-us": { "role": { "label": "Note 12 - Segment Information" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-2-inventories-components-of-inventories-details": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-2-inventories-components-of-inventories-details", "lang": { "en-us": { "role": { "label": "Note 2 - Inventories - Components of Inventories (Details)" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-2-inventories-tables": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-2-inventories-tables", "lang": { "en-us": { "role": { "label": "Note 2 - Inventories" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-3-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details", "lang": { "en-us": { "role": { "label": "Note 3 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details)" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-3-fair-value-measurements-tables": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-3-fair-value-measurements-tables", "lang": { "en-us": { "role": { "label": "Note 3 - Fair Value Measurements" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-4-derivative-instruments-and-hedging-activities-summary-of-gains-losses-details", "lang": { "en-us": { "role": { "label": "Note 4 - Derivative Instruments and Hedging Activities - Summary of Gains (Losses) (Details)" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-4-derivative-instruments-and-hedging-activities-tables": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-4-derivative-instruments-and-hedging-activities-tables", "lang": { "en-us": { "role": { "label": "Note 4 - Derivative Instruments and Hedging Activities" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-6-sharebased-compensation-rsu-and-psa-activity-details": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-6-sharebased-compensation-rsu-and-psa-activity-details", "lang": { "en-us": { "role": { "label": "Note 6 - Share-based Compensation - RSU and PSA Activity (Details)" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-6-sharebased-compensation-sharebased-compensation-expense-details": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-6-sharebased-compensation-sharebased-compensation-expense-details", "lang": { "en-us": { "role": { "label": "Note 6 - Share-based Compensation - Share-based Compensation Expense (Details)" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-6-sharebased-compensation-tables": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-6-sharebased-compensation-tables", "lang": { "en-us": { "role": { "label": "Note 6 - Share-based Compensation" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-8-revenue-contract-with-customer-assets-and-liabilities-details", "lang": { "en-us": { "role": { "label": "Note 8 - Revenue - Contract With Customer Assets and Liabilities (Details)" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-8-revenue-disaggregation-of-revenue-details": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-8-revenue-disaggregation-of-revenue-details", "lang": { "en-us": { "role": { "label": "Note 8 - Revenue - Disaggregation of Revenue (Details)" } } }, "auth_ref": [] }, "nwpx_statement-statement-note-8-revenue-tables": { "xbrltype": "stringItemType", "nsuri": "http://www.nwpipe.com/20240331", "localname": "statement-statement-note-8-revenue-tables", "lang": { "en-us": { "role": { "label": "Note 8 - Revenue" } } }, "auth_ref": [] } } } }, "std_ref": { "r0": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "SubTopic": "230", "Topic": "830", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1" }, "r1": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r2": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(j)", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r3": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(k)", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r4": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "12", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-12" }, "r5": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-20" }, "r6": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r7": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r8": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "SubTopic": "10", "Topic": "360", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r9": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(3)", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r10": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "SubTopic": "10", "Topic": "505", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2" }, "r11": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "SubTopic": "10", "Topic": "815", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-2" }, "r12": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4D", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "815", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4D" }, "r13": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482739/220-10-55-15" }, "r14": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22))", "SubTopic": "10", "Topic": "210", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r15": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14" }, "r16": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14A" }, "r17": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-5" }, "r18": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14" }, "r19": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-4" }, "r20": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-3" }, "r21": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-4" }, "r22": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-5" }, "r23": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r24": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25" }, "r25": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "30", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r26": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r27": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "470", "SubTopic": "10", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481573/470-10-45-13" }, "r28": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "470", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481573/470-10-45-14" }, "r29": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r30": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r31": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "20", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-12" }, "r32": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "20", "Section": "55", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-13" }, "r33": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-2" }, "r34": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A" }, "r35": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4C" }, "r36": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4C", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4C" }, "r37": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4D", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4D" }, "r38": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "30", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-1" }, "r39": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "205", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/205/tableOfContent" }, "r40": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r41": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r42": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r43": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r44": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r45": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r46": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r47": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r48": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(28))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r49": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(29))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r50": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r51": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r52": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r53": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(31))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r54": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(32))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r55": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/220/tableOfContent" }, "r56": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r57": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11" }, "r58": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r59": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r60": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r61": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r62": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r63": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r64": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r65": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r66": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13" }, "r67": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r68": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r69": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24" }, "r70": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25" }, "r71": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r72": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 4.E)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480418/310-10-S99-2" }, "r73": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "330", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.BB)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480581/330-10-S99-2" }, "r74": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "440", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/440/tableOfContent" }, "r75": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/505/tableOfContent" }, "r76": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1" }, "r77": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "810", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/810/tableOfContent" }, "r78": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-19" }, "r79": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "815", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/815/tableOfContent" }, "r80": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B" }, "r81": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r82": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r83": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r84": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r85": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r86": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r87": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r88": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r89": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r90": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Subparagraph": "(a)", "SubTopic": "20", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482659/740-20-45-2" }, "r91": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13" }, "r92": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(1)", "SubTopic": "10", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13" }, "r93": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9" }, "r94": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h))", "SubTopic": "10", "Topic": "235", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r95": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/250/tableOfContent" }, "r96": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org/606/tableOfContent" }, "r97": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "04", "Paragraph": "a", "Publisher": "SEC" }, "r98": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r99": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12A", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r100": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12B", "Paragraph": "Column A", "Subparagraph": "(a)", "Footnote": "4", "Publisher": "SEC" }, "r101": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12B", "Paragraph": "Column A", "Subparagraph": "(b)", "Footnote": "4", "Publisher": "SEC" }, "r102": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "14", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r103": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(i)", "Publisher": "SEC" }, "r104": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(iii)(A)", "Publisher": "SEC" }, "r105": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(iii)(B)", "Publisher": "SEC" }, "r106": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(iv)", "Publisher": "SEC" }, "r107": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "02", "Paragraph": "a", "Subparagraph": "(4)(i)", "Publisher": "SEC" }, "r108": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "02", "Paragraph": "a", "Subparagraph": "(4)(iii)(A)", "Publisher": "SEC" }, "r109": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "02", "Paragraph": "a", "Subparagraph": "(4)(iii)(B)", "Publisher": "SEC" }, "r110": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "02", "Paragraph": "a", "Subparagraph": "(4)(iii)(C)", "Publisher": "SEC" }, "r111": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "02", "Paragraph": "a", "Subparagraph": "(4)(iv)", "Publisher": "SEC" }, "r112": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "4", "Subsection": "08", "Paragraph": "m", "Subparagraph": "(1)(iii)", "Publisher": "SEC" }, "r113": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "4", "Subsection": "08", "Paragraph": "m", "Subparagraph": "(2)(ii)", "Publisher": "SEC" }, "r114": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 5", "Section": "Y", "Paragraph": "Question 2", "Publisher": "SEC" }, "r115": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 5", "Section": "Y", "Paragraph": "Question 4", "Publisher": "SEC" }, "r116": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6" }, "r117": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-7" }, "r118": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-1" }, "r119": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-7" }, "r120": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r121": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-5" }, "r122": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r123": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r124": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r125": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r126": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r127": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r128": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r129": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r130": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r131": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r132": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3" }, "r133": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-10" }, "r134": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r135": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11" }, "r136": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-12" }, "r137": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "14A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14A" }, "r138": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r139": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r140": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r141": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B" }, "r142": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B" }, "r143": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4" }, "r144": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5" }, "r145": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6" }, "r146": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r147": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r148": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r149": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r150": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24" }, "r151": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8" }, "r152": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(e)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r153": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r154": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r155": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(m)(1)(iii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r156": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(m)(2)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r157": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-04(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3" }, "r158": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23" }, "r159": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24" }, "r160": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5" }, "r161": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r162": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r163": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r164": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r165": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r166": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r167": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r168": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r169": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-3" }, "r170": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4" }, "r171": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6" }, "r172": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7" }, "r173": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7" }, "r174": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-8" }, "r175": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-9" }, "r176": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SAB Topic 11.M.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480530/250-10-S99-5" }, "r177": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480530/250-10-S99-6" }, "r178": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/260/tableOfContent" }, "r179": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-10" }, "r180": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-16" }, "r181": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-2" }, "r182": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B" }, "r183": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B" }, "r184": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-7" }, "r185": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r186": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r187": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2" }, "r188": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-3" }, "r189": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-15" }, "r190": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "270", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1" }, "r191": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "272", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-1" }, "r192": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/280/tableOfContent" }, "r193": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-15" }, "r194": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21" }, "r195": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21" }, "r196": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r197": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r198": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r199": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r200": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r201": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r202": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r203": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r204": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r205": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(j)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r206": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-24" }, "r207": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25" }, "r208": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "25", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25" }, "r209": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26" }, "r210": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26A" }, "r211": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B" }, "r212": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C" }, "r213": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r214": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r215": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r216": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r217": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31" }, "r218": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r219": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(ee)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r220": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r221": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "34", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-34" }, "r222": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "40", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-40" }, "r223": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r224": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r225": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "42", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-42" }, "r226": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476173/280-10-65-1" }, "r227": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13" }, "r228": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-4" }, "r229": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r230": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r231": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r232": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r233": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-5" }, "r234": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-1" }, "r235": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r236": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r237": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "330", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/330/tableOfContent" }, "r238": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482598/350-20-45-1" }, "r239": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r240": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r241": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r242": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r243": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r244": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r245": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r246": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r247": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r248": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-2" }, "r249": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r250": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3" }, "r251": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1" }, "r252": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3" }, "r253": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3" }, "r254": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r255": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1" }, "r256": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1" }, "r257": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.P.4.d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2" }, "r258": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4" }, "r259": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4" }, "r260": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-1" }, "r261": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4" }, "r262": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9" }, "r263": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r264": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r265": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-3" }, "r266": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r267": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r268": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r269": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r270": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r271": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r272": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r273": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r274": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r275": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r276": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r277": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r278": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D" }, "r279": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r280": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r281": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r282": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r283": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r284": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r285": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r286": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14" }, "r287": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14" }, "r288": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14" }, "r289": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "16", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-16" }, "r290": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r291": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r292": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18" }, "r293": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1" }, "r294": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-1" }, "r295": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-2" }, "r296": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-3" }, "r297": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10" }, "r298": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r299": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r300": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r301": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r302": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r303": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13" }, "r304": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-15" }, "r305": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-4" }, "r306": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5" }, "r307": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8" }, "r308": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8" }, "r309": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-9" }, "r310": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480535/715-20-45-2" }, "r311": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r312": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r313": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(10)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r314": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r315": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r316": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r317": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r318": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r319": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r320": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(8)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r321": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(9)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r322": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r323": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r324": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r325": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r326": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r327": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r328": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r329": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r330": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(8)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r331": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r332": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r333": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r334": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r335": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r336": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(A)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r337": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(B)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r338": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(C)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r339": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r340": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r341": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r342": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r343": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r344": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r345": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r346": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r347": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r348": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r349": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r350": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r351": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r352": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(j)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r353": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(k)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r354": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(k)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r355": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(k)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r356": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(n)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r357": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(q)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r358": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-2" }, "r359": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-6" }, "r360": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-6" }, "r361": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-6" }, "r362": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-6" }, "r363": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-6" }, "r364": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-6" }, "r365": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-6" }, "r366": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-6" }, "r367": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-6" }, "r368": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-8" }, "r369": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "70", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480794/715-70-50-1" }, "r370": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480606/715-80-35-1" }, "r371": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-11" }, "r372": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-5" }, "r373": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-9" }, "r374": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/718/tableOfContent" }, "r375": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-2" }, "r376": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r377": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r378": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r379": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r380": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r381": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r382": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r383": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r384": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r385": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r386": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r387": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r388": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r389": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r390": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r391": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r392": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r393": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r394": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r395": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r396": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r397": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r398": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r399": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r400": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r401": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r402": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(v)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r403": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r404": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r405": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r406": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r407": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(l)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r408": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.F)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1" }, "r409": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "720", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483359/720-20-50-1" }, "r410": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/740/tableOfContent" }, "r411": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-4" }, "r412": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-6" }, "r413": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10" }, "r414": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12" }, "r415": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12B" }, "r416": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12C" }, "r417": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-14" }, "r418": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15" }, "r419": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-17" }, "r420": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-21" }, "r421": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8" }, "r422": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8" }, "r423": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.5.Q1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r424": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r425": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 11.C)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-2" }, "r426": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "270", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477891/740-270-50-1" }, "r427": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482603/740-30-50-2" }, "r428": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r429": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r430": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r431": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r432": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r433": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r434": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r435": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1" }, "r436": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1" }, "r437": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25" }, "r438": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25" }, "r439": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r440": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3" }, "r441": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3" }, "r442": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4A", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A" }, "r443": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4C" }, "r444": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4E" }, "r445": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-5C" }, "r446": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480627/815-20-45-3" }, "r447": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r448": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r449": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r450": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r451": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r452": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(i)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r453": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(i)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r454": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-5" }, "r455": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-6" }, "r456": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r457": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r458": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r459": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r460": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "54B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B" }, "r461": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r462": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r463": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r464": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r465": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r466": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r467": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r468": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r469": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r470": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r471": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E" }, "r472": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3" }, "r473": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3" }, "r474": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r475": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r476": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r477": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r478": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r479": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-10" }, "r480": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28" }, "r481": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-17" }, "r482": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r483": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r484": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r485": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r486": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-1" }, "r487": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "835", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483013/835-20-50-1" }, "r488": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8" }, "r489": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "12A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A" }, "r490": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1" }, "r491": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1" }, "r492": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5" }, "r493": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r494": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r495": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A" }, "r496": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-1" }, "r497": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(a)(3)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2" }, "r498": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2" }, "r499": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2" }, "r500": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-3" }, "r501": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r502": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r503": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r504": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r505": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7" }, "r506": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-9" }, "r507": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "910", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482546/910-10-50-6" }, "r508": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "924", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 11.L)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479941/924-10-S99-1" }, "r509": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483154/926-20-50-5" }, "r510": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483194/926-20-65-2" }, "r511": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483194/926-20-65-2" }, "r512": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483194/926-20-65-2" }, "r513": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "940", "SubTopic": "820", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478119/940-820-50-1" }, "r514": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(10)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r515": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r516": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r517": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(27))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r518": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-05(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1" }, "r519": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478451/942-360-50-1" }, "r520": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(1)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r521": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(12))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r522": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(15)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r523": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r524": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r525": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r526": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r527": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r528": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r529": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r530": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r531": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r532": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r533": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r534": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r535": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r536": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r537": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r538": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r539": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r540": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r541": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r542": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r543": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r544": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column G))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r545": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column H))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r546": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column I))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r547": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column J))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r548": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-16(Column K))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1" }, "r549": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r550": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r551": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r552": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-9" }, "r553": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r554": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r555": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r556": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r557": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r558": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r559": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r560": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r561": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.W.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479583/944-40-S99-1" }, "r562": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480424/946-10-50-1" }, "r563": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480424/946-10-50-2" }, "r564": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3" }, "r565": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-11" }, "r566": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-13" }, "r567": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4" }, "r568": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-4" }, "r569": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r570": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r571": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r572": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r573": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-12" }, "r574": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r575": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r576": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r577": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r578": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r579": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r580": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r581": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r582": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r583": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r584": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r585": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r586": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r587": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(16)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r588": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r589": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r590": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r591": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r592": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r593": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r594": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r595": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r596": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r597": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r598": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r599": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r600": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r601": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r602": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r603": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r604": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2" }, "r605": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2" }, "r606": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3" }, "r607": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-7" }, "r608": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r609": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r610": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(g)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r611": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r612": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r613": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r614": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r615": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r616": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r617": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r618": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r619": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r620": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r621": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r622": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r623": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r624": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(1)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r625": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r626": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r627": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r628": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2" }, "r629": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2" }, "r630": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r631": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r632": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r633": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r634": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SX 210.12-13(Column A)(Footnote 3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5" }, "r635": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SX 210.12-13(Column G)(Footnote 8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5" }, "r636": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SX 210.12-13(Column G))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5" }, "r637": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5A", "Subparagraph": "(SX 210.12-13A(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5A" }, "r638": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5B", "Subparagraph": "(SX 210.12-13B(Column A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5B" }, "r639": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5B", "Subparagraph": "(SX 210.12-13B(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5B" }, "r640": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5B", "Subparagraph": "(SX 210.12-13B(Column E)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5B" }, "r641": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5B", "Subparagraph": "(SX 210.12-13B(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5B" }, "r642": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5C", "Subparagraph": "(SX 210.12-13C(Column H)(Footnote 7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5C" }, "r643": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5C", "Subparagraph": "(SX 210.12-13C(Column H))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5C" }, "r644": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r645": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-6" }, "r646": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "440", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478522/954-440-50-1" }, "r647": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "976", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477332/976-310-50-1" }, "r648": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "978", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479230/978-310-50-1" }, "r649": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "985", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2" }, "r650": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4D", "Subparagraph": "(a)(1)", "SubTopic": "10", "Topic": "815", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4D" }, "r651": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r652": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r653": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r654": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r655": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r656": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r657": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-16" }, "r658": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-21" }, "r659": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-22" }, "r660": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482739/220-10-55-15" }, "r661": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "52", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-52" }, "r662": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r663": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31" }, "r664": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r665": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(bb)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r666": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r667": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r668": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "48", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48" }, "r669": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "49", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49" }, "r670": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r671": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r672": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r673": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481933/310-10-55-12A" }, "r674": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482548/350-20-55-24" }, "r675": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "40", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40" }, "r676": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481899/410-30-55-11" }, "r677": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481899/410-30-55-16" }, "r678": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "27", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482395/460-10-55-27" }, "r679": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69B" }, "r680": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69C" }, "r681": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r682": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10" }, "r683": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r684": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r685": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r686": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480482/715-20-55-17" }, "r687": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480482/715-20-55-18" }, "r688": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-11" }, "r689": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-11" }, "r690": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-11" }, "r691": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-6" }, "r692": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-6" }, "r693": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-6" }, "r694": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480547/715-80-55-8" }, "r695": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r696": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "231", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231" }, "r697": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r698": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r699": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "102", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-102" }, "r700": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "103", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-103" }, "r701": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r702": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r703": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r704": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "53", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479589/842-20-55-53" }, "r705": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481372/852-10-55-10" }, "r706": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "29F", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-29F" }, "r707": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r708": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r709": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r710": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477439/946-210-55-1" }, "r711": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1" }, "r712": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r713": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r714": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r715": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5C", "Subparagraph": "(SX 210.12-13C(Column A)(Footnote 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5C" }, "r716": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5C", "Subparagraph": "(SX 210.12-13C(Column B)(Footnote 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5C" }, "r717": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r718": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-10" }, "r719": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-12" }, "r720": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r721": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r722": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r723": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 10-Q", "Number": "240", "Section": "308", "Subsection": "a" }, "r724": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Section": "13", "Subsection": "a-1" }, "r725": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a" }, "r726": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "1" }, "r727": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-T", "Number": "232", "Section": "405" }, "r728": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481931/410-30-50-10" }, "r729": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481931/410-30-50-10" }, "r730": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(d)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481931/410-30-50-10" }, "r731": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "12", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12" }, "r732": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(1)", "SubTopic": "10", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13" }, "r733": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4CC", "SubTopic": "10", "Topic": "815", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4CC" }, "r734": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(ii)", "Publisher": "SEC" }, "r735": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(iii)", "Publisher": "SEC" }, "r736": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "205", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483504/205-10-50-1" }, "r737": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r738": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r739": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4" }, "r740": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5" }, "r741": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6" }, "r742": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13" }, "r743": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r744": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(f))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r745": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r746": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r747": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23" }, "r748": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24" }, "r749": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5" }, "r750": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6" }, "r751": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r752": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "270", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1" }, "r753": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-18" }, "r754": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r755": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r756": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(ee)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r757": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r758": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r759": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r760": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r761": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2" }, "r762": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "30", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/405-30/tableOfContent" }, "r763": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481931/410-30-50-10" }, "r764": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/450/tableOfContent" }, "r765": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4" }, "r766": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9" }, "r767": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r768": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r769": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r770": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r771": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r772": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "505", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4" }, "r773": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10" }, "r774": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5" }, "r775": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r776": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-1A" }, "r777": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-1B" }, "r778": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r779": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r780": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r781": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r782": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r783": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r784": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r785": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r786": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r787": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r788": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r789": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r790": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3" }, "r791": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3" }, "r792": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28" }, "r793": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7" }, "r794": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7" }, "r795": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r796": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r797": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r798": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r799": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r800": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r801": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r802": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479432/944-30-50-2B" }, "r803": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3" }, "r804": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B" }, "r805": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B" }, "r806": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C" }, "r807": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D" }, "r808": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4G", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G" }, "r809": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r810": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r811": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r812": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r813": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r814": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r815": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r816": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r817": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r818": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r819": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r820": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r821": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r822": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r823": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r824": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r825": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r826": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r827": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r828": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r829": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r830": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2" }, "r831": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2" }, "r832": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4" }, "r833": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r834": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r835": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" } } } ZIP 75 0001437749-24-014358-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001437749-24-014358-xbrl.zip M4$L#!!0 ( *> HE@*^]DQUP< $0V - 97A?-C,P.#@P+FAT;>U; M;6_;.!+^O/T5A _=30 Y?DG3)K9CP$V=;G#;))NXP-VG R52%J^4J"4I.[Y? M?S.D_!8[:=Q->^>-L<7:(H?D<#3/S#.DTTEL*KN=A%/6??53QPHK>9??_>OM M8?WXN'X O9V:;WSU$_S7J7G)3JC8!#YR8NQ$\M-*K#);C6DJY*0U$"DWY)*/ MR8U*:=9V?4;\A[<:]=SZQQ'5@F:VE2F=4MFV_,Y6J13#K*7%,+'ME.JAR%HH M7^EVPF[_+A&AL)U:V/TY"TW>AK;#QD$#&SJUO/OJ 5U^N:?,+T_19FGQV?!9_V9P<7YQUAM<7%V2Z\\WMY][EP,RN"*-XR4K?#ZX/3@[ M(+?],Y1S?O M>Y?]V^K5/W[K_Y/TS@;8TZS7F]O_FO]=&"OBR?*B%P&YC92UY!,,ULJ8@$1< MHQRQ";6M'[AE2T/)2:@TX_JT4J^ (E+FE#&1#6?/)J?1]'ES"XT%LPE\K;\N M]:A*'ML6+:R:-CCP^Y:*BS@0DC1\P4\V77*$)HJH+"UK55Y.73]HOE[8EV4; MC#Q\[58$\1_U\AL'SO2XY":JSHSS U6]( D=<:+Y2/ Q9^"8TF[3O&P ^ M\6U#FG'NN//]OZKO-[?']]]3 QX/OIU.R)=,C25G0QYX"&CO^$S!HIFR)(+Y MJ<@(^#8I(*(7')2DEJ>0)1$&E*3P!,M+$M,(FC11J;#$*B^W(I#QB!M#]01% M4OJ%P[H+W -%(B$CHH4Q#(8#IJ 7Y-Q(J*$F +_-Q\_YIJ7 MD^ &4F$D$#SP;>TA!!F,") Y0H) @ IA4 SRUGG#X1-0F)I1J;*> U'PIC-1B" M4&ST>H.6P0)NS529%6UWT'VIT'VS/= =+/DYLLO&N[8IP5F639BX5!P+>-PS M^PX$%X1J[N &\!'H7P + E04?$V8!$>@6 IY&W,W/C-A(JE, >,B5YA)C[M< MJX@S:#9D#V#&..#68ZE_%R4T&W+2@V1Y4TAN2A9\2*N-HSWN56D<,?_D'P66 MSID'/2Y",*TNQ */351HL]7BI=5B6 UW?#],@ 22^M8.^L\(_:,M@C[='NA_ MX ;ZP/D=??TZ/ -DUA$MS-.'(,4-.:"L7,F39E5HF #2YT@8EY1!BF=N'CR@ MF:?S14J@N:0.MB5KGJ,N*.D"=@I([:"+45(P:IVBH1%,@&5P \)S>T=2,IRI M,,BW7;0SCIR[%*X,!X4L4 8X%O(41#( M 8SG;$<&7FI$"+E0U/8 3^<7W%[) / R&;&U^7AZJP#VOP%,Y"9](<#QWB MKQ^YD7!ZG.&"&?>6 'W:./D.O"\4O&Q[P/O!XV(57WB$7E:YKF> M1]L3,K[Y'-#=8;-IP GFR1-S^2+HYWD48;M!<;%2\,^THU#T6Z7-C,^[!I@R M386UG#_"5$(%%0/V,P'ZN4GV(#0 ,3!(/. 3CQZF\8S_40A0W\6N(HOWCEZ[LMS= MIT^ORC:";GDNYF\*UN1;RF"@X;-T^R#,RV(>A@!6P<\#S_#QEUVF2&&_8"*W MF9+FK+U4W*7BEPS9+3J%ZP%)CS6DL@ Q%T"!@BZ'Y*46 T\QQ792,D11Z*; MT6'Y>QA=YFR>YE)-./2.$^6S-%V*!(#<9ZD"5@S[/\+4#K>/N31!GR9^SX6ZX_P4];I$,)HY96;2BEBDXKS<9=HS)KRF@*JQX=-D[>-N>MH]/*6S"; M8*<5R9GO/6_6FV\:S7>-=_63^MOFF^-F\^2DTOU$)Z09$.SLU&AW W@OV>+Y M0]'R3V,F*S1Q43/O2M506:O2%FGD=\3=71$]#/?J <%_^VWRV :.CK[O#FJF MYC'@?E3MOTY_6?T ]+_-'Y^<25;?W[<-_=Z6VQELT[A1UF(!N=; /1G'RUWD M=6>)X+'7N7_'HP(/@OWCE:]'=W9]S*Y[Y>43E5X_OFS#LJ;?_W].Y,_^YT]+ M2S(Q(I&DQIQ6?NO=#JK7O8_]ZON;?N_O\%H6>Z\_G@]N[K4E<56K\6HC<@%R M_?'R\Z?Y:B !-@ #0 &5X7S8S,#@X,2YH=&WM6VUSVS82_MS\"HQNTMHSE/7BR'$D M63.*+><\E]BNI5ROGSH@"8JH08(%0,FZ7W^[ /5FR8Z5QNTIUN1%)+ %LM] M=I\%I79L$M%IQXR&G5<_M TW@G78W6]'A]7CX]H!]+8KKO'5#_"G77&2;5^& M$_C(B#83P4Y*D4Q-.:()%Y/F@"=,DTLV)C6>//[3=@J6%J9<.GO9O!Q?G%:7=P M<75)KC_?]#]W+P=D<$5JQTM6^'S0/S@](/W>*4HN==4.&U7O2Q9Z%NV[?=(] MN[H>],Z65%^GY&&U3J[.R>"?/=+OWKSO7O;ZY:O_?.S]2KJG ^RI5ZO;^IB7 M5KCP2);6V/,0Q/#9?5UH4=9L,@T:6[DM,$"W;64;'2!\*/@ C_#Z9(C M-%% 1>%N1F;%U-6#^NN%?9EP@Y&'K^V*(/X,B/@]U_A0E\U?.["FQR4W475F MG+]0U0L2TQ$CBHTX&[,0G)-K\G-.%>!<3,@-RZ0R!-SX'.9SYJ]5?_S'<;WZ MKO4SD1&YA/YXS+0AUSQCY%0F&4TGK?L&@$]\VI!2K#ON?/][]?WZ]OC^>ZK! MX\&WDPFY3>58L'#(/ 4$B&D"3(C+AAACIY%8$4A8PK:F:H$A";QFLNS"GAK80E($E!7H/KH$" M 5=!GH!8"L-!$_!K,HYY$!.=XW_S\6.F6#$);B#A6@"9 S\G8VYBV*#.6& 5 MQ'DS4$V&L$UX0F 4?[)HAAV:7RJ:#[\#-#,2\13P@M";X\,#*(,X=*N%?IY& MN)KA, ]/ Y&',"=@< $,'N"78V[, $*(?HP*0LSA72!+WUL:(DC(<6(/)7(! M H!I"<"SRVFK3T!U3"(AQWH*>,6&7!L%AB 4&YW>H*6W@%L]569%VQUT7RIT MWVP/= =+?H[LLO:VI0MP%F43)BX911QN]_2^!<$%H8I9N %\./H7P(( %05? MXSK&$2B60-[&W(WW(=>!D#J'<9C1E10.=YF2 0NA69,]@%G( +<.2[V[(*;I MD)$N),N;7#!=L.!#6JXU]IA3I=8(W9V[Y5@FIP[TN C!M+H0"QPV4:'-5HN6 M5HM@-=SQ_3 !$DCJFSOH?T/H-[8(^G1[H'_&-/2!\UOZ^F5X>LBL YKKIP]! MBNLS0%FQDB/-,E

$ S3^>+E$ Q02UL"]8\1YU7T 7L MY)#:013N,<%7 8O$"5SY#02 ',)Z%.S+P4B."OZT1XSLN$)C,#= MKJ^8+?)A(&1S[>IR7^;F80V>PEGH3)KAH4/TY2,WXD^/,VPP8\X2H$\+)]^! M]X6"-]P>\)XY7*SB"X_0BRK7]JP%\0;9&]FZ#()<(8H6J/&:61.I#;3C:VR8 M2X.IR!_N71?9>V!(!.$ \NH]Z4+Q $!J3__QQ4":S_3:=UK%5,_J",S(-GRP MT%(5:X^"1DR(X+=,%*\"[LE[?]I$NY#QDL\!&]L3,K[Z'-"^PPZG <>;)T_, MY8N@G^=1A.T&Q<5*P3_3CD+1;Z32,SYO&V#*).'&,/8(4_$E5 S8'W+0STZR M!Z$!B(%&X@&?>/0PC6?LCYR#^C9VY6E@7QKL[P[Y7BH5V*)#OJZ 8A9Z.< 6 M3ZCQP#O@#$!647521HEF1"3ACTCF/I M4C)=@CW ])M0_A7#_DT VH'T,9U)\7;&?@ITW2IB2DAI:-+X0, M3DKUVEVM-&M*:0*K-@YK[X[J\];12>D(S,;#DY)@H>L]KU?K;VKUM[6WU7?5 MHWJC=@27I3U8XX:)FSI7*OC1&)DU2R^Z( M?5%%U-#?JWH$_^ZWR&,;:#2>=P<577$8L%^@=I?%MZ@?0/[7N>.3L\;JX_NZ MH<]MN)V]-K 7F?X[!E&;(7D:0D)KEH^M,?LLY5(YQ?\-Y::[NE; 1U',(ZI3]U6M4ZD@;T%\]U_P6!9[KS^<#V[N MM<516%\V,S X.#(N:'1M[5AM;]LV$/[<_(J# MB[4)(-N2$K^_ *[C9,$:V[4=8/LTT!(5<: IE:03>[]^1TIV8B=-NZWI4G2P M 8%W)]W=<\\=*;5CO>#==DQ)V#UXU=9,<]JEJ]^KQVZ][I=0VRYGPH-7^&N7 M,\OV/ G7>$E!Z36GG4*4"%V,R(+Q=7/&%E3!D-[")%D0T;(ZQ?ZD3<]-=;:\ M(9(1H9LBD0O"6YJN=)%P=BV:DEW'NK4@\IJ)IK$O=-OS[F 5LSG3[?*\^T;, M5=I"V;%?\HR@74Z[!Y^(Y>U>,&^_))H=Y[F[)WS\NWP#*C25#Q+N#R:SB[.+ M?F]V,1K"^&HRO>H-9S ;@5??0>&J-"WU2S =](WECLH[KKC.YQ!ZENA[4^B= MCL:SP>E.Z(\%V7"K,#J#V<\#F/8F[WK#P;0X^O7]X#?H]6=&X[NN__V7^8^E MTBQ:[SJ]$! D0M! LT3 +=,QZ)C"AR61B"I?PX2FB=201##$:WQ+E88Q2RGT MDT5*Q!H.C?V;UW7?=UNYS*Z\UA'@(\\PCBPSSS5RM]'Z %$BK9N42I:$0$5( MPSQ] B'1I*CGG"=!IU!9>86M1) %(E(Y]AI5_TYZTRE4W0*PL%/@-,RT9[[K MGWA^S:NY6%V_4JDWO%JA>TED$+?+I M$0<30_"[E*0V6DFF&"!,1PF 5Q$1< MVSP73"D##_Z-)3JF$%-)$93[V6=0;9)WX,*!:9!H#9=8&)DHY< IDPAU(AT8 M2ZI8B-QUK+M^S&B$3C$(S6XHC**(!50:W(V''%@'4&:*Z$"ZE&J)A0:=8#]F MX.6-^.:U5ZVUPAP=$AP:L.3ENFB M?8CP*KOVS&!I]#]GORUG_>^+LTQ$QMANA+@G:L($SDN6S?P-H0DSFV**P]MP MUS%JPCG@;1@+XK)<^HG^ >:'VJO5E? M>B%L?LD=\S<.1QG=;&]E<10YC733TB\7V'-_GZ(6ZWY'[7@L=Z$G/)5C.$IQO^#8]X.M&55S@X>&<:;T\=3S?A4 MN"8_9M9/'RJS%+8GRVR9'R]_ '#V7RA\[^N\4=1\M]8P M;Q1KP&.Q49KWBF< ]$7,^Z_^067'9'5YYPTMT.ZQ"T91ME^4VF7[/>HO4$L# M!!0 ( *> HEAFCAZ+C00 (,2 - 97A?-C,P.#@S+FAT;>U8;7/: M1A#^'/^*'3)-\(P 21AL\S:C$' ]38 [LNGSDDZH4N/DWHZ;.BO[]Y)8(P= MMTV;.$T[QB-TN]+N/OOL[1Z=6"UYKQ-3$O:.GG444YSVZ/KG9MT^.ZM74=JI MY8M'S_"O4\LU.WX2;O"20J8VG'9+42)4)2)+QC>M.5O2#$;T!J;)DHBVD67L M-]IR[%3EM]=$,B)42R1R27A;T;6J$,X6HB79(E;M)9$+)EI:O]3K^+W!.F8^ M4YV:WP.\K;M55W_OU-+>T0?<>'G@Q\L_X\@=NR^$GZ7MQVS\O5 #*A25]V+M M#Z;SR^%EWYM?CD.GWG'K#MOX( ME4_BL3<#[_5X,A^\ON-NX22UCP%<.T8\\,L?6Z_9Y^QU$B31F M4BI9$@(5(0V+\ F$1)&*\CE/@FZIL79*NQ5!EHA(H^Z<-]W;U>MNJ6F7@(7= M$J=A+AVZMGOBN*?.J8W9=9MVH^&>EGIOB0SB3HWT@&00,52_#7E&@Y5DBB'" M1(0P6 2*B(W M.AO:;@&W!:BL4VM!NI+9"M,/*L%JS"$M2O+%U^X=,-"%;? L>UOVF!*@PF=@A;8Z1J-Z":"749N]:\UK@'A M104A.JG1TDKAX4O/C)]&^" &< \$"\R*!1G60;0'"7QT/9>=8X.1]J*FP@_X M2E8J>7I?Y\BJ8GN)5ASWF@#YS'4![HI2TE]73-(EYBC3=,ORC6K+XC+!/4:" MTRB'QSN>WM;QKH8+LCKG]9.V+JI#B/ J>V9^,,SZG\9/38VR^^^B,1.15C9- M%/NI(DS@KLKR?K'E.&&ZH::X[VLZ6UI,. =\#'W!;1\%*?([L\Q3T:X=X M# M9EZM^P%JK7A>#0GV3V,S.^@(U2^$X%]R$?V%P2JGFRFWW(\*IY%J&?H5"^98 MT-H1,J^_0]KF3E;\1*EDB8Q+UY EG&%.%WX9&[+^'+?AH7*%@O)-].$QQG_$ MB'@'VEI6RX>6'.-B>6/-OAV-KOKJ;7?/;AP?87+:;8K]V?/79\^ TXSK_S''&.6V>G.CC MS 9P^M9"?:CY!(!^[H81LFL(.,FR;NF--YM7)M[%H/)J.O"^PS3M2R<7P_GT M8"V.*C*YN;^H&P!,+D97;V^MH0;J/71!+VKFYZ-.S?SX]#M02P,$% @ MIX"B6,%'%M4X*@ C]H T !E>%\V-3DR-#8N:'1M[7UY8 MI]2](:J&%$%JHTBQBI9EQS>QK9)T\RJ52J4&,PV@K<$,/ M)O$__SM;;+" I M2Z8$*Y5$)C"8[CY]^JR_<_ILV:SR\[.E2K+S;[\Y:W23JW-U_;]/'I\/>0/O_T&OO\_^_O1CZI05=*H+)IMHG?+MLA4]7VY4M'KLFJ2/-J/'CT\ M@O\]/'H4'3T_?/K\\"2Z^#G:WS\_6ZDFB=)E4M6J>?&@;>;[SQ[(IT6R4B\> MS,MJE33[F6I4VNBR>!"E9=&H IYN5*[6R[)0+XKRP?FW9P]YSF>S,MM$=;/) MZ>=%LU_K_Z>>3P_7S2G].4]6.M\\_]=W>J7JZ!=U%;TI5TGQKZ?K),MTL7A^ MJ(OH8*J+4WSKVKQJE50+73R/#M?7$;XK:M1ULY_D>@$?5GJQA(_<G(^NX]9Q&EG.95#HIFN=1@0R7 MGT:.,!VBI,!\JL*UZ=4B2G+@1'L\X)/#P^G!;^O%@ZBNTK%O>,I7.FN6SQ^? M3$^7"MGG^?3H,;YVR\KZ/#O$X&8MLA19"7[MB'B_8W2&N,T(WA;(#K@Q(_-_ M4QK_8EWIG"\U2 M17__EV='1X>G\BC]-3V=Q*B.:@T*KX[P*7AE,LMUO5S!A'_A M:#-< ;Z^@O^H\?7XJ4R1GM?P<0WJ52W+'"=Y$/U4P$.ZQGD7K%+CX%>52LM% M 23&!24-T*2.-"\N36H57>EFB7/>1.L65IKFFVBI\LPG6,UO7)=U#2HHU\V& M5_X2YKY0,&$8K&BJ,H_VX.69FNL"; ?X^"U/B#GC&-Y;J7(^@=$VD;K6-1,4 M9Q75;;KT!XCE*Q6U0&BP.H J3('?6Z -3BJZ6FKX$:A$?%^5:%A,LBJ!E&X' M8OY.U6V.A*479FJ=5$U;P?9540:SJ!*:):[)V[LU4!=)2KO&OVLJ35_=:E\N M4J @FA_YALGW79E4&?[V>PU[TI15;X-]OJ2G#5=&2Z(K\,6*2$LD2]; 2R 9 MP5"#PZ;6.(&RA9T#EFN2]ZK B5=*%V!R :\RMZ5E6\$*>?MATW31PON2!BTP MI $^E:E,IXDEB5K-5&^N.+/IT].ZP^WPA*Z PVH0Z_#>K&TT\!VR6-DV ;%A M,U)=I>T*#ACL;#EUB%A"Y@EV&S5E4BO=K3UCMPGSBA" ?+>2ZF0)&(E:[9'_ MLC(:=L#U"WQ,<%AP,62+/D5'QO2!M,UP*KLBL MXQ(G"!]4LB2:,(DJ_V4HQ^A,D+."+&6%(#]\,]-$Y-WP>0CX,5-U6ND9+EKE MY=4.,]?T@$>__?\_:\_?H(6+N_;.;,#9P_;\ -Q%1UJ0K[BG*(+M-O4V%249 M/-O ZH"CVMEOL']&Y':%30D*:L$J270I,H^H3F$Y5#(PTAQYO5ZK5,\U\T9" M IGXTS(23JL6O;3#.WST(3N,&XN'Q8H'L\%PZNQGJ/3@)*?E"OY"BTAT+.XT MDY54BGF*%0[NAIK/<:-;^"2/_M'F&S$2V,"?GEK)$$?+\@HE2\QJ3X9"50&# M7;2+MFY\WV#*FBX!N<-?1M.SNK4$AQA5E&X@)&&VH(2S3"/[@BVX M44D%R\_!.L0SD*L$IEK 5$#=[9T<3H"&FQJHH$N2^F0@?80%XW^S/46+L M'3T"PQ%^LT2=M"G%.J3]L$J$SWZDAZT%;X5EFK95119*A9Q$U,5W'42_E V* M!U0#&5OI&Y@__(<60SLP:H^,J,+E5$EEE&UWM4[^P>20W&45;,*X?+0<0'HQ MJ7(-@@V(\]99F]$%Z>=DS/Z.K.D=$VW6:[#SP:T!1B"*]TCU9XK"3%]&:0XF MXXL'KW_\[M\[T120>\"_(N'V,7XE8DX^H3@=?82QO>!=/[Q[8U\V$.^)O $Z MOUW.]ZORJO]AJF G7__XRS]_=FN )S!4Z?_S[=FR,@._OOCQU?YW;UY=_/O^ MQ0_O7KUY'B7Y%1SLTVA&!AT*\4(%DSF-Y.A&1^OK4V"LO(3'_N60_@=^EZ3O M%Q7ZG/OA5ST"_-OWPP3@*. '+O_=KR__0Q?OMQ+ TH%^S^%=\"G0DT9>2O): M/4!!E.PC*VZ:\L6#M?D 1.C^>E&TJQ4. M1WK?(U>^>$#Q1OZP0 N/2)+()^L*#LPU$ S](OF,A@X&J]LY/25_(CV)G"\> M,#]U"/(!DDV-,QL .6DQ/ MCH5PTS%B_0 R<]U6X)ZJNF\*Q"!/36BI2U'QKT0EK%3"QI(H(Q-0*JS_-B]S M\#Q0]Y _5#__ N@]3MF30T/9@RFY"1AI:U$,I6F=LXT$1$MO3F;Y=5M=:EHN!LB: M#1M,:]@-%P?L/H-V:J68WH\/_V8> \=E1H;9)0^V!ANY,E\.3H"LTJ$9F/%' MZ,7.+[Z6-WL7 __V9,VVGJPZ02L7G2OXQYX?],;X3%1)4<_A/_: ^=%!HP], M/!BW&I4Q[T:E<@HS>8_4$Y+8>4Z&=-W.<#LPTH^;@)_B'H#YI'K!_.?P@R]@ M5VY!_W24_K3XK%P;44 Y!A)H%;ILH$#!8S$R(]>_MR( )2X/$K$U/]WQ**^G M&H_&J'GAXF3&:PU]99*,*, ;<-\IO "V)(P PB-KP>8&D5]&Y(UCM QFP@)2 MQ(R\"5\!4J8E1K=)"R.Z?RK2=C5#T6-S&%9XBU>/)XT=>0CW7A?L M2( BOY45RK1&8D42#Z'H30$$-MJ#54K77[\J]RF*(G._ N>W*$TTV/L12/V$ M-11RH1D>?PZV6Y6!:CIZ> S_3@RK#:P3/Z

PE^@*131)#O43C1G^[X/'#0 MZ ZCPKZ5HK(R-# SR2D./#LY_3)DRA\X',>CAP.8C?V2Z+\Q!N('@24>,OD? M9E%*@";&YC%BJ:U -=2>9DA2D$>U-@+(F$'D$M6H4\\#E58$Z!_E&$A[H#,AQ?-/F2@*:Q]G^L9>@\*R#5T:57:2TB.G) M\2->V8J"<9-8F#$G@P'% /\5X]-]:\.:46164=P-CU5*AM71X=\F^!8R:VYC MS=!9\:V3WH"[*,4M%F%; )&$HUJ48KZ&H4,1?\115YC/]G*^8>JM*$<#G#/E MB8HPVCG?ZKIB;'!O*NH<8Y1T!F#+]SP6EP!_#7P6S9(:?H],!\/R,Y+^'C5K M)PC)4/!:X"\#=*#D3&',6\YM\\AUF.TKAO-Y'K5,RH[/#!AD8"DGBRI9+R6] M0,YG,BLO.?:Y=^0O%Y:*T #.-F.,;6U2#D9YH>00.<,.%)]O_+AWO ?/&:W! M-S)I +<$=LAHUUA"2>YJ8-W;UGC,:]S%4V8#-*.6TDT!&C%FAJ);881FRTG2 MXOIYD(\>+(23YLC:+N=.L4+C=Q3?AH1GJG*A MWL& L W_;IG+=F!M]R@\.*,<0C\44Y MI:HL4H1"$7M@D-1KC+Y6SL3:X4"#F*B/;I\6,O >W/H?;#YB,/D,A!8=])/5 M08P9^6D$OH<:K";6]%! 7OCRAG3W4#:;-K W$@[!O#M3PA\@0 M'P:T602P.I.V)KU/\\I4TBSCR,9"0T8FL_\E_Z"*OM=U8E"58 "G[B<$2W!G M"'_U8UEFT1N.XNR)H4\S2Y,U@IV!%3,!4:'U/.1V[^(Q$KG]:#Q)""?'$5J M4]YF=C;([*/'7^!;*>)9$;/N;4-91/_5'=Y(9C79B!2R8&YQJ-QP%NAGS-L\ MWZ=CR-Z=02YA%1C*2#(K-N G/CN*B3(LH4#G41V;V-X>57>:VT<]+H0/(--]"*,C@YF$ M.;[C!O9NU[33$Y=B0"@Q[ W)> =IGRFMQ^X! [3"@D\#_-!U&&;1)A1#Q%/71A[-8"KJ4JI>:"ZT M;%S_("? G'WI2*A5?*/ ((/%";%Z:$V33 F0Y!QHF@UPK"H6R0(W6)@4H8MY MKA8)H2.S%@Q=J7'!.@O8!\DL4HW&"H-2%?&L+GX#*[ELZPYN^B :=!\Z\2(X MUQ1/3-*&IFKXI3$?%4P8"HU9&\>420$UY/3*JLSY%4&>@?*@UY8KW30V?\$? MNW6_+U@@SQ(ZN@C=+S);.&+/IVSKW&XJ!NJM6[+2L6X#,=9MP&0SI0).^S%K<,\R#=J*X M9(ZZ%W*Z]%(46PK>>:UR/1%VC=.6I+7.D& M\G3#VT%(VS>$!1[0 M/9G/40R1?##Y0)PF#V5 XF:#.2L1Z3&^BU+)"<%&+CJFD+9+DY@[:!G\N%(AU"NH@.A'!.+)N^ M5#@'S^VA24WB:*[-!B8VINAQ1+G6A9=]YZ7@=*YP5Q:MSAOK+QEI5:M&ZH$H M_(QO!54M\F^+_&%I2[)^8W@*Q8U.VSSAW"OY1AJWOX$SN=-FUF@P",PLSR$; M-+;(A]MJ9'EON,F3&'U=SRBRWDHG,,V<_8=\]W@4%-G1LM:YQDFC3!YQ$\:4 M-\\U/'J#"MW9!MT*1C8OT%'8>*95QP;>;FD1J7D2?R8@@2K0"*1W/A,[N4 ME!PWT>M!-RE(4!=H18*%HLS SGW<,C3*M*&Q7776 "+W5D5)=Y'TE4%,PLZ: MFG*1P[A:\IDD[PQFFE$<9-Y''<"MT.1-@H# M"\QY>S!W%Q'!WF$<#50AR=!2'0A-F>.)I@S"AC$=$/#_0&DK[X/%PV"A\XP8 M$&UY=&ZHEP%&#/&HX+_"# 203*NRKL';4/LS,JYE4#O#.JHU$ M.%T*ZYZ9K M2!ZT&'%M*@:Z4FQ[-G&0.6;-@>+X'6>344.;[$P70 P*-6T!@E^Y2L1$:/-X M#-J$J7RDD4[U.FE&RAT^KG"-]C#:!E,T62@+#ODDJ$H$&"O$Q,R8YI/O1-TWR7ISVA&,_E B7+WLAH,V M F9\CNA=>UR-/VYBTMZ6\ZD3M\92IZ8[(Z+O4RJ@2#CAR+,B5P)DN M#GC*]XX>3R)8A('07U&(ET2'U%5@HZ(RY7X^GURH>=88KX3+NR[10BH&.7#6 MUKJ@:'%);MDU>1FAUNQG")7W.WF]U\G&'0R2DTU9OH\HD;],\GG7K/O*TG=G MZ2>W$7@=.J/ 2S8N! ^4+ZO 2TOA2574%A47_.TT'EB BB##P?>P08LJ6=VC MO;T+$;]']Q+Q>_0UXO, /S&O):6203EMJY0H3ZATD@H,"<]SN,RC% M^H 6W0,-N1$_[C.+ ,IO67*%7O]@;<*F8QUAI(BQF930T 4J;(U%>W53IF > M6TF(()5*$P?Q5Z;#P"CFW[T8I@F:!Z:'(W/Q0U7B8UC616B6%;7"S;&8U@3? M8_14"8H61[F>HY2L6VI[&O-\R'VQJZ!$ WFI,B>.H.%WL;,"W4.A%4JMIC,# MX)%HB"QJM[&FHT&*L_9\4#@P'.+BUG+)9DDC,"Y1MJ.S7XYJ%39[ . I^D;Q 3A'/EI(:@+P,Z M4ABHE@!F1RA6",XS^#C;]M.A@N 7'LJ)H3P29$T;QE6$D HP0[6@QVSXR0.F MWY \8[?0!&HWC8&E"T@P?'U-LT/]^I'=9-M2R\H8^S9_BP)F6 MU30?KWK7EL]C,)W&K9\[^+CN\PR'V&>JBU'\WE, =ZI*L,4'>Z[7M4$D=R#9 MW8J#\3*#X5J-H#E*.$?ID3+QBH1NN?BQ6J+8[;^MAA^SVPP-N*N_K3FZ_0RD M8^K 7)Q*9H]T2Z$L@W7 HUV^*$S3#/JZ MUM?X[1/SK>UTS[/%7=M.ODGL0++VW' ^VG9J1UG,YL+&PBCI$@BE;=>VX5&D M?9HF_(CP'!\W;G_LWC$^U9O:YV[M?B$U];>?\3)A'V)=J4N$O^<;;_T=<$7, M&8<;/%]@IILXN*QHINAA5W$8CAT0F_'@DK;L-6((4"_/-SU+@#MCH"FZQCY* M=(,&W?N1JJHPE J6;)/.W$]_9(Z.G1TS@LIV[?16;=."5VQ,%]?-H'0[)K@< M [2N9AIVE5H84?L*D'TI; QQQ)8ZR.F1A"C8!W,-I>=MA;.Q#:5O6(AMO$VM MGPI+:4.[LL"RB7FWPH,%=1\9[_9PX6V@_(X<5ZE)\?#G)M-IAB2EZ%L_H$P6 M")(]B/ZKBYF7[( 8/E*I1'ET56&!0.W5R [1@8C$B5H\&V;O;S"72G&-AMY( MLNIWX )!:)/[)-9"C1>J>(_))+V*<*\E]3LD05MM0)0NVIQ_%;+ P:/#DXO] MZ=YR>^GHA_NST3:']NG1GQ@J[T>T'__1B'8PIP\*;S_^<@/:0]'IS]N\'V)) MB:D\OD/O9C]X\D_TOORSB]8K6X:=DN3==7\>C^-QA104P.2^@9\D &!M_#GY MN&58<&K+10,(U=TJI9T#80%IA$U%(T-\,G000D C*X)*//PB@+!E1!0+X<&% M7258">62F0S;Z8^:I&G5JL !8>+&-E7-F7)4<", 77IW++5?6]LMA+'B8A ^ M8J.[M0GO3N,((\+X/'C'YM(7[$1M;_@(,4Q#;N0(4(7I$E)TIX_7*,+VI[Y= MX!D*SQ4S_WB\A@]1LP2]M5B.6E_^(7/GZS>\N25P M%[C9R4UA@W7>UF,'X.JCFHK'UX/[A,59A;1'! MQ,BNVA)(7G 34^ED":1AXL[:QEX3)G75&]7PKP@ QM ).6"VPC4DM/S4F/?= M"YXL)J83:-SIHS6*2KY%%YW/KW/.S<'!(?'@.MUTHO9A1<-84YM9V-2F$[[A M4,!XSY[8BUWC%77 S+%7BKY K#XIGHT-7K@ -_QA.\ V/'C.6HM\66" MS97*\>1,C^3V0./T;P^@[H6-AYR8' ^W&C-LM..!1+2%H08LN4(>F83HTT:Q.>G$@;F952!J?'5PB6W$<%[BG:AK5:7HINYQZ&X-C>V"WB8L,J8H M'GF*B"XXI63V;IMAHVBS;?[+W5Q]N_NV_),[*K ;C#XO$KQ)WBOKXP\.0*VF M@=]:[*M _H;U9$:=DUL5F-XN8$!MUUE''QT^.]SI4.:HS!I "1FHRQ9X:0#W M2H*/V4KF&@T%]I,*H\UB+AL0!EKW#;=R"&OXK$&\1P4@B6V__"N->>&&,?>> ML24;E@?BR&\M^.P[^TX/"4%U"1/!:,P0_37[3>;$)F:*AFJ37)NHCBM^YV:6 MKK9'$EQ'SPY_Y.36R[Y5K1*.9(7 MTMS#=YD[X-Z\=&NGD ?WRC%7E'#Z$>_/412>((=H'U=B[%6+>WL)TM$1:(@^ M'.DUS_=I&@^])XC<>C$-$Y@9?A4E*NS=,+VO+9I%0N F8.;%T/!C,-=5@R(# MG)S6WN<+YM>^./%A)PUR1\P.]YP0Q_G&[N^Q83#KD YFQB3=ZE$"PJ%W$!AU=)BB6['[K1M?'6=A0JAMDR7"(>2N-(P2 AX+ 0%(7/O MS?!FB#X0WF1G<2!CUWPWIB5#]WM@UGB5FCEG68/F86=@N0PLV'5 M6S6=9&/:S14\@YXS-K+B+@Q8:9+C:U7MU:^7EO5=IU;P7%-B/^9C R2$X^S6$A\!\)""_/TD>Q7Y1(8RZK UL: MA).NEPYY68(WKG$ X+[48/B&E\&=F*45Y@'>"\(7JM%UO$:$AO*::JCT:@;" MD/2 4^:&VG7IT#78=-J YR7X,4QZ)Q'"I_7@O#'K89:9;Z17NJR62ODKODWQ M(/JYK%1)C@LWIQT613A+_TP-G @3 >N<-I:UN,^:SSI?NH!;C3C0,*"SE>E] M7XYG)&C3OM3:::-TU%5YQ=U ,*_C1W\M6%FN#0S/+NV/Y$CLD^BI&/,UO.!SP$.&6*Y,X9VG!_->[VH;;,H+\RK24N;'IR&BP(&-&D3X0 M2WXZ-1C"J!\ZQJ["2WSW:B03OY6C/QVWW1>,^.G]PXB??KF!RB\:1CQ\X]>3 MVX.);4,*V);OI$>\]41V'#?\9!RS\LZ3P*0]:Z7>VVL-;M?)@[H'NL"%)A33 M2OJ)S[CH59H<)'BGM\G(Q]S^0_EJP+:D\C%S0V"Y;K\0NLEH#BL8Z&A!*.3F MYG>BN1Z,013!YE_",+8$6!?2/!%'L:FX@5:E'0*:%NON,]:#ZP MHP[ZE=N[.$P$*V.,(6M+"N'OEO# M\@S" $Y3F'ONMSMSUX=C/9BJ%FCQHB5:YCJSX3-WC?J<6*[ARV_\V\=GF^ I M'+1_2W)@9NRRM!D%%W6.ERG.'SY+G&4!,PFX/55>M+"2EK]<0, W"]F;WND: ME#J6*Y- W(.4R=!YJ:5R+W;!0/AO4,/X3X9?:S@U"G^;*;"UE%R)@._'CVT4 MH5Z2PY5I0A#D+"7%=&9?K&ZTQ^A M^)(#5ZA;HYP%WMSY^,-STZAI]&E7+-2>#62'\E[EZ;GY6*7;1^6,E M+\$@!%_<[?PBO^3 0MAH/\+2[T]0@> #+PT'VQ68.9O,0NPF+_E+R6^B'J+B M4I-!Z=X9RC?OZ&!M:+5(];5T(B,'BR2'<\"\7(@[0*3J=AV&+QS[["[V9S='OCG/FU9_WKT^AJ,\XF7RV#*]&P3##1.1_6?Q8:)>%;5"X84U]@R1T^ MA8_$TFW$Y@($SHW1*%AQ@[8A& JD(VF!609L7;O@LWS@4@J6Y[E2WG7]DB#$Z2BCY7XE,Z&&HJ1>+/JNET[&T@R?+Y23U\*A MJSBEUWV8,_\D="4E+22!8RO6-Y/"AJOF0'!=+]V<^7?>WH?F")H.."5[B0@1 MQ[4S$%@+FH R=+_Q'/C[[8H ZA!M+/Q&KEXR+E/E$@K*_:NK,>!AW7-HA'=;\HMQCWD".I,9VUP/1$X; #>7)E]0%I'?SC5X1J;X^_?X4:]P+XS^X% M:OSL*]3X+PLU-AIT>GL-^I\B49SGHPLC95#XM84-24EMKN1+M^@##SK+<,O& M$UV>K]IY91<\.&!A^FTN*[5"UU=PR)'Q?K,=;MU@]O?H]OM[(5V\@NZJMH56 M);%FK 'E[72-07^*6K'OD[_OKMA/0*JBTJOP5[6YLKKI8@7G,@4;REM@=%'79:I-05?0R"/Z1YLM? N0 M9*R[\-8;7R+G@A[7IK=Q6U&+1R007M5>9YK(,@Z 'ZM-YZR3; M#,S>ICU8O.:7$%(E66H/U4?;ZJ'XW4R!G<:0^KH)(U]VA($74WC$VS:OL5P/ M/]EI+;?+I_KX#J;Q9TNHZ] M9MB2OE*= &,8!<.HB:L^Q.,G3>AB:JXI-9)!C\E@#3SE /HD>H6\#$:;H,,^ M "MQ#1Y23J)ZV9&.J=KJBE=&C-T^P&IF8LI K./OP>R## MQOK7?ZF \_317=J]M>3!P7&SZ9&A0 5G]CAVS(A(E+;NM[%%Z?JV41!TQ#QX M8:&0G"ZG6*?Y35,N&.=(271W$7&$1>TF:$'NMB8G<]>W\0Y=^[#/):-UK2\^ MN)M[)L!L8-KH;L6+%:*#$!"_F:I_&V.GDH:@NNNR,FV7*T4E=:F:"(3/ MOXT V6NU]M#SW>LX^GAV7+#$/E;)-=49"(9Y7=:UII29PZ'42[#_]C&- M(:U($G-_&UDQJDXK/;MKC]'99.^10!_ =2ES.!L8Z?4ZFF*:D2YR^&-CH5UX M>')*(YY,]K36DRZ:\ET ZAXF'D8+;7K173?M\\4L+(T)+I*H#8B[SU_C+YIP MA&_CM)ZA/]ZALL&F2(X?2=]*ZD.N%*>Z4OK@IG('6.%@ ^F;O;M^,^GQ/(N< M-X+=@OU,O,X9#@8_*,FT)GAU2/L:VX:UK4W, M@E)>-L<6K@&IB1]S"N9EFC/YH%4'P.K/%KT1 XT$ M!4VMZM!';5=2J$5VK]_Q3D!Y#"F\1!"!RKI O(F)ZWEHKZ#'&6K^9;0W/3RK M6RO#P+TB,*[(NZ9G#?+LX?PH_.)!ZU->HODYK,LA M*/:F=Q^V;@:'E7AH31&>I>S!.,%#"7#_7MS??V_+YK0S$G_X\;3&3ST);JO_ M,'!=&Y!+&[0D*,83O''T'H:@-EN+0HQD0N)T@"[$@46:D\E,B)2^,F$?G%QO M.KF^_]V?D*[-C/[,O6L8D$PVU(L'AP\B-$[6*.2*A?V[QK[G\O?=+WM@ XDL M,M_X3=JF/ UL7_H$S*5OOOWFF[.F@O_ ?[.1P[32698K>?O1DX/IW[RU-=F' M_)I^\O'O9X0WO\5+$BN0F#'1'<>1.<*_M-)[67#XZT\V%6:O_5G9-.7J.54E M1-/UM;7%[W=O'M8/H[ZO'R3J\:&;_ MA"CC8%NH"5XNM9J;:F0,WNI+Q7_^"HXQG._/BF0?]6Q_.N:[^/'-JU??1Q>_ MP/^]?/GJ];M7WS_OTO$S%6L?=2J?OXQ\5>DT>MN4[U5/-GP4JGP+_Z(U<@_A MNO^X>/MNWX68!@-P?S"P-CV\E\@:N$';(DOP'[,RVYR?/5PVJ_S\_P-02P,$ M% @ IX"B6/OS%\V-3DR-#@<"0G!@$N!A ,M]?__J: M"P0EF3YBGCUSV/%^VR?/)XH;+BR;??/&YU6ZHGZMW_WKO[ MX.3L^T/X]O$=_O#;;^#[_SHX2'Y1E6JR5A7)=)V\6715H9J?ZJ5*7M9-FY7) M07)VYP3^/3HY2TX>'GW_\.1^ZKD9)7E>MJN#I5I5JM:@K]4-5CYY\^_@.C_GQM"[6 MB6G7);U>M0=&_Y]ZF!P?K=I'"7TPRY:Z7#],_OSOKFX?O=%+99(7ZC)Y52^S MBC]\E*RRHM#5_&%RI*ODZ/!85X^2O&M,W3Q,LJZM'V&?*]O1,FOFNH*'5^\2 MZJA5[]J#K-1S^+#1\X7M>Z?! $WPV6A6]KWO>J]\ER;T29H8U>C91K?0UO3) MLW<+/=4M?'!X]OC.],GC._@4_%@]^?:FLRK5[ N:U)^KJ5D]VC*/L.U>RX]\ M2S1^^O,B:W16M0\KY+[RD9 !O_8=40^%OK!];"XX3% OYTE6 K-F1\>'OZ_F MH\0TN?\+!@HM?)ZA?I(>?E*Y6DY5PST]2!/8Y,=7=;BQL)]@4I^CCP\EW*\: MI)XJDW\VV?J/GLN73R_:6QK.%?CV]!YU^0+.EL6E,FWR4J]4\K1>KK)JG299 ME?S6J'E=P4'1K&HXE^#42,;M0B4C>6@T2?$4,1K.*9/@-]!,-BVU62RA!VBB M2):9QF,FJW*5U+,D2TP-YQI]=:'Q4(-)9'-%S[=U,L4V#/RAX2OX>]74=&!5 M0T?&S@5U:(N<9"'R?,*'M(&QUWQ M29A&;S4JK^<5T!,GE+5 !Y-HGER>&95O>4#,!*?0;J/JV01Z M6R?JG39,4!Q58KI\$7:0REGE3YHI'<[AW@@MV,G",:I"T\$T'"[BN.UY1 ME#J6@=5R5=;K'CE2E@*E@F6%-9DWBI=I/#JWOZ-TXSV#K#55P"W$3Q>LGSL> M154*V'F&H"U'@4>%-0Z&?(Z]Q.M NP&US]LD1NQ'9!C!8X?)R%'?L% M#@H^:&0:-$B206%C**"(\W((-HMO#Z0%3@0%BAO;QDQPC\*S+? &D+&;_@Z# MM@+$;Z,:!.V<1:N<"4@K.0*$PB@LH8\9+J=9J5S/-),B(\%"R^'HA@,R(E_W M;V,<'W*G[_M_6%A<3V0,MPGLN@*'N<]0<@/7YO42_L)C70X*7&"F*XBU*6X](52D#H[+R;=Z;E M=^55%MT9[+'H2QQ7HX@I4K?PS/@#$T)C%&QD$.PEG.JHB;P#F8^;$O8V= P' M!%BRR(:@FZQ5UL!,2M!6D(M+E<'Y7,'1 P)Y_.!H N18&YB0KDE T8$=CPWI M%>L>LF5X-(OL0B5S#0(@J6H8E&)2#(X<'@C'NYV0@V\/+!%..,,S7==T!K>7 M\/CZ8(;;=WQR!CH)O+- J;BN1?$@TCHQQMLQT<-'4S##.L^[IJ'CL,'U)4)A M6X?)B[K%'8N"J& %< WCAU^TZ'"1OG1BY09.I\D:*^+[L_7"" :'Y*Z;:!&V M"RNWF"29LZ;4(&N .*^](I.#"_ P>4D:*0FP_:'?]R="O^/="/@S<-BJ U/%*+,I",&, ..N3^"1 M[)REREC2RYZU)EWEE*M978**@%N4%!?S\*LF?&+_(Z(/U&7%]8WX(Q$X.A?Z56P$6O4!_ D!+4PX4]%-;\DL]!;OD8!BVLRT'IZ,EFI M0 4T_#/776,UXHNZ571\TB%1*FZDTZ#N%&BU M0B=RZN") U_"[W8!,!F>8$_I\>.?-#R?W2$@7U")NH/HZ-1DJNRE%B( M^]NLLMS^_:&1EKYG_U(7[0(;.?H3AEB^^?:;;QZW#?R"/PO;G3QU5QZ"[W#X MH;_])/*WGT3^=GS^3EMA _&;TY"7Z5X[MF_ 3A_4M_$2:;0FS@Z:^W/P0>29Y^/81UO03;Y)'PYD.P'BH5LPOHISRKD]6[1[!W2XS5_?<1_0/O M9?G;>8-NW(/XJPT"_.6G80)PQ&O'Z;_Y[>G?=/7V2@)<'0YZ[ZB87>R'P\&[ MFQRN[[-S;]Z[W5 O?GOUYB__?/;Z3?+R^/IO@G4&>F'Z#.F P-//03P ^GM*!C@962)JO,#'X9 M@_:!O@;ZP+K:\=Q%0O'1V*B2''W!(V9"JGA9D@UINBF>C1A$P1,1/\4#$;:1 MVHB3/(07]E#SS'=<*J)34:^LVD:1'E(X&_1N@.$$QKW5[TK][TX45(F.@,;: MV5?WT_M^?'2?^CP%X^=D-QJ?>Z^O=?O$SB;2X@\D1V0%M+8Z/QL"?2?797U 7D09 M[V5F0*9:)W[P$NCM&=L5R(^V>WP=K/>F (/BY,XI_)Q8IAN8(7Y.$9%Z-M,2 MZA)5?$QN\7"XV\?QGIW"4M5B<[KA+@ /9AT7. MQ## (8Y%X5J*46?6>+4RJVO@B#'!"9/E(*R,MM+)VK/D/#,<682_\>@)S.0H M9$8.VZG*$9+F@R\YANKKRPK/+F0E"5VAMTAVY:NN5.+U/BW^_-_W3XX>/#H- M DZ!X??,'HSG.4WE^,'I&<]O2:[M22I<6I(MB#*!_TKQZ4U#TEG(9#&3%QOW M6TXV\\G1GR;8"EFL-S%4:1.%AN=&AWLDZ!T^Y"HO/ E+-:_%(1'[WT4<$CM= M(MX@B,_'$=2JWAHEF*I =L0A@]F5SDSTK8^/10U 1S]M %CI<<#?$KLRP%Z@ M !MX'WD-NN5G!)ZPU5$Q09B,@F:!K2P0A8*.E758, Z!>S9QT+8:#LL&U+*1 M5]XJH-6MLB:;-]EJ(8$$=$ FV;2^X-C!^"2<+DP5H1N,#T#-?F6C:?8P0[$A M(H;=8+RY\>.-O3VXO6@.H:9*'?@IL%N-5HW%D\1D!^9]U1Q/>8Y[M+G$CW^Z MJPIUG1]_-!03&5V_I;1X]0)LS@9^AT$0R.,>-T$>#>M0E+T=0"TVG-U;W*X# MT86]#H&N#* !07^_&M"[D/!=%K'C9ZP"V;;J9IQ MM )16WE-P-0*;,[&@ +C!%^_@70#&A !L-( Q8&HC(K2/ JK'SG(D@-+]/?% MW4.+$+ JE-M+EOC0H0NNP:&==8:D)8VK4%F[2!/GK8KYF;2FI_Q" _:7R2R, M$/2'W+]"T B_E?"M7VHP4U^Q43P6/8E&EF3*,?L%; M1:<(U[=8&P1?D4D&$X3?=%E6P/_.E'#VI6ZPMU.+LV(F>\$X*>@A).16XQFF MP?@JP5QZ] (QM:50#Y+5J+9K*K^=/67@\*,L*]%< J)>R?4?G2-O0Y*[AB1/ M;D.2MR')VY#D;4CRBP]).N5C1_\! BE1']A%[\"S?T1O;]4VNA4=O!,?4\-$ M!S@J2??V636S3)>86B3Z)@&EP]"E'*D\! ['@#Q>#R;11,.FM#33!MD2-7K4 M^&GWMAS\$;!W($LKA(UA)!>U SMRUFI<;LY[JS83\838]CR@6[SMBA+P&@[! M7*W_9*#;+)' LS@&'&DF&G'))=HXG@!VS1>9QJ>LX2,I6$WR$F:IBX%<+AZ[ MY%LP;IZ>P^P+]G9"<^@]U-;#2,13[ZQZ.(6AJ M)MJ.QT+1Q_H.< &,.E57* M,\ 6!2(?34Z(M0'*MW'"*,^%_:?3 8Y5U3R;XP(+DR*LO2S5/"/D?-'EK4VM MPX0O6 >)NE.:V!)]K0WQK*Y^[X#1.M-+<#E,!KTX/3UILS.!&B.9S\CJT@4(2VJJ7NJV=;$Y_MC/]6W%.O$TH^V*R415 MX;+6W)Z4I9RYA<2 D_,.+35L.?0R8S9E1;WB$M)A@1VS9_ M-H9([F0=C(WBLJS> VE-EW$.'IDA-D9?=+A.&.SO!23(-> ;9$S A=@6.9Q' M1GD0@-T+(='SLC/0-\$W04 L>]2]ENASM+0]M<4S>@UY^I&:*#H3.B4D7:3G M R91$Z21>3^!37.I"LG=H7AW:!31NQMB)0-2K"0_\1JR9[,9BAZ2"3;4C<.D MCMF7MSWTC *G438-*SHWZ/RA#2&Z2J F/!4<#B7N"KS3I>M\UU9"654*QF*%$G!5N%X%IEWAW(?'3P[.N=!QPH\9H.:%CG9MFA8P;O; MO3I;F]C0B)RWJ!=C81;_((=JNC4-I'?$.H\G#AJ%\Q:7S;:3F\<:[\'!T]PK M!OT\:M8MT&FS#O2JGM)[M9I%I.9![%/.AB!6@-UW]6A2!2)A#2(2D+WML!P" M.L!33%HG^ F&6VH4JQ1SX31VULLI<&XC-(.Z9A2\KO!8!I&O;,=>![^B:^2- MH;Y]^N- _L6-LO[>9\(3$P(9&4P-'IV#F=-A',G MX**??6H#80WHIA2GX2Q(HIQ\%>A61$!3,FVI0]IAB')+5<':G8HXHMX1;=T>Y'0J)",&#IVTV+ M!P6BE3$"%NV*@3QO7AV'H,%D_RFQ):I,J$-2O0ITCN,&PI_"(@2QS)O:&%#J MU,&4=!CIU(W0)$8#"6'/85K/S-:!*C;S^#IFV(&J"+?)0U^H MI_[TUE-_ZZF_]=3?>NJ_>$]]>&CO:$B23>4]Y5&U"I<2');OH*,-DU:VQ[ZM M/S9$BNI-LDA]@&+-N 0-'%"=ZPE M8J^\,*!RK'23A0D]I+D2@08*!"$T1T L?XQ-T&9OQ5.5L<.30'CRY8;?R>Y]KPX M[8RN*'A2DU/M'?F(XO-T,TBN@O>DX:#VGM\<)$';NGZ;$+1PD96SOOE]R]PW M9^Y['RX*>]1'49BM?9P*UJ-N(L];#D^JRC@$?_2W/R%!8U24&1)]#\LV;[+E M'^@M^8RK\_VG.*CJ*1;I=6F7R>LNSV';84!NF\XN_N)NN7)% :A4,F^R*/6- M:OLO5Z6]3"""E]^SWKOKT"1[MOVNK>>%BWU_1[]JI"@VE &^F9$8L\%^9CPC M$1_L3D0*O5-MJO:]0&D.@H/A/=:UT,2)H!_#P484:<9'M^5DQ48-ZXF]F/@9 M%\*%?5H5&P?74 0= ^Z31XD%9EV1L5K9H,H@$7Q&"?O"]RHA4K;@M7F-:*GU MLMC6O;,)[7I&\%.(4%?H,M68(FO:.@>5Q+^P&".Q7652^Y2H[G :.UJ4C[LG@Y*! M$1OG-Q9*+ACI\0\[ZK[;:^82O&RY["J=V[/]LD$D6;5%NHD"+HR3X4'/I02W MP [C6J"#;<;;S\(Q!-Y)WR!^",\.PV1G@;([R-$=[&"+_X&*'38';T6AS:&JJ^H#VGP)5_+VRB%VR\-A? MU6)35GHY._T,X>UYP<.YU5&1N'B,4BMN$F3WWW#RVXH I'[]716@;9:RI0'? M-N6*!=Q\!'+=PL!8O''#JETPK.@V%_QT2YHWC3VU#U$<$I7:X)%^#0/'8+U, M@SY?5+9&&'UM]#O\]I[]UMW)Q*/%5;N:?)/49U2X?<.H.G?1$"K#;+BM'>:> M+B=3VM4<'^Y%"H%KPL8*S_%VXVM0?!O;AWK=W1M75OV2$D(W'_$B8Z_-JE$7 MF!]5KH/Y]X"C*I)TLQO=1Y>KIK*4BJ;LP!I\'=26,7IV]LP(-I,O#+_LVBXK MG;WHBS?5?L4$::B;@+>*@$9N4H;6E75YA7-^NG +*@WDRC\FLX#Q90WB-7H20M!LE* M%B%@NZ1#,30_X3"98R+%8?*O?H*5Q,[$\I145L*?J :SR4Q0W&:(#D0D!CC@ MWK!K?XV]6HN3:JA%DE7_!BZ0=!YR9(T,7O$7/"##HRI.P1TV;W#:7;,&\3GO M2GX^7O;#LZ,'YU+@\7B\V*=J+^*?O/L!%]>$3LJ_HW,C7!G43?C<[Q6%V1\2 MBI9[=]?T$J$/10FX9.XG<;0YM6Y&?J4Z3D)W*>01VNS]BMEXG=%A]RC5 L\5 M4<-1)XR1^+SW&_&J51':KR"B.+033NPRPTQ)'\=EA--FKUF>-YV*=$XF;NIB M]PP=0)FV)=^$VDXE-_3*TEAQ0*8:Q-2X$(JQ,93C-,&P"SX/)I*]MP]O&W27 MN\5PKR'+80MZA^D24W0?]]R.^2+/-\\7KV8,Y0I?F:_S2?9K'/6(;]3CL2(2 M O?<\,YJ%TW=S1=;3^%PY_E-]WMG>C?"<;6ZZ\S'5=F9;;MUS-48*=N^%OX$ M.X:5%PY08:2KKC V:0M'A#O*:@?&Y;<0=_L4;2!YQ46]I8PSD(:).^U:=]NI M%&!8JY;?(J@<0TEDU[FT^)C0\JI5\_H7=SKD4,_COX_[;4>H]PUJ(WYY]1"O M]QP-R0Q?O[ 71XM3^;:5*IS&I0I[MCW;B=LK,:9!9 FOWP4.3X.B%G-,1Z,C M:NTL6Q_^B;972E=S]&[\#?U4^\/<%N)Q=_<4X7^RX<[HRKN^(,N5=O>@-/^J M)/D7)L7#\67+NJO<%=6!#V:1%;:NAT ;6$7A,@HTTYNLR._T,CGW=O(YVWD M\S;R>1OY_.(CGZ%*L6M) Q/H7Z@QXD)!A"NTF"M2_H;5&SFER>5NX! K:6*D6B/DBDYL*EJ :H5" M?RZ^,M9!];H%L",/:GPN'V.]YO'QA-0;(R7:J@I?WN9H^F EB:OJ_?A> _BL M*9>DQ(VU'APAA4"0L^;^>B"D^+2N.L3,A1J5.- 8)L8Z%.JC"MH[G? 59E\W M>G[KMMW1TJ6HK\NV0EX8GYSA[<%5ZZYPNSH\,H[K3GJ-=GLPQ=K16VM>2;Q* M>&W %)\,[=FL:>BQ &!HR\.)]VNEB'!2J12AOR$46)#"4C.2G<46&!QX-0>3 MH6E+8+$ZGYU%=>!\F/*3;Z-K2P]N4HSCO397T]E0P=5!/'[6]-G$CVVDS7)U MQ(P]K[4$6WN9XRB?LARCH:6-YWJ J?DA.>"@*:;WO5]5W!NZISR]*SS"FSK MTSDB&F6!QE&-T#T5'3L"ML/J/N%M;'(15Y0-8 WRRP578V3POTDWL?]8O]&X MNVR0!R>]^ D7B8R6+-Q;%UB>$\39'2%ZEQ_-\>5XPN69*N?Q M&NR +MD!+NRPO!:I>TZ3W*H;WBB3_6;N,[IKBB7@R=']HWV, >PHW@:P5Q9 M=$761 2BRZ*/63OA#$0%YY:*8S>BIEAH"VI5+1>6B3.$G2(RIO1&8)[1;]3; MN>]@-&&M(4XXQMY>.QC?CZZ= %]".7430;M,$4/+"C>([NH0K8^A7B:3HD0D$\>OS@_KW>/6). M\DIB;N#_'V-;H^>OGN)\R=[D*HKV/CN.Y..MBXIL0U(X#W#T5A5PJ,&G(# ] M489HPJ$0^_PF'=.A=J+01F!06JMXN"D*[R6CS2]&MAZ&\Q<'+F3\&+0?U:*, M ,6Q4];NKNKJ@$VFN&0/:7AV(3?T.L_45HO:X#,9:#SI$4LPLY5.7!O&@6%! M*.EEM[0&=:5PH2F04#O UD/D"T6)BM?>15, X,7(*>74\ MQ2OO-M.R+(8!&[=:S,?AM1LQ5A, L?E0H3L>$4O1"7V"S1E UK 0I.Q-5J,V M9DT;TRIR,P7/H-&!U4NY@ LF0Y;8K#)!P8O:<;6OEVZEEJP0$675.O">+(.A MN^?P%4NU3:)PR!#AFPX[$MD3MD2,S_ >9(A H2>68WZU"$OHOIY7<+8X'&1# MP$6#:F.'0% L#D!84XQ$VCV& KEK)9Z^A:8D]7B(2_39P!#(A&/*Q7.*9WZ8 MG!,^!OU-:P]X);03;D@::QK8Y)M13VTDDNH%A5,[8]:32J&- MTRHUQFJ@F/ M;B9O_ C-60H[:VQ#A+]FN"(22V")N-6[$B8"OV0@HP*]'J5X52.-.<,;-&<0 M0MHL/"2U;C0CD% MH4B\1XJ?UX+@QMF>G6:[EEA&9+=7Z:/A6 M[Q?,5UUKS7^?8X7&H$R,9F\)5, M'UIN/"*!X6Y*K=O[V+Z...:]O8]C8KCQQG',*"KW%08BAZ**?Z#%]Y\=-_Q* M;>H=W2_/N'0:Q@K#H('+8*$B+7V]A./E#%#^\&V.& M>3A\)9>U:5$#A%-UW<^%FZXEN<3V'QGAUL>SMD4W)5E%D+;AW;!HUK/"X[S7 M5T93TNC\I&26Q@+F6%/BLW?CHF*^AR#!4TL*3K!%S'CQ* I+6P/V5 B8BKJP MJC>I,+[N@G@IFRT(O#UR'4F6R;W=LTQ<'3$0_C_*/4+.GM[/A))[NX(1WP0; MCQ1&H]1;=Q_6S:JR405>[V[3!%I=ROTS4ZY (B6FP,ZI&QO<3[F4FPIW_W )C:NU4X=-F"M61F MBHL74YU?O,%/W(C!\*^OBC-RD]@H0R6W29#Q1FY#51B2A]#D0J3UJD%SEX*] M F:6$MY4%-LF[P:N];KQ<.H53,F"$6 7Q;'HL.AGH=E^(^Y$Y/*A9H@]$&L%&B@ M&TG;3;W_&GX'91-_%/BUAHVC\-U"P9FJY,XL;!\_=IXRLR"G0J$)8%"R6!05 MB?T-IM76O<'^7'$V4YX(B1MQCJ/3P5VDE['U&AZ()89;/$V4%'A0(D&U@>2%UCBMR6 M>\3]HHI\O[LJ\K-EJF?O4(551J[ &PQLXD]F[IE]K5'LC>*/E32"_K:.X.A> M#0[3S1P*CI8E+O_P";+/0B2]960W SMF&Q-+_> E,"^!>SR1*,'@V MR@#L^WH^V'T]&8G J_ES'5WQ.JCB<44(XS%&="CXNHNT]H,.@?Y:T65H5'&# M-W81IB9OWKY+-^,R/.)R$=VHBUGDF2YYZ_Z]TB@77^.)@\&D.69DXU/X2"KU MAUP03+)UT!4!,VY1?P3M@0Y.FF!1 '<;'W61#WPLS;$^U\[PA1@E!W0&2@7( M%H>2C8D9ETL2!XD>\.U[RFBYE=,.J*7P0!"$>=][RE.Y5H;O(Y9F8>\U'++N M/\Q0%A+! J<0DL#N%0V=2>%\%3,@N#8+/V9^+UC[6$=!?0*'Y*Y,).+X B>" MWD*]4+K>+/[+U4_(-I.EOJU$^87&,;[?^SC&;3[6;3[6;5SEZ\_'$F7K^&AW M;>M7;9!YLTK5G9A\+^H NKBIUPH89%D7A!F TSHC[ );17 6-G,"$9%7@(YE M?C2WN5GX>!,]3@A_5T2.$JGL24R6N[<>I2[8>^L4-"OI&=J*] *NL,T(VS7C M825>(5=#3#?+PLD[4JP/=0#HI]3.I9':8@029PG#(<-.CJDK/1Z MNFCF*#ES&1-,5/M7&(!I_&",!1K3+ MI44 GKIACY?S J&NM&+-%#VDA&E*-T"K- J)LRU1S5YFA=I8,W^K M-MT@P5V5Z[CN^*;C7"'@41=44!0+[CQKZ.CW<7/?^0I?"&NZ[L\B#7=)7SKTHA$0GR M7K&1@LP&QKVWP9H''I=>DWW ]H!E%%;,;]02'3B2)I)8'TZQ?Q6I[#*?[+[, MYU*6,KJCP=6$;"2<@E5KUK"AM:$8%GFBV53?O)Q^>!_"UJ=R,6"CE9UAC")& M^WSWV-I+$ XEW07#6Y)W+0(F^^4S!WS435GJ"D;*O"&N9!_]])=H^V%Z9T#54K1M+\W@&-"DT$V9Z@M*V2 M#@=-W24/0\6.V0\9 '>Y4MP6)$*42DMID[G;51]MD8?L&!!C=0-9'NO2NH>;NO3W;?U*_'W[SE^Z[]DN\80_:XM3!L,"!+3LEM[4MT#YQH M-J4%P\B@S\?W04L42FY('KP:.KIV*@UNIA),@^K%E^+H!_*!3U'' TOJ$*=4 M7UT2Z:,RX]$<>,@1R%L4,K)K&%N&A!H D?DR;CDC: *H2URI#G2)J!X6;J\+ M\IY'J+7XFF _HO!>'SV(:6A.S(=8=>Y(/F0 MAX1A'BP#. 4$E17_;NK2DD+;(@HV(2ZJ[I:GY H6\L@HZK"+_:D=,?SR/WP. ZCVW(T6:L<6U.6@\G M?YR4'00(A@7WPYONVS@OF+*65G5CK^9H%-42R-5$$+WAW8'(>,M5D$C8OR1S M,[4/:&#=,K23^=C,\$-J>KB[J$O8,1P* "/H)1Z/+%C]?C@\E8:SWI0ZS?1%ENPR1$ M-Z8#H;BH9,0=TS@-.+K\T=BLMDTNV][0A%V/:W\XVE7 ^TW76"'5WQ=]EUA,4'\Y0XGB/?C)13@L?)@%/! MM&LV[D4G4A%!:5JW8=8O-,QZ_S;,>AMFO0VSWH99OYHPZPV5/ 8*SYF6;ZE:H>^W;:_3$[ TOER ) '5 M#81OE .7.OLKV1GDB]/G?%2&>LWYH"QBY"G2Q!SZT+V )S M5#5+1K?U;\$CW1IGAD2"GYR+,:-=D5HU+$.4<]C<%223(G1N=8: P,/@Q:$J M/#;!3[+TK^C7W<@UT+%4B+#E5(U^EXSO2>T\6Y>QOZQRY]NV)EUED$%S*.); MZGI<,Y83C9T@*#$)XP[1N&PURC KQV/)-T>+)K5-]@ MDLJHH[^E6TIY!3+1 MPFKLDF; 21(7B(!413^U8&*C.@%P/:KXBNKI(AD?'STVG1-?%ZJA;",1=6V] M>E0"KQZ(W#X^(2VM73R^ R\]F0091-G&)/D.EPB'[N&?X^/W[]:T@]U*-,R0 MMW(A:["=X/&NWS]7Q/,- >W*5_:JV(R'2Y"WT0"5$YY48;808 M[@%RB=FJO"03CI"SFV<%^XS(542;-/07;0Y(&SNBS[E,'V0WW6Q569TA;294 MZ[.NK1]%6CU]LMUV&M@WW/3=L\/C/P43V[20KGV5GO\$+#MZ\EICR2(0BRE1 M/##AQ!#[W%.-7_V#!O'IZ'W'W$E>YW7;)G_% CT8!S?F"R'])^2R_[@9>^@A M"NFG"ZUFR3,* 6!J^4*H\/&VW*>CY_DOKYX]^RDY?P'_/7WZ[.6; M9S\][)/OZY,S7P/E46+]"II"ILKDGTVV_OA4'_3UW3IFOPS'[(,OT#'[M_/7 M;PZ\*W/0U?I17:AV$/#+M"[60-=%NRR?_#]02P,$% @ IX"B6,OH?G*S M#P 9[@ !$ !N=W!X+3(P,C0P,S,Q+GAS9.U=6W/;MA)^/S/G/_#HI>D# MK8OCI/;$[3BVTWK&B366?-KSU(%(2,*4(E4 C*W^^K,+7D3*O(F$'2GB&R\+ M["[VPV)W"9(??GE:.,97R@7SW/-._ZC7,:AK>39S9^>=AY%Y,;J\N>D80A+7 M)H[GTO..ZW5^^?G?__KP']/\E;J4$TEM8[(RQG/?M2F_\A;4^./C_:UA&KV3 ML^/CX6?C87QI#'J#MV;OQ.SU3?/G#T_"/A/6G"Z( 1*XX@PNG'?F4B[/NMW' MQ\>CQ^,CC\^Z@UZOW_WC\^U(T79"8LOS7.!+6.9M[7;GBSBPSC M!C[GH%=>B_!NJHE-638UW$@32F[*U9**E/RJ"6H M[MX&]OT4/M!/VI)+3N; M!=Q(L:"NOQBD28/!&?2Z]$E25[")0TTD0WN +84Y0%N&S9^L>0XCN)/BY##W MKVP]P!+'7;P](8)&Y"YAELCN6MU*]>T^+I]2?<,%MJ1'EK=0=+WCXWAH!+.R MNX4;J4X%ES'AE(B)DA4N;A)MF"A)&MQ*-Y!+GL,?[J1(?6'."%D^[SF\L4F< M(T=T)T6.G&V99?C>23>XF21E!99C+LYA*[;F"!*W)>$S*K^0!15+8M%2\X-C M,0SE'=ABZ7%IN)E-\W0+7,JM9ZE)4- $S\RHG8F7S/[ /.X? >M.MX(4!2XG M2PA1U"0Z,?&DG@3)V5:)_[I!<-B =\*)5&(=TZNC!HS7GK@2WX@<#[;CFN%8 M"CD^H^]21PKE:^IKN[%*54-9LDU\5D.(9UZGXDR+&N 4.ZFG=\+C5M(YIE=' M]0V=\L=US:WZV$Z&\N@A3YBRENI#)CXO MCM"JN;R0' ]J(G(C0*@&R&0,$H RZJ:^%(F@IH$0>*7!O !W5%VI:]'5Y9*Y4R^\!!1:$#*;47#TIT,F1Q"]123/&*1# M'*4G-*'.[5J\J"UBX+PC8+ =&FK]ZNI8Q-E6'6AB^8ZRRHXJ9=/IMDI!$^:R M'=9IR>FV.D$3 6E!+4MA!V,@,!BDQQ"A2Y5AF+9G^>J N#:L'9+)E8ESD2\4 MEXZ![1[N;\IRC$# ZOW&TD7RK>T5Y%)5\N6?>[V>81I7(:_DX85K&]>*K7&S M9ONAN\'KF1B^H/:=^[,ZWI@78>.0HJAA&GO5VVW:-[ME>#4R:#4[6YYK0X@ MSAF.A.S@^#*2"(]B MB=8DPO"FQETLD?'F(1+IQQ8XA68$'( (GU/)8%#$-X+5IA2Z4/96,\J,-\.4H"WLBEO03D6L>V9I]K= >)#(^H42M\T(SNIZD9M^$ M 28N^T=Q4+4?&&2F3)CD71LLVW'1!9"?L++$A.5XPN<43KZ & :6%^X2@A@@ M" 13( CB8Y@0Y,!1,8"L_"N<>9S1^FM21E>Z['N::5_,^&_6W [Q/##Y8WF4;_\M MD,>XB.4Y<*B<9.4 S0"1W:4NLP\RS1ZDL<]3A .W[CM3S"$MPK&S594=8F(- MT5M^M[JL?)QI994Y(F=3L5:U^8CU@5OZ/=IAP>3:]4(J)L'54==J[.++.M=E M];>95G^O\KF8O_+CETG^!V[ZGTQ.(<3U:3,CK[O196HZ13?ZTF7"=YDF/%5IE7H2.D9V!V['?@_B6\M?H%*P('IR3OG&,VT8 MOX8&KLI$E^7?9Q=,,!6[6,MAW*$<&P_);T&.0X=$WW2IC.;D$DRE(J:&$,CI M5)?),]]EA0U%YML7 1I5-B\V?]:;1QMG/UQ+5N]:D6U5FM!A\2UX:X9#] MW*UR/:@%2V$-1P\XBOO6"(;LQW.YE:+6^$7E'3VV+^Q:H^FSG]'EU9!:RV^W MWQ%"?DF8 PZ34SKSU:-A3[\ M_)1=0,[;Q=VZJ%2T6]YU^H3'5,^ZU9R]1CAE MUZT+X51PZSH0M%V;2DW-A:_BE*4@48RR>FEX%?+4B*GMWT[!IV:C!Q4%#4<7 M402T:G%4[0T3OFK,4:_M7FN:08O M9?/G'6NT>79!.VGS06OS7-/83)#9C./GJ7&I]Z;K.SJ"BFT8:<1$=C$YB0EU M/R$0%DKB#3AM]+!A/%S(.81^YB.3<]/RA?06E.<]1]",G'K,-:(INRJ<1M-E M**3Q.PAI7(9"YCVA:!&6]7JEWN6GI&^-^,BNVFZ^S=DN0C4WW:4?CU=JHL4# MO8)\^D!XFO/*4>6-A)M/_*OM/FS]V%90X=1R8-UB4V;%8=#N ;JQE!IAG5VV MW@;6]QO:M.#6M+=6[YZZBDPT0BMGZW7^;MMV_:YD,N4*\!3W"EDJ0+>9XZ/G M>*1L-L<#\I5R,J.J8A@]P# ]7ZH?O^+S]ZG'P_*A'[VS"QED> 5]T/KW&'I\ MXXXIHQ'GV^XJ-P/WAQ=PEY2ELI>K0&GC]U!IXR)06A580::@Z=U::0.4#JNM M?O26\U5"Z=3O1%I/6[3;/'G,:; &2\^$=2N)'%BD\0HNR\1=B>@6X"WL4]=, M>24A-.4R4.8'$=T#M(?='@:T/W0W?U47 M7DG_TD[]T"[\?Z]"/_[UZ\^H<()UDZALHJHF'YD#S&: 5OPWWWFG"B$<=FTZ8C*X&_ZD8J_:V'^ A^3._ZEJJZ+-4Q8AJ__0+*V00A'LSE_V# M7T,OT36KQ5[I'17Z5E40G$7\@MI:G-HOI6XIE)]1[IRB! 1 J2.)8L6OZ)1R MZ#*Y^6 (K#[3Q62M="E5'85MR8-?J)[9WH(P=U/EK8UX1<'96TP17KCV)^;B MD-U2_&4B!G=WTP=!U52\6.!':?X)O\ 4Z5BS]:[-X7Q;AW]*!.VNU7\2;Y+? MH0I'H9BFOJX@$WB!NC;.U>G:G3&74L#F2%+JX)M@& H-(>)+0[@*X4Z@^!IX M+C PN_0$@.YZ>#$"&@LNW .EO8H5*J?;.3?T7,DQ6]"QAW[%H9)&&H R.1RR2_?ZR9H3=T;A])%PNY\&:!G1MP1GKF:WWB/EOZ-H"RHE M58*DU2JDV$F=,(<:>X'_9\2)_P$3)CSCJ"H8Z%>9>N=<)THNLD072=UR*?9( MGXNP2;E>"_L0=G&'RMS52!L+XVS)5T1KDV M=6Y<4E6A8M+=4>DS8!(6.2X+R#=N03,@KM)1V:U6NYDQ);69.1#AU/? MM4<@1)'*V82[J2&G%A$2DG%.\"597$2HRM'CK'8%YEJ(#7VW;K:CVN/C%+E" MR2./NZEH <5.ZK3>O0%)K7<#ZQVG0H;OBZ65JT:Z!UI^H7)$'"J*U'M&LZ-Z M89"/I0<5FSZX#'('UTXN)W@]6"\WU:W3=&]&H5S9G=!IK8/OT'YO&)V7CL5WC MW5/^ >07JI1SG=F\%#6CY@#)I^277".,P-)/Z[6)$.R M4LDDJA9\LR+Q\1,U<<8PH^Z6:C\&("<8L"#OOI")! 62\/5PQ4.]$Z(T**"A M<$)WIJ14OJ?+,%6'D''&R2*]7I70[.0J/)[3_NG;?A07WH/O'3V2C3)\&=&N M:C8X?5>J6!'-3NJUWGCV#=X<"8;MVXJP<\\.&@]'\Q<@--E%@R#?GW6B+R9K M&N.XNST:J1W;!EYJBIV3=_]M7746E#7?HY%XK7WG94/Z:G+LO6VJ@K2D]?Z, MP];?YRX9F>W[V]>QJ@B5G$;[H_5K?(^[9 Q?183OP2(5,5FA@_T9#>T?02X9 M//W\OM^QKHC'VMWNS\C5_?1DRM/8C5.7P/XUEQME;H8']& MH_''N$H&JWG_^SB6%3Y_5WG HEC^OUS' L !:3 5 ;G=P>"TR,#(T,#,S,5]C86PN M>&UL[5UM;^(Z%OZ^TOX'EOV< NV=W3NCZ;VBM)VMQ R(=G;NMY5)#'@GL;.V M V5__3U. J4T+TX(CD<:J6I+.';.IC?L@!W_KB9C3M.I__NP]75]'/GZ].H<]F__,7IOW/Z \?Y[:-/Z/D;[K>7,6T@_?OW_?B;_>D@F010J>#WA^?QX_N"@?((51)Q%6\"/)! MQ!?'S$4R%F,IA$XNA?KD[,@<==!.2$%^X+.@IH?>OK@8]1=<#GB4.,)6.RV"HJ,">^D\PGWAJ%)TY\A4J M1ZPPEL)Q(\X5=8@Y89X3411Y!.@ =CA+<=*SZ:8_^Z MJT><\.VK"O%]*:YCP(UY[ WD2O,1RP(.5[! MW"%K_ "J,\!C)L07+">+)_2C"W864A?XJ(]T!'*"02^5VII%]3(G"P'DD!GFE4J.7/F-R-4H$A)T!(_G!6B)XME3 MH67KB'9J?EL=4EY3HYAN\0+#W;U$B8/N/MBW0-PY<#1;&45R3RC8-F/8D( M ML':7! R'1!'E ]%K9!3')\:\#?']'(Z/OS;*VP-=PT1E?)LOT2P2HSP>3,4< M%C,HVN(0MIE83:^8#[ZH4-N-W):S7=BL+2S%&M 2>WC,Z/()\^ 6STMVH0+* M5C@&CQ%/%B/0NJ2,Y2Q2HSQ/0A5G 5-IC)' FGND7B,;<'QAU*T#Y6V[%M', MR'(%[MI7D>QW6DARVIA%H1S0=(LN'8UW.QNL-I T<9/T@[C[)@#^.L>04O1$% 1QGPZX;,&N_8*S MH"SPQ$Z*[<#]M? -;,"GL69T\5S:@*=R+$@7W94-Z/*=95T8O]@ H_*&J8O. MG,K(@M4 ',Z(7M<='=_^W1"%IX*SHA]:B +4'8PS[ZUG\5[E="I+J)W[4ZO ME!TBD.L$FA::/2J1NP2;'I :N>^[)) >IAK!*[ MM%2'5(!UJG8TK$JRD%7*8%JJ3'+W,(VPH:5J)',':T@C&M8619OQ.#=!8Y-R M* C^'.Y;%@BK!O%L4A>:8WA*?9]-JD0/;G%]E$WZ1 ]/:;R/>SE]CO"83#%HZ+Q,I9^&PC&JRNU[]% M>X7U57G4JZE_*RQU!6Q34+XN2>8P]>X)547]63&O8<"X)/^/*8\R. WT9+:L M^("!R>(XHI23GM)K9+SP^"B[-,-"W97@!#/8#+>+1;8S2TW;86)=@M7T^S##:9@DVD7KF:W,EVXNE^5 M4TZH2T)E2V]C=9.#0ZN-X=+0X_FR"]/M\D$'J2FGK5AE_;0,L)=^KG*4&:T:1E%FGW>J?;,++0V MO"J=&<6MZAU@GYYRMB9@6-YLP7*#;2S9"&#]#%U)UD6KLGH'-N!3TTW($_ 5 M=& #OKW^JXNOH /3^%X"1?D0WM*8+\-5,7&09,)*NL)S."ZE-UL FAIX]XS# M-' Q]L0]9T',I/Y"J=E+6TAG.(PXN!Q"1D#=P^KA#'-\"LIX*O,,6RG/JFNFL%^Q,;NN!E]DH<-]*;W90N8JJZ;^FF@O6EYCUV?UXF,U0NF.I;"; M,.MM2N*=)HU*,2^;DGE-3X+"D(M-6;_3@.NH.9L*,L\PS+6#3;IR^8?]2E#3 M==%%_$_[$9\0/M:5PJ_6KX<"'UL7Y/L?<:@U8ZW:5HZ]QEUCF5UM6?R0)E]N MH+I&,8QQU$5Q&':Z9_PCV/H515 KFF53752-^#RK'%3X$09>$[%F(**&'V(;HC;)B774F$2.\G,L*[2U%HIEB:3;8JJ62O% M"F;+N:N"*9/8N73(BRWM 'G(Z*X4]O ;3YV3\/>\EA<$G]*[@5K@T]DS]&CM M_6,DU)ELL<*>.E>>G-: "8SYNJ"^1[OESP=-YO$X0YO/,&, Y3T/61$&1!DO?M[$_1#B6X%O-(JG34$YNBHH>! MGM29^0K+DO/#4Y61 %5400#-]&KZ49>OQDJ%9H?,)>E##!(/LL9D:*Q?.VV8 MIH::-;M\K(JB:WX;$L.U<]30_DO3BCEM8"RE7-.[#4_>H>=BAL9MJ'7F$9XIU". M"[SV^195Z00_7OXK#$_HR>R)!AQKON15M3[L=4,O4/$LJ89D73*"U1K;:?]G M;9RLP7&TRI O :MK]=B4XB]2@4S#/K)J?#3!U%EW-HV9"=,MZ[&BIU8JFTD[ MF)5-A4W8JMHVPW(JM%YM6EO9YBMKP6^R2K-JBD7[N)H58:;7.0@2(SC?D_*T M;F9+Z*D*M\:"4&\"J"7O0==H\=-]UDX)J8?G4NRE"UL=61!#[[]@R*>O*&DX M5]34[:R0G1I,53MX[[/-O["WQ)\0H>KB<"'CSQ,I&#$">24,62;@% M5;$\!]P?95NFCE':B4BOJ J@E[QFS;(J.[DW5H-E,WQ#WL"W%- PP?,E"N:8 MWR9HXQ-F8O("ZF73RK$83NS-J,V4R>MDD<=M%<3EO=B ] US-VJZ5\-9W(>= MJ9:Z0\8:D89-&_6Y)%%UQ6MLVND7ZA=H90Q7_@102P,$% @ IX"B6($0 M:[(D-P B;X$ !4 !N=W!X+3(P,C0P,S,Q7V1E9BYX;6SM?5MSXSBRYOM& M['^HK7UF5[FJNZ=K8OJ/F+*8I+^^/_OAX_MW. U)%*?S M7]__?A^,[B]N;MZ_8QE*(Y20%/_Z/B7O__,__N?_^-O_"H*O.,4493AZ][!^ M-UWD:83I)5GB=_]U?O?M7?#NXT]__?QY\OW=[].+=Y\^?OHQ^/A3\/$L"/[C M;TF<_OE7\;\'Q/ [+D3*BH^_OE]DV>JO'SX\/3W]\/Q DQ\(G7_X]/'CYP_; MTN\WQ<6O4;:K<%CXIP_EC[NBKYI^^ER4/?ORY2-GGWXK^_? M[L,%7J(@3D6/A$(6%O^5%5]^(R'*BFZL5>&=M(3X%&R+!>*KX.Q3\/GLAV<6 MO>>]_NY=V76(AI0D^ [/WFW^_/WNYG5?Q&GV(8J7'S9E/J DX2(7+2PHGDE% MW7:@D. G\>S_?5 S6Z_X,&#Q."QDN< MBID2E(]K*JND&=/B+GA[-,P?<+![8D.)%2UUV,=XAO(D:]_)+]N1"KR5]EA4 M\:ST:16O\ \A67X0Z]C'SY_//A3B\F4@P_Q)69"2# =GGP.*0_$1A2')TXRO MHP%?.OFW*T*+3Q%^Q E9B3KLI6[\(<_!MOE""3.M2S7F/1.GL5BSOO&/F])" M+9NZE]+AYPSSW6.SQFT%3$CXZNVS[>AA./QA3AX_1#@N!!-_%-U7OG\<__.* MRY"M+U],L@0]X.37][*?2VD2L903NNDL^])4C]E.I/J&YR@IGSUZCEF%8)(2 MC66:(?90S-N 6/XUVTV)"2 1%63 M35OMD_OM L*7'WS#_SP>?O4%^Y%WBAX27"?KBT(J.??+\(B&[PCE(/K7]QR( MEUO:7\4PQM&O[S.:[YK;[)8-L=6,DB6HC9\T&K\O9\#=UC*MD$\&[^ U/9;V6-IC:8^E/9;V6-HD MEM;>@BQ#Y8_" 9PO\T1$!@.2+3 ->*T5Q0LQB!]QP*75]GWKM6H+3#>1RJ-K MCZX5R.CB8PWZ1B3,BS_$03M<#+5F M!&5@0]V#8BU!.D'((_[X2(APG:!Y!?:K_+U#-'HA5A:*T06)CO=KV<]=2I-3 M*G3G4P E_\"(7J71)7]Y59+5%.U0RLO-*"J?/<$T)M$U_ZX*R]>6M2:GZ".8 ME*]*6I#Q9C\+95@76MRNM%5(%U+4@I3E:)-/(64Y"_+]WQS1#--D7;(-%1)* M2EJ0<4H1AVCB[=4**2MJ0TK^")5D!S]W[F\911'%C&W^$;/S3.I\492U):?8 MX<9T2I[D+B)I25LR3@B',,G_BU>27;J^L"U)"X0^IA-*'N,RA8U25DGQSJ6] MX)."HN2&P[OG_X/74C$EY;J7CRR7)+W/./:_7R#>4^,\*](DQ6D5:(17ZE[R M$I;M^./B#5="#DAQ-WS#;DECT5-=/O9JB>FN:+.6*(16%>]M=7%.I?N?H&3 MI&YR5Q7J7K(E2I+SG'%PR.0;266ISF6;HN>;2/B19G&9GZ]F\:DI?U)11X!, M1+A$%B25K]FR(AU*=8_#G/)../OT,(VS2MM>5L2"5%?/89'/0K*&J(IU*!TW M?07*O%\O'TA2(5;E[[U%_-Y,1 SDA_)QL29OJN.X&-C7272\C99?HSQ&IJL> MP!H'ZO;)4=U4L ^HVF?G5%,$LX Z_>B<3K"X$U"]GYQ3#QBO NKWL^/Z22)= M0.W^XJQVKQW^0)5^<58E90@(J-T79[53A."@FW;WS);&HU$9&(/JYRHJD3D4 MH7JYBD@T?'Q05=U#*!IN&:B2[D$68*P5JJ![H 44IH6JYQYF@8=,H3JZAUR@ M(6RHANX!&3F5#JJ3>_!%[9Z%FN3N(1>U@Q>JEWN(1>&'A2KE'ERI]WE#=7,5 MGT!8$E =784GD.@L5$=7$8HBQ ]5S55THHB_0E5S%90 *"U0%=U#)76!?:AF M[F$375+<7M..C]6$).7&)N\C\112+LBLD%L<%SKB]FF@<2._LT=T?W>E8] :'?1H=J\8T?D1BD[L@:7$6 M3+AJ*XE_.E7L'@TWJX,Q0F,[76Y2QE;N$O M__B$:/3]Q1)ZG.4)4,7R87V._C#+[OALOG]"*Z7TZL)6Y1Z+I,P5N?V^$<8N M$%M<)^3I-QS-\5<^TL67HQF7_0Z'"6)LYVZE;()99YQ5JJ+MRSW,H=K:[X$&7O=2?VJ4[DUI4[&31T)FY;BITQRQ$\ M9TG3M=6RJFI^)/ =*=]FERE%>ANT<.3NW- %&8&D">SLG>_(2IU(T9"G7"#Z@S6KLM MK+GKR[NX MY3*(W_78A4I(]Z0"PNG,YA;:KQWAWSFFY HRG9NDJOGE>" M02873Z.:<2%O<7:/$LR@TE67-R#6=('/OOQX!F+DP"N8$>S3EY^UY*HM;]7& M./1Y\;54R>U0EATRW>\4=/"4Q0YT8!PN;D;[: B/W M'4X*\,P6\4KS#<,;LZPWXQ! D+=';"/77F;EFJA1TWLVWQR%>#,BMH-$V)_R M^:(NW+/]U/ZU8&R%*R,L/4_I>W\&M.-RS7=R5RXZBI&7*[5&4 MNH[HK"[>N^PUA.&Z"D.5WU.>?8S,Q\@Q=WL1-JL.MK)6NP MHHLZNLN@[$+;6G1 ]/?BP86X=4PSYT*FM3.-M'!C.!7;-[<*N4#,]Z=+P*MG MEZ=+[ Y=?[I$^H9UH[3.*:JS$-?Z$ISCW6N]1HVXK%U%.UYT=>,>SBW'];;) M00\ L6#680-FW*MUN;N+8?X2IV;M0##C&@S>9RH=7.0T7B.$))7.*EG+:+J1\^[ GH]E!R)-_VG<8_R 1HJ+O M8(5[DK=R&$*+#TGF?@FY@Z?_>2)"5W+N-\2K8C^\Y3LEG-.L7=_3+#S-HH4B MP,V,Z&XB@XM%Z^SJSMA-X'="M)&64V:]N5'J@@O*>V6\5^:$O3(-(8Q=%\S/ M 1.KQ ,JKY=8"H=MDW1>M>U8=\)). M,"VNU$E#7'P_$I0/Y6'TQLUT[ECXCI[C95[M8I+^WKU4?((KI:KZO7.I[@3# M1^+7>O6;'6FD/53QJSL2]>J"*J99S1&DRC(].M9J;2I2E[3KE=F/A<+2,*!5SN1@; MY^M7XZ68//L9Q#>Z!*7BHE'EN;,N'^7[#/XH?\JO?^>Z=S][]S/ _?P:2!FJL16SN#(/SN0-PJG/.L$Y?(]'$3TYY>7N="2?BUU?8X,[,!-G23&J= M&DX-5^C6X\+(:O$VY(XO9U2PM;2:\6("N\V=@U,^5JBMD8\5VF)PF_3DV8T@ M_D6$V99QMD^8+<9+S)>J--3/$PYLS5(T44L:'U-\@S'%;^0)TS_B).$[;9;A MKY3DBKS,]:4-B#0A-.-[?_0;H@^$WJ(LIRBA^)[D-,1L2G.687Q!7!QNGW V M>+-&?%Q32X.K]#&F)!6]C)([/@^BN,"@8@%5!->AU9S111F#@U<\%7UZ7=6* M^U /I_/YNH :A1FT_;H*U35OH$?]-J(I7QB@QG UZ'6L;>_DW>TD\E&E*MJK MS,J.5Q<>FMR>N>"9"YZY, CF@M*0):UL1I=4!>T.%9? J]9C%_5K@*E( P#C MHNI@8X8T-QD&1T^!^:J<"<$T6VV(IHO6J6"A\478A6"_06*5GH_"F9'<8(4A MS9SA3HWF;A?C5D/;'39#6P>(*"HV^RQ+2.U*%;W0> M? #(!X"&Z4+VP-@#8U>!<;-]R"XD_A+$*2^$@PP]:Y^IJ*YL"1RK'NX1LD?( M)XV0;XJA/T7/<*HSI(I'PAX)>R3LD;!'PAX)FT3"\+W'+OH].PM2G&V!))^" M99)?31AEW7)ZQJPA(2KA?!P^!3AL&R2U/# M!8[R!(]G-YOAL;[(*>5_C=+HEJ2;#\5:(X.-[1OR>/($+J%4CA%UH<'C7I5: M'NIZJ.NA[LE#7&A\RM"X/4+;S>UK/JC^+L;4B#%<4/^_Q>@A3OBX%;GTBV$6C=,['/+ISBW= M<\1B!@).G3S#XVZ/NSWN]KC;XVZ/NT\/=UO8.NU"\A_YV*/Q(\KB1QS$*>-= M6F)6D2N=ZSCG(@8@F^FQ#2@WH/ZD&@_G(WU&[V(^TK[S.1 M!>(FW:V6?'V)4Y2&,4H.+G:! WO#S_'@WH-[#^X]N/?@WH/[MP#N.]D^[0+\ MGTMZ\H.X=DI*057> MG#@J+;ZU#EVE@P?U9*=<\?E+UAC?8_H8;\1]?;%E4LC%_QK/[G!(YFG\;RRT MC$EY\1W<7NGH>=YN\7:+MUN\W>+M%F^WO 6[I=-MU/*@-DB3Z@R7V37I=ND* MFYEPLNJVDRUZ$^W-F6BM,6!5?J 9:9MR[GLPP0Q%L_BC4\KS\8S@/@@Q&RV<6]I>4O+6UK> MTO*6EK>T3L_2ZA!*#- 2ZP(Y6#;.JO.=-C3&0(WUF\G5&UMOSM@RR9@[RC1WL<#<+1]^6 NL,K0L5%US?[@76^WOP(Q]&-6O,X MVN-HCZ,]CO8XVN/HMX"C6VR2EG%TP'L#I?&_2YPI$C0]B+1: 9D%*XH9+UC^ M$N$,Q0D+Q+#)T>ZM0R%VR\?80M]&Q/3 _)2!N81-=)N+E6,\^X[2?(;"+!<9 MZJY1N$E?=R2+3A6K&&\KTYCOS4BL7)O%2@:A:\M[Y']BEY%Y^.GA9_-W=&KP MTQY! J82<#T&:O?)$>WTMTN[*%HWX6D[,&WH:8XF@_70VD/KE]#ZFE 1%P++Q=.H9ES( M6YS=HT2DTX9)5UW>@%C3!3[[\N/95OL[OF;7M M'NQ';'&=D*??^-J*MQD6I^0<'[Y9<9PM3J=/.'G$WSD:6\@LI9:M]:8YWU4J MWQFHK-VT!+OM<7O6<,H?7[D!Z%09L@[&-K9VNES'SS@ZG-FUJDAK]*3!/M?J M7C-M[W!2.&39(EYI:@=OK">];XD0!B6C)Z_[8,6J"%%"7GZ8TO?Z#FY)&NV61N6RHRAI56+5@;1*6^(< MS_B*>7RX:Y1&4_0LT;639_1ZQ%Y 7\6J7%>\=]F54ZN^PE#E[W5M\,'.(V^U M#W8V5,20F42TL8"+G5"#@%\K68,X7=019.V3)OXF%[6MW3T5A\S=T-, 5T'' MP'..>ED[TT@+5X)3) USJU W].'>QBW<0>G<4U5F(:ST2SI&0M%ZC1CS:KJ(=+[JZ<1/GEN-ZV^0P_6M]F'@PB[!A M4Z[5VOS9V4D-)'/8U=/@G(;Y$IV;M0##C&@SF)R5J>%O.@1J8?AW&2>VNK<9ZQ B;U>[9 MDI\")F[66Y"$]R@+\+]ROJ2V/$&BU::E^4?)$)4O&)8X9[DK9PMT.)#DMD\_:1.=K%"OW[E>;8@5-QX6\ZBLRHU M]&IZ(LT)Y L[>N<1QY%W.(LICBZ+L[OE_EW8*G M0W6J"'!S([J;RN X(SJ[O#,.8_ [(=K(RRGWF[E1ZH*KV'M/O??T=+RGC1'O MP!RI#0WK@;I3FX/1@7I+&T-3NQ[2G\O+AAZ$B,6-KWS=-9&T4KM=2Y[2AG)Y M;^D;])9NDV:-1((E7$SHFS3D0XE_$@NU,C%E;26# MZDJ(F(@&H&A.0+79&_ ME[<_$F1-=L-8CJ/O?/S$JR2N]NB"*YD5L-A_B@=.$9WC[!M^Q G_770-FA][ M(1K6-I*7B&4T#CE$*-[=[WQ]9'R#.91%?%]VG2I=4>-F3'GYS\5"?'&P#H\H M%L6*?K_=%)F@MOBI$N2K"6P?^=2W4GWK\DG//J-SO2 M2'NHXE=W).KUX&^Y/*M/C%>6L2KE%4?!9(WQ/::/\69C>;4D[9:3D@PE MA[]?$);=DNP?.+O#(9FGPG NK8YK0C=?B7+'(:=^A3B-?MZW5%8ZW@IL=SE4 M'JN]?PR=JI$*L+3=R%4=1F RD+!?6SC.XDC[%BW5"12Z?)3O,_BC?+J*_J/L M/CYK)#[[&JV2&MCHD@9JE$9LKIR#"TH#$*XSL6@KKY%HX@NGPJ"]SH03"7PK MK'=G9H)L:2:U[A"GABMTZW%A9+5X&W*7F3,JV%I:S3B9[<;U/9G&DVE.ATS3 M)"0Y1!Z-=DAS8#2:5J'&@3%HW(S" 3OQ)Y>Q2W?XB^%[+."M6A>(&-8$W8KZ>I&'[B^4:MFZ)]M9*.D]^>X/DMRN6 MQ4M!0A9S>SR[FHSN<8*%&7?'QU6T/A)&JXY)\:;,)=$M&:8K/F+7PH$E(7>IBG7/JMJ=(!C-*2YV]&-Y MI,??M>N>AC:]1NHOT"KFX'@4105V4U-:U(7M,J'2QYB25/0J2HKM+RZ0O9B6 M"JHN7D M08K@:]K@M' %TBO:14GY(RQ?Q6%>U59N4041<>FMR>P^DYG"?" MX50:I:25_>>2JJ#5LR)KJVJ]#5+,]3Q#SHSD!BL,:>;8=FHT=[L8MQK:[O ZV[IJ MG!OD$-Q0/;KU TU.#O?.8)<+]SL9'/'US@OGQG:-)?#B7H/Z*(R3H[>=4=1J MB/I[?SS9WI/M54QT#7;,$ GW>E2O(;+MF['$!L:U;QN=&R(KWAS_:Z"$>67D M;* T=CU2@%WB^2\!Q8\XS7%PUI)D#FC)$J$<+(DGCY\R>;P]7VYSK["X-^XB M9QE98OHM1@]QPJ6ZR)=Y4EX_C+)P\?MJ%/TW+U.@17)7CK^+XB+XFW2[78]G M4XI2)HX!DG1"XU=)'GMXLM4>W4C'P0D?;V6BZ>TAL/%#$L\+WYRD3[3J^NBY MCYY++=<^O4/>J^"]"J?C5>AMOQJ86Z+%'M:7.?#)F#D@;/:\*%]PT7O(BX]D]_Y;--NM8<>I-[.P:AE^"..6% M<)"AY];YB&"-63(/=83Q%J*W$%6'X6L:#=@]YCC"J=ZCA5J\,#; ^P'0.;TA5XH."YZ99H M%QZ?G04ISK9(DHM47N7<$B=KMFH),#>2RB-GCYQ55U_RQT=QDA?YT7&8TUA0 MT:^>PR3G@^::KQN"XYQGQ4P?SZX0%88TXX9QF6US7HTZ]&L1[,> MS5I!?QVLW=: (1\5$1_ N,AGSD@21^+$3O" $N'YY: )XXP%87ET1>"HF$1! MGJ(\BD6Y%1+?+W 6ARC9=4X]@ER1^R69YPA<2JRLIS9PJDIU?9\M&.Y5+$^DGXYP31,2UVHZ@X2[C=.R1* M:=3L2Z/RBM!1GBT(%;>=U&LBJ]&O!N6-0%#I7Y;N5_*#(WY0\2NJ6-5APIO! M?'.-FDP*ONAG"#U%7J7OWZ: &MYKXSWRGBOC/?*>*^,':], M V _T/!C-]8;L#-F'=+U '6LJK)M;!$\#>1B/@FY=;=7*04+Y=4N2*P M2E;U^$I(]!3O7?Y'$A__;%6VF_21#U1"U_(>K2IB5<:#H2@1L:)$7Q+R7:58 MIAY%8N.BV&5VO1VWNXOF" MF_F_LW*_!FDBJ6-7"^&XV$",VO>@*FM?ZD.4!Q)=6:%']I?*>%*4M"WQ"L61 M2,N3\O&:1@>#0;T0:=2TK)&$FR!'DY JEO,G;MDEK-:.59:U+'6&^)X:;8\G MO2"5S.)0NB/#*WH&I'T&9 =R FT11ZR/UV+4H/GZ"IYQZAFGGG'J&:='*@%B M,W:G&4 SMWQ?C?<'-5>=X_N"==3PJ#E']@4K61UE@"O!&6F!4S3E,#1#\QJQS(U1; M10B-UCDE/C_).9"MI[!.L-8YD*VY")D9NO;@=K,U]IN4-. ,$\WUI MOTE-B6!83"AYC/F4.%]SV3E>V9GW(W'+4+D!*9GV MH$J6CTL7D+,(V_-%,!?YPO$&+X[JZ2RG[$&$X?5S> MSC]?<[@B_&S\3\$@8L5R MN-U:7BR-8H!PP,RG8\UZ;*K9?@]^;TA'YSCE&!)\\+NZENV#WSM4,*$Q[^Z5 M\ 6LBPU2H@>HCN6CU<=S9QM&(EIL0LK9F1_7ZU^8H6KSM M^7T4I_9\NJEF>^X+*1<5K'9M"SUKN*6@ZKS*BCH]:[$;0AL<6K/;Z3?0LWX; M4NUVZZHDUX)UU6G,JMZ"X%UA\E4 $(FN^@TXJE_-^&W>D OZ[L%EP_>I:,!1 M_9J]3T!#+NA;X9+1TU/1@*/Z-7N?KOFN7KC;Y*J\+F,_;TF#-@89->$\N$08APQ<>-F(21\(6S82E^:WN%53L,%1QOC67W24'C%7O2Y MPT7H=DJFZ%F@>!'@X[W-I2TR<9]S82,1TN5#K"H(8*JY7G2?DE'XKSRF6/?" M1OT&;*?QV$VB;W&*64U6I]KREE-AK#;=.YY!I*\M;U?ZEU&O\4-)!KE)MQY6 M/A4.?5L[MJA,N[;M.:>]A"W;0O^:%NTFO-!9-1U:$WW"EN(WGT#$)Q#Q"43> M9 *1MF:MXX&:6>KD[3(#\Z!![/=T2@^[QR0,-,G3= MS'8.E/?EW,9@IAN:DM:=LRO,=$>?9SB!76HORYX#7=KJ\+%S8Q2&YAG4. MV1E3[T67-4D X!SLZZ)KC!'TG(.)??46@,ZY[ZN..\L#7GQ% MTFV&H<-?(I'Y+-FM.?5IEMJTWGV&I?;2^>1*IYQ+R![; D;C4 MHLR4QP$+IH^*4\O@FOUHY/#U\SL![M#3=S[7:8P2O4ZOK=B//O?Y:I6429CA MNB@K]:/''X3^*:*4),1,3YGZFIY3[SGU.U#F.?6>4^\Y]=WRT?2V3.=L0$TU MH1N04)G)>!\D"BC+ M Y1&P8JA )5NEG5#%T.[AUCR-)@0TCL<3MGA(,GFO ]N%&'%W_F0% 2^":8S M0I?"E5A\/WI"-&+?7ZPO+./ T?01 MI<+O+-:A\_6^R"9\74A=9ON_27F?YR7=0S"_I@N4CE=%6.PK;T+$TLH I85 M:U5OSS^UWG5OV.N+=B+OY.^%UKVM]=6//\F^=6_0-Y3/K;?#9.KO$1I'O0E* M;]$25]H9-A[E^PS^*&-VG@_R^"!/?XJH+<7: _XFUYW!Q;X 5K9S1,5.7R,Q MY=5Q*FC8ZQ1I%8*T&)GK:UCU/WI\$-T'T4\OB-Z3]VB@L7CW7#X##?;WXZ\? M*&/ 4?_Z0,D)_;@/!WJRNH@_XRSH^P &J MTHQR8D\@2_04VPIY*LLI4UG:4R[V ^M2C',<;9* "L.5[;-)5G)(VC72EYY? M^3@0>3 WQZ;%T<3?<#3'$[ZXPQ75::4O38N-Z.)PH2A3=4)UA-6WJMTEWT,? M^<[\B+<)&(6C11DJ@509L@Z]AFWV@NT!T%W,_E0PN"!5K.I0 KB+[8:K?!'* MLL.2NM=QG5AJW*/P_@< MSWAOWN$P08S%LS@L\W(4_/PI>AYE&8T?\DSX_J:DW-(D>K5KS*[>DNULLXT7 MPDY$^GAN]FET@)E6K?;$\;L2>==&)(PO1"J.-"L-U0:#P5B[_83RCY9)IMC$ M0'4\@<(^@:(#.4GXITC%ABDK7[945EE!3_BP0OB S4FB!>9>!-/Z$=W36@R)Z(DJGJBB<,->$,:7@2)1UBB-[C%]C$/,[OE6*'''UE>P M&ZY%-(W3N;A\H* 1'F>W/H[8UA3O5?9SQ.(0*/B+LKU*?1DG^<&J4R/W46FK MDG^E?-N;4')P%_.1M!4E+(>^M[NSP"L7Y0T/O/OV5SR4>&YWPS1F5\]\ '/X M$:>(K@L@(!+""W.:)%RT^=9FEFALX8D]]*#T[NU*[6MNZK9,>SBZ\%G"=ZB\ M%MJ2I"^NO9;(65G&+BUA>ZM#K:R*DO:)%'PND9?RJ <$K))E&L0C3G.\75". MKW/>76HC[IC@_T5\_DF4:]&2W6 V+E:^KWSYH"CAN&@4+44.THP6WDWU&]2K M[,D/)T!^.#JL4IYO',\VX*@ 2FR<9]S62\7PEBC2L!47-'TE7 UN;]J,D[JJ M<'ZC-CP1QD^!ACV@+JJ!AC:D3HJ!!BF:X-^!GAROM30' M>LA;QP@%JFCOGE?HC00*QPM0IU^<(SK6BJU0L<(.= ZMMM&O,EX$U= U8-K.B^'TQE7!_8P1U@[.L)Z_H[G[RCY.Z_(?5MBG\3##*@Q MY+0=IZ"#3SWBTV ,-@W&0-@A$F:T\@2H^6P6IA[G1-^)E_GB/.7VG.5HQD?G M,2-_E(J 0^,<(.T>Y$Q_O:T$*2UEKB$)&&[=:L],RFAML0*\7!24ZSZTFF7^ M5Q;3PMH1S<_.EAQXUY89V;J;VU)==#4)[!/X..PX< MMK=& BKN7?HH@3+@)FVS)1@++# MJAS%4!SFE,;I/'A +&YZLY4]@;HG$_6BD"<6M\R[J>[04DJ)"K!*/?&':B2O M+C9DWM8IZ."Y9\9T^+;?E&N%KRAKES&W707/U[L_?XLQY6ARL?Z&'W&B> =Z ME?O1ZR9=Y1DKA#E3$P'K:_2NP2=M#3XYIL%G;0T^NZ#!]P/\_7JH*Q?=1FV< MMI;^JKPWRA'V3)_NG=!OB^FC"4&(D779Q8[P=""%BB?+K-!VR3@5JCY58H7! M,=S$Q')N-#=;:JMZHJ8+V MWK+GS'G.G.?,N<>9TXF9.;>H0%54!=>U^+&DG;!\N41T+?+;S'F7L(!W*\--:3P=/=T2 M9Z=3Z3U!YPT2="94Y%;ES::1N*!R)8:3G)Q37WK(%(53T,'3+#K0@=V2[!(S M;B^*I&LC]ENYTAX4.+CY74/11NWZ8*:F#IM>W7:T@&OR\:@NW+/]U-2O)\'N43<*ZP0.HX8(&RE52_RO8.8%95E/2$$DC1.I$W= M;K!*H14E[5)"4(*94M**$IYDXTDV.\_/\$@V-:"+Z((<%W6$8(-75T2 MF$7 MM?5L(<#0'0"SHG:^$8T=U*F0G+FUQP5>A&>U.4$">*.T-G=H =J6N'-C&+;Q M$X YX.28-0F#7%AX3;Y1K1"+P$N'#LTB8\]\ISKTZ1>V4TNF:7 M$?-SP,3]6P^HO-YISQZ3?H_+U:0A!\;8\RRQ7@S+ZWDNI\QS:9_M)2D>M+D4 M[UP,KD-&Y]$]O<>I7[0J6]6KO+V\/KP@+>="T,\'7X>N1;\W08"NA*\)OS5I MPP?H?(!.:G*X'\XYE>"5]S V\6'4( *GK'WO9]3P'#??R087W?(^*^^S5% MBL78N>8+Q38^]D><+2YREO%=F_+-.\DCOAN+TZC\OTA^T7J+EKP9:M\,-2[G M-.8H;3Z>32E*V0S3\>PK(=&8WF/Z&(>J.U$U:KJDD=+9I%7WM+3JU96VE8SB M:)1-"$=)-RF76GV@ 5:I+SW&CYCJJ%!=WKNDK+BD=-8RTFJY&*R+2GNY=\Y5 MI?>VB/8L=:S<8[\/R/BSOPVKGPVIMB_;ET HWT@9/7-P@ MW,@KN_JJK9.KU=.L.[X,2.N=8:?L#)/D$JI: 8KD:N=Q$6@ZED:O4I<"%OR3..3 MO&IYZB%(E=YUV'6MAA*OZKBC1=VT;=>(]^-[.IF3OCMOY7HK]_2L7/@&ZMR! M1;6"K<"CW7.+'>M:#3N!*KJ2\UG;9 'J]Y,C^C7 @D -?W9$PZ;V$5#-OSBB MI@GT"U3Y%T=4;F13VO6.GIT%*<#Q?B#_0(Z9H+GR'R^7V8&9 \HP_(A4.X&!&:.%8C-.\2%)>-,(VW_ & M1-:#@FC7U-OJJ/26O+=.:^^]P:?L#6YML%\AFHHM;8+IE@H=AQ*[75FV5ZDO MRVD%E/NHM-VDJ#@KSXJ(W <2>2O+>+?3"=!'_]@L^Z-RU;_-!:+9#,=B:++Q M?ND?1?_-8":35D?C^E9@>H= MJ$[T W.H&MGS!^ID!5A: W.N:MEBEEUOGX+-;A/$ MZ8S097GF]/!OBA-Q6#C(2) M\*'/AW4,#6S?+HP5%N_QE8^"+L!*!_?]?'=TXOO&DP# M,:@HL-1=9"UZ%(I+5]/R IPM&.$?=@6*B 5_"^&?"Y+P/F0!_E?.9UN0IXB_ MDH.P5WU,R-RSNH_TF):U0?RFT>4S89@O\R+X5!P'$ F!*5Z(!59<;24H%$J/ MH'9]NU?K1%'Q;E$R07%TDUZ@59RA1*T1I(YE+;;4Y#+_BZW'6CY#+XX M"0Z_V'R8.O3J+89<@"S5I>YV:UO'"(IM1TQ7DM;YZ95EAR5UK^,&'<5@)>+H4^!1'YSCE?V23!*5LOR]SL<"2MO2B9\9Y:>HNCZ<4[TG7B9%X@MKA/R).YBQ=OK5T*#"$NG#/H MZGAVQ0D<#"VLZQO&+LDJ1RH)]L;8,DA(@ M(,PY-D(M_B)-\7UOQ"X5-:'F'2G?ICOT!(.#%NY]=&[H@AS9I(G#S,FA"WI3 ME6\6ZB-W+M2O^X8A3L7!D6L:F#W.355UF.!%^CUE5,W)B0E[,:2F-P8R)<%O M4B-*[AS5!JPDQ%_H7'(%^"ML1MWHC>RG8/2WQWWNZVAF'7)?3Y- R.SVXDF= MW9(;S:0U<8VR6><4<6X#L95AR;6<.W9BXL#.<2TY3]>A;V"WN);9IW7@ :BW M:WG4V\8?@&J[DDN]?3 "J/"702I<$9J 0A"+!_- "MLE/5L[M5'FH?H8H+W- M%Q"QI!>)I79K>IF]G1ZMVN+D JABPZ1?EL6RE?6K%[5\VJ]33OME\KB/$M9" MS_QH--*7GEM RI'Z"Z!:HE"HHCJM6#[0PK+RMGK&-^?-WL/NN;TI4:J^PI"/ MAYR"#OZ(2]^'188IM3_BTOJ(BW!I3-'SU;. ]7BSK4G$KRG=R^&N&C?Y"#ZH.8 A(E&WWH_]+HK-Q6]YAB5B49]LEA_],8? MO?&)3?M*_FF?1F-53W=I-%UH:P2PD6Z@C]W^,GKBQ10*=HZQ;.C]&N@LIRB6 MZK,U+DTQ%_C4GOT/V""K"-+.$&_9I['V::Q/[\0#E(LQT*,/[<\(N';JP5;><=?.1K0/!@[TW ,H MR#_0PPM*.D ]-7GSO?B?($/S;_X_4$L#!!0 ( *> HECCN8Z[6DL &\% M! 5 ;G=P>"TR,#(T,#,S,5]L86(N>&ULY7UK<^2XD>#WB[C_@!O[=KLC MI.E6M\>>]MF[49*ZQXKKD722VMZ]C@L'1:)*M"FB3++T\*\_)$"R6"4^@,2+ M/1NQZVE)(#*12"0R$_GXP[\_W6?D@19ERO(_?G?T_=OO",UCEJ3YZH_??;D^ M7%R?G)U]1\HJRI,H8SG]XW;P[<_'+X].CS\MS]D:?[W MW\/_W$8E)1R)O!0__O&[NZI:__[-F\?'Q^^?;HOL>U:LWKQ[^_;]FV;T=_5P M^&M2M1]T!__P1OZQ'?IBZL?W8NS1AP\?WHB_MD/+M&\@G_3HS7_\_/DZOJ/W MT6&: T5BP*5,?U^*7WYF<50),DXN@0R.@)\.FV&'\*O#HW>'[X^^?RJ3[SC5 M"9&D*UA&K^B2P'^_7)T-POSP!D:\R>D*MNES=$LSCK.8XJZ@R_[OLJ+8^0SP M^ !X'/T6\/A5WVS5\YKS1IG>KS/ZW1MC3"]ID;+D8VX9Y?YIG>!^745%Y0+[ MEQ-;QO^&55%F%_.74]K&F8LP:AGG%U-:QOF<6N:/_0GMX8M M'J)I")V&8SZ MS/]5#X0)1X2J@%>+\,[$]*FB_#ZJI68[-XMW%I$_KI\.X6IZ^UX*V5_!;_YZ MRN+-/: M2D1Z2?Z"EFQ3Q/)2Y:#AVJ?YX9?K[_ZM@4TX<"*ADP[X/[S98OMR+8NBH7-4 MQ!.XU2/>Q(S?J.MJ=UW+@MWK$)EI4TX2@B.QOR=[K +XEXVBL8S*6[&"37FX MBJ+U&^"A-S2KRN8W@JL$1]6_^.LI%]\/'($'>LX C2A;W+--7NTQE.IP37Z: MFM8U.TW!'^\Z8GS@:Y,^ !OFY@\:,F%1Y?R895H_HWI36/]%DE>:K*YH) MU;F\2]>G[#Y*]\T@Y?%(M75P7M?,6 ,F7M,D9MITT&0BK@A.'BA=Q^ALN3K=:/[_R6^0( M1XXT7+YHD9N1D#7 QJ' @YQT\)@1IRMOT"1/ZU'=FSIQ$I5WGS+V6,N;G^G] M+2T&5(G1L4@UHG=.UQP(0 E ;<7L5PDXC/XP3E>F12Q78N_'PX)R\XVKP@@Q M-_2Q5;&V#\2+&/N1B[$K"79&4FN0WI-2:IR(KICKZ"V_S>/-_283CVFLNN-L M#3*RH'=<3((6D+$2I8SBIK;*F'HH>&';H[><;Q=;I,@%("4NX18I\IDC-2.F M1N[D),N;;(^W:_JTB,CD5=TSXP>F)0;1PU,$I7M1;VUD\+> MV6-D9AJT4XKSG& M!+GD\E$8+',2B6H[,RT"-.!4GMOAV^1?E/ M)RU>A"UW_O:J?MI^/2/NQ^ZKYKNJYF8%"+7J.+I_BM(V%OJB#?1TVE:QMQ:W!04XFJ..:"_ M#S"QRB=(5AV;VC5#UMHR!TZVT,E7@$\$ F'X4HG:#$-";SSVF>6K&UKK$\*6B2#D6JC@U%\E3?E*YYZ9@5!7ODIYS?\#GAWU"XZ6,!.P@7C=*5Z1#+ M?ZQ35):T?D'-TN@VS>33:3TF.8RJ[J=&F]CR@0483.,XS^@C<2Q)ON(-!#^<"X+- _/4L M)8$KSK$>O*3%#K[#3)M'&&YBC1CDXX/- DSW)O5E4'? AK2G)RC[,JYTE%S^ M8^*&?D^?X-\4=2=8@^8IJDX1J^!A=V-_^BAQG:6DM\N=T MS4 R.DI:;4$89IR23(L\WEA%7";'(!*[5\D KXP/1C)+_Z2^$NO[H6/2ZFVM M Y%4W]4(NA<;J2^V(,=A@EF8'N7\:\5%N1'6X+J,&DOPV;(JK +"D_X[ALH< ME-ZKZR_"Z7%YO6@<'L_?F**KM-L&VJWZ%GJ,*&C"*A=EK2-MO5BC$;(:7Z)C M!28A."\6-.OH69TM8 9T]?8<(\+ ]S!5,GE?O!Y9@'5I_C9'W02SEQK9:)H;Y/XD<$)5!5>%#A_3ZNXPWI05 MN^>WS\#+KMGI,(+EZ,2@< IPBDYJ/,E?.)[DI,9S*/AAWB?+C \T3IN%S0V= M*KH;"*WT">:0^D,G2$HJ'NUYI;&^2!=0^FB.TL CPUG+G+7%1:%E2D'CC,O M=)G&K1H27++80BJ(?#%%?G92YFIO0?\E9(TU%K0F<>SRE>\<;8$)_ C!GK'0 MMY(TVP#BCS1=W<$_H@=:1"M0U>[OF_"#0[:I2F@, A%F2U8(/2[--R+@3$Q2 MUK\!$JRA4PBDSN#$TSQQ]Y*%'FB-8=/>^:^%H()?0/QW+(RG4[EN\I=ZW60A MUPTBCJ^[_O1BNV["URV,,KGN>I+MNLE%N^YYRL1Y\82&Z)P7XD&+"G3_75!Y M)53LD%\*74SYG0&_@5LBRI_+YD]\??6<2,GI%R=J0CSS(#8D@YNNGM1E35N6&7T524KT-P)H'"#M#R%5WA"G],C,8,:#G2-W.2 MI)> LZ@@(!^MGDG48ADNG-OED=F/"'>^=X;7Y24MA*['*2<\!HO'J$ANHF)% MJ\_T@6;\[S&'R6W0OFM3_VO,]:D.Q;6(T$1'Y\0[7RDB!+V#3NU/$@@1B1$1 M*!V0F:XWJ=L>]J0SC"SYBO+C6@JM"$S,2JXT V3(NL5&^-+6'>H(QPR) /WR M>_]*%.(<,L,M,)0[T#TZV610I.6.TY^69WGGM69(=((?]$;(PH$:3T[FQL@L M6SBXEF@-GN!3J3$E:3[Y?VK'__$'T_Y46LI,<"XL\//:IYI@'6X M/IA7UU_*)E>N)"N SV^65_RF25B6144)ZJA40_V^>,QN)_K$PVR0^\6)HS_3 MDJ]WON((B=_LQ)'F.KR(HP>!TW\-(83E(R]"R(@Y?@%"Z)SEDA?G)W_T49N= MZ%%?0MCZ'G[7:J^:R-SW:"VDRG45%96>^_A+C1/945X/2!/=1NKH-JG.DH2C M2:#Z*A'55U'WRB^/[A]SS3>W %3_YFYSA%3V0AZ*HS$.\^%9G>NR+60B0!,!6[%,A^.56'G$*K8++,4"-X!2 +>S M NKATH\?T'*IES03#4;++4MJXU",1'*R%1(]S=* M*4N*GCJ=OEVM;4]0^57-^G;97X1IG![3)2OH?KIKV02.Z<2/&DV&C0Y% ?53 M9[;WB?Y68$OV$UL#E:,UVS)F=Q^,S8X&,DUNV%E>4=!4ZX+G8_:'\FO<6R18%2']JD&B+P1O8)@X6AS52VO2N8F^]:;/>NM1M$%-%GKHW] M,_Z)+W3!XK0N9B??#1 WB+5YD9>),7Q?1H0QHAB5UR=U3+($%O=L [Z*'3$ M9W$G#+$OB@["YX+W*^U.Z]OAQ:4.1/@;7FR3)=CW865\Q66@%%PW]4 !_4[K<;H&+R,!J2) M*>3'#]1Y<32[Y2(9FE@$?!=Y!"TZ$@5_3T^UF5=,#NIT(%!Z--\IS, M.*YI](XQ2EKTW IG!RC&EC#$VK@!3O ,RQ'5:(0V_KP/$/YUQ[*$%J74\Z'\ MTS;!+O)^9Y'+%JD AHGJ86$8LGJ[D62!;2&AQG+*AH8A[Y?]Z9R[;V09<1$P M?D!^_?W;([*.ZB21 W+TP\';MV_A_VMO)8DVU1TKTG_2Y(!\./CQ=^\.?OSP M._%.].'@PX\_'/SP8SLT+4NH-PY_ZY2RAFZ9XDP6\1UY?W1 @/"R2CF-A3G: M_/;] 82TKRFT0Z79J6^;,#VN)RY0WCYCY?7)I1;K]TBJ^PDZB\ MNRS80YK0Y/CY2PG>TK:J( )==GKX-S[5N26 M;NS:_ M:Q]3S#$GZQIU\M].*J"?Y[:K^Z*&;GVM M16]F0L00TNPR*BX*41D^$:1B/'!4B-?3]E]E.9^ M'RF&*,@FR.)-;-2=$T1W@-V& ;T^:AYI^$H" 8NB0(VFB3&B& MI9YI@76X\Z[HFE/R+BKI9<%6170_'':F,AY5"'UD7N?BY .XA?.D[C;6 M=1%OPQ$FGD5L38NU/ W!NV].)_#BTJQ&3+SZ+1O4@C]?6-L^YFI/W,K"-!^7 MA7U_Q\C"[CS.9:$$%E 6]E*-39+"I^-"I&5?1L\0U#KIM1@9C'=9]$SJP5\A MT]'7$FPH9\48/9D>D4PS6#89/7I[^\/131&!@@D&S"DMTU4.3C:9O=]G4NA\ MA\IH49C?2Y2<"B+Z"2Y.5H>(EP-$"&!R>$1J7(0!?D"VZ)!9+1)G5]UPLRD2 M$"$.25;*3+8KA)9O'7MJDR>TV&M#WJ5455-JS6&$R '2.7L,O1ON':"+IW0_ M\+;W;UCG)\P1S/4)P ,Y/G=HQT8)XK%,495*T@#GW7"P/;NO-AA=4*AO4O?I MD0U4Z=D$N"&80Y&T3(]> =E'/BTH,]#N<&LL)*<-PT0A'E>4"3S*2'U4\^@( M6J=5E(G:;4E:;2"L)AB+&:I1Z_AZF^304#L!D LS(2.SS\\L9G;\X-R ',V'>CF7"Y"RG34PI MMQ\[Z2YA7JU'MH1IT#D0MRE$*$]_8(7W?,8IOV#!>84J*U!\D+5F$+!\R;(T M?F[SB2=>\B9&8WFK?U9?-10&P&.J*5A;"<)/67O"A7L2T @5:#C%(TR37$&% M[63:D=I'%H6NO^2C(<$[H_PC1>I/"+*2!=Z-3"%2*4UG%KWG7II\I-P6O MH+W9Q?)+2856N[B'*CK_W/'7=Y\)S&;"O"WA(+KFR"Y6G2 )2C) #%XO6E2T MGV)\K=C&XTS=%T!DQJYR<1+Y083'F*:LCNRIPW\557S4,J-QW0PMR@0C &A M:A5\PLJZ@E6^2F\S6IN+A#W4#SSRYW\EFY(N-QG)T@I2OL4NZM2$ M$GF\0,9#MCS"LR/%W,(@-YN^L@X";GXN"9&]0#-UO?$.0] MUIW*M8QH8&G6,;&#*KH<5JJ*M:.+M'>SF0I9#"])J!_'Z9'\*2IN67&]X8)K MN52- ) :D18$ #OC@;0<+L]*?A._/^2F^AI\$D;/1/ZM5L;HO-P\J;TBAOV"+^QR8M("E,A!E I$C%+C<9#S6%Z3:C M\G=QD!:R8-GSQ9_#QN_AMJ3O+M&GLZ%793!^1I3T[W.IJ'V!\:>,S^PM" K MDP;^ 1$8'!"!@[8GQ?:2K+A19(/0M>S' != W"S]$98>MTL7KO< ;A5%%F,( M(KLZ+L=IQK]>]98^5_[(ZJ%I)@]\;AHT[!T=_,*,3\]M#;I[>.3+V#=R@%YP MW.09ZJ>VX3&ZN:-''WYSU'3^ON(*[/5CM![VXRM]@#D^HQ.[/CKP5GOT/0?_ M/[>=ZP$# BC@W?>6UV30\DL466'BB-3K;#O6%[#.DJ,5X'BH<1/3)V=07]*1 MMB_IR)DOZ2BT+^EH?KZD?6I/^))Z2>A ?6DKDNJJ,(,?VE)C7@ (IBV0PSXIAV,T%\W&XHKL*#=RE7/1;:89B6G3,JAF\TY;LWGG3+-Y%UJS>3<_S6:?VA.: M32\)O3'87RC$6-)D\4"+:$6;UEDRP/MBFW""G0;)BKK@O%0,+4G=0V<; M[T+B*(LWF1"G@:K0H7>&V2*W?V%Y_/SRM4"R-GU]V-YA0#J8_0/+F\,3.?2-UOE"G.T68ZUV!MDR?8/YXB3,W MN".X\D#S^%E4A(FRDZ@HGOFOA!P?KTBB/P&6UY0!^0K24L<($Z3EVM%NO1_9=WC'33BI>/NMA?U8KHTOY$O MLW5QJT? C!'<7VULD1$\<)/M_A%;^UI,XNL&6B@4R+*+)SI1-& MK[V-9>-4 M\)@^%-/T 9+,R\FZ;Z-CT2E /7,Z?X0IHH3*%O)"^!5;) Y$8VQ(RL\R]B@R MZ_D/OS[ZX8,8_^NC=T>!,H/&:,^T".J-N3[>KS/V3.DU+1[2F I/X3$W61.H M>DWS4MQ;YTRTKZ#)XC$JDE(2'PEQ?G,7Y1=KX60= M8.#@^" /23"\?5TAP1:(N;6^H=U F%@REU5@0>K<$;(H"BCN#?\^(.W*B,#R M@'Q\JM,)B<23VV)0%(6OCCQS6;I=WX%2H7]' C3\V6=&50UJ/R[K)@#VE"D^/G+QRS,RZW:2'"JK;] MW";>6? 3(;53?8#.G7C0$'#)[;=2UDAC#2K!NP$:; ZS1_%OWP"43Z'\-->_ M@G%'OJV^423F9NKU(OO-VW>]JYJ546>)[EXLN4&[32Y"J ^=99!7_TFC(DPU MIT"'VH<-I\ QW@3X=7Q'DTU&+Y;7= 5<D,2& MLR%%*A*J\VC1&BW0SVO8I,6,=% [(+?/[8BO-Z(@+&!)!)IA@O1,=Y)9WAY_ M!P(*OP$BG].Z((;F M]67@#"* L44LK@9A-DCHH)6T\(G::ESY3":9AFG3SO#EXV.^XB>2BI*PE&:7 MG)Q0HNHR78_4W5;^"/.&,3FYZY.P18 (#$B# @$<\*FM#A9F'#8WL=92LEP M)[HZBS$<>4WKU1CYL"5#Y2' M,MN #MG%1X0E=1E2HF10Z-[UJHV/GQXAPIU&+*LR&SL1PM;Y*4ISB&:OWR<^ M9>SQ3S194:F1JQH[.K.86SLJT'R:.X />048O3X@YU M3KQF 5Y$('8P-P-' M:[_Z+1S]3?#&WJ=U[?^NUQ9,L-$H;K6/D,P[/KG[+F)UKX>X YZL^9@@?*A( M:88CGS\N2\LX8Z!Y72R[B(FB*H!K697;%X:VIO.$O]W2K%@^-8/NI5K#\/,8 M^1K:QVYK]YBC+0GP"*7TYK9HF_1=+/=?U<0*U9^I',$S?LBRC%?@HP8AQ*+I M82)T^)-HG591UHT8GM^SERO.Z'T8<[K=_@R%)!%OV5$&D7AG>;W/$*;'8POX$;EC64*+$J*4 MJ^>)4-_I#]"Q!D,3NX\YV$+^EU_]^.[H=_]+1*Q7SV$"=A5(S/3IYHVE!DO8 M#W.62I DE=4 @T3S:Q(988CG>&C[9##=/B-5NT+S)/L^,S> M?-]=\"(@#?_<:GM%QJ^KR:"#/\ 3JB(G,00Q_:GU>V'-6R?LI"-2_4NLHC\- MP;G&_R+V?8M$>">\SA8P [KZX\9^Y^'6&UL>/[]X A#9*^)_;CB>BSR!0W4> MW=/1KIPN06'YW0%*SITQ )D Z+ =/9UN)_.Y1YY+O:G5QQT=:U0(+E!57%EL M+8S;9IR8+XJOS:,,;ENT?'M;3+Y5*GUC6J>^;VZ/Y>D[X,,K!&H$[ZM*/TU% M?W*I%93#K1!ZQV#E4'1C2C3Q671$^@T@^&Z #WK'X$N%;.=R MS0<<6.W=027AF*&**%&JBJ^[TB0]^\R4*.+OBDSSM**?H4[/65YQZJ6W&95W M^/"+AMI'V$MR='+7/+X%6:M;HGYIF(M1C0?_#\]W#U$&YL85 MY6IA&D. '/\#MRUV?]$9R<^'+(7([_HU*Z/LIX)MUOP+N/M%B?<-3>K4M.$R MI2%0P+[H>435VPNAQS6AGN9F37/T"Z9(6-K+?Q*VE MO2KOXM<#W1$FVXD "LT^XR$Q_.W)7?QYM"5Y#3?;7]^R;2.U <'8,P+;>6P[ MD[?68EN0J-YA)ABC6[QDJD@[.GI].][?>V]>A8:Y,1[E\4[QV&&'H.8$=@L+ M]P#R5N9'&2.DR]'9>I'^2'&;K6N$H [AJ[J[]6NR;-#J%%6>4TWE,7Z+&^* M*"]AUUA^R2_@H=A/CY M!I1;QC!D7+KEI=B* P].8415LY.=IH:]?1VWJR%B M.8>;=;?,8,5(O20^M-7[FV6!HZ6S,*) <(^1ZJY.[43 NU-&\2B FSX2)3=: MMIU:AS4DA2_0 F]P9N=A/5O0TM#M B>OSAD_!+\+$SZO0F^&(*(W%N,&KRAU MG-?)W?WUSQ1'(UEK8%;G5 MSNA+;^H!C=%SK*P 861M:ZP&#/T88PBF0:/0/HR>!CAZ/HR1"9PW1PKLP^C! MR*(/P\IZ[?LP^AI#S*A# M#"B0.F.ZW#92#Z.P:]"<&1 RM')S)CI)&2@W(Q/856YZ 56;GHPLJC<6%FO MB7)3ZS/\_VI$9JK.C''@M#HS269_[_[<\MFZC9[/(RC,/9H*J_ %-BY@>&;7 MAPY DP[L R*AATU352$U0]#/&W?]5'"4./,OTR$UHV<$DGLZ,[GF%@$*[# . M"R-\C5!%2%=U?!TQ+3JRNIB^1-C"?C1Z^*DY37+ABVXJ0_0UMK0 MQ.Y?14K18;V,LD!WK0)1F3ZES)BH+*H. _&?MLS#?^!(;/**%NNHJ)XA1[\G M"W5JF":C#$WGGCVV, D #9&2.DE+IDH@IUQQ1=>C.C(@92,7GIL9QK1I"X?Q66QQ)G]>?P(H!, ;(MSW0 MF@/ALO 1NS!H&ZB3UGMS&OD@=Q,]=<*+A_.A%;\R;$\S,+LO3] $&A@+Q/K* M$'%L;0G"NFYE%3T%TCM5N:BG]8X2 1UKH'G)LC01J7NB4_2@:C$U%*6)]D_I M7G'HP)7MO,.I#I-T93K$FD,TH'IA1]PD]F,& Y1[W \CW,%G5J4?D9ND%F@X MGX*0.XW&UP6-4W'2^+\S*@KOY6]NA>82X8"):7 :P MS"*IQ7HZRB^LW8+QNGYI_19>'@W5R*)@@40#,FK8-E?Y!!TZ-#RU^Y@A"5M< M8[0!?$ R6G(U4/7. Y[\]=&[#P<_'+T5?^0__/;@_0\? @4>*6P5P]#?H_^H M2!]$7M9T*8/1L6A?4<^<_CQ$/>[Q]H5Z?1RDZZ.D+^+32-+^N6V/?L)OH M"71+Z.['U7TNYWB7.L1'%"6IT M2E)(/*'P0$XK4@)RI*15E2R]*/H;-VV/ MQY.VQP>C2QGV3>K\8I%020.67-:A'*3KW ^:Q3U!;:9'0G]1)_QT<_7_8GE2 M4([/Q:8J*V[G0LS[/43'#,6:*'Z&C3"9F-Y;/;H)/%!%ZJRO#?&H7R,! EVB M03IX'!"5U;F*GU'E+(8E:0!?ATSRFG1S[ XS]G#(Z?P[-R1<,[\&%G=4@$L# MM.YH$-AUL<<%O5Z+/O($X.NSO*P*T?SS*BW_/A*;J/*),;^_G-HU[W=89PL\ M9/2A$IU[.6J*> &XJWE@@99%H[EN*I\8<]?+J3UR5UM,+FBBFQ*=>[EKBG@S M3'6>:)Z(G\AYZK.WMHN0";S,V&-)@$]ZDX'#-&,TV!Q45G#@-HZ-%^,3*[99 M#A Q?G_/\NMJ."I0_4-#;^ P -]^OV%,3#Q\5M9GXLO;0@>;+A;P23F]+,<^ M.@7&ZO'&J5+3VP'[&!40<0-M H0_<.)NF!J./$Q#T_HZ0D/P,0?'WEH0%M^V M[R$$'$D_=YB+:I)3F"[)O)V)*UIQ-8XF#5JCONCQP?(+!MW^6D^YDFXZA.[YI_5/'0 MN9S=K0US20L\R,62-)@0@0II<2$S6F#"8N$\ZPFA&'N!OZ,DE^OD6GO:K%/H M[:"AU.M< T[?>Q4)VJ>(8:GK+^VH?G"-LLLHY79\_0X[JKVUB-))7!F9US3%G;1&!IIHKQGM@CKQIW-RK M&OO7Y%;"#L+U4ZS!-$GF[01<G;S8*^U8\3E:F12M_?),_ MI 7+A2&777&N3F1>X'5:C4<@J'^(Y:A) ,[9JXL!Z:! (? S*9.?H:GJ4?7 M>MV6 '!(\U6G[=/%;9:N9#D"6H!1':V&FFDB9T$[X[6@^7JSTD0+HXPZ7SG" M>=;VC6RQ(MVV9UN\#HCJXIV]7^"XE%G: )]&WUYS^44<0W1R>1D]1[?9T#%6 M_@YO"([/[^NH3B*"M!1MKPYQ'!N89*VR$G?&HB(C,33]@L8@E^>L.J5ENLK! MIE^4?Z+)2O2.:P?\Q 4$E-@QC!&=38PXCL4G LD-]FQ>JC:XS&)(#TWO^9"+ MY37_;;FL^T2+BD5')CJXQO0NE7,%-&:EM2O@ZTR==T(KMWI^@S*1.,.#,IUHI''+C= 0JD/.\BX#]"U=R<*Q E@'O)-SA$SV+P=1W9X M%J\W(T=-]3,'+S=>7I>5A]SQJP'$6E66Z3&.Q M@(M-=;'L5-,7C]X6OIA+/0"M3(*>:Y1(UG0X(%'RMTU9R:KZG7CN M-R$#HJV? ^9ZPPSS(_N:4(CB8*U%WSS,[DD.Y->8;$EU*)Y<0]WGZC3GC/P@ M/$/\1N6L#?J5?E*ARS7B<@NOH*]%*<+).4OR)?]Q.93>M:8_7B S?3ED)Y>"QMJ05<.Z$K#HCP:GV]G4L]' MQ4]TA.?LFNKT!;?TT MD?#U5I0W@&&I.GNI?0,QQ%.,:G=RSU)\%XFY2W.!+0E],"QON 7Y/K:+'MM_ ME'?0UIG_![(F'Z),Y-E6)U%1/'.S]<]1MAE*(]'Z%MT<1 &&EZJTT*HQAG_0 M+1Z!VH+HD)T9T=(;'S8!(#=%E)=+J/8#S=4NBFM:/*3QN":N]2V2#Y5@N.;# M;4A1@P;\&Q AK" U*F'59[V]8$8$]L><-4X%31;5)4OSZBSG^(X_/JI]A&7' MT*"%#J_UCS=GL]UY?7(8XY#G MQ5H#-.[GJC'"^M;;(ZB"@SGS3%VD("KM7G< MF8D-H[<3S(B\_FHH9H);:-+?%K&N+37 FWH?8ZLJ*@'Q%6"@A@TF?,#5.A&Y M* *#PUM 3H/M#BH57AS54A2C]F8&67G8GJ-O!5J?.G&[/+Q\J=H=(5[X-/9 M!76#*^!SW5A4##@O/F7L$1*_:9/KO5AR$;/OAKN)GB[Y81OL-^H(BH,P-P0V M5,8M^^Y 6-,A$SL^)XR;(7KZ'21=RTP")W@'7Y;43"F9P8 MQ8 XX\WTG<[9Q.;OAQ!-OTWI?6Z6@CD)QE<$G6CX=K(3/=;@$OY=57M/7F9" M:A+:,(KS.N;B8Y-1*)O/P7/.>#[9%' H%GERSO+ZAU$/@/E$F-A.%$#73-H@ M)9M'U&B1&A7"$2,\2JMG4/@+SE9170.BHB=PDW!!Q9)]-[#F M5PAV4)C=?;4%0('LX"#*B%3B\JLQ(8"*=P[2(3Y#4M3?2X0L0PJU2EC&58;) MAMW3'V!?' 8G=BZ16LBD 4V^-L #]6^:IC+3)YT_;^::@D,"2N ->2)?CL!Z M$;?, ;D&BO'E@ >@6X[TPB[\J+U[#93($C0T']:72R'4\45OK 8 M\%_/[(O!1U# ,+S5%2$*I^S&:,O"*;/)5-AGFHDDA5ZZ.;9/Q7.9: \X:: . M#36P4/>G]&:B;@&'ME$'J[KG/3:[Z#<8C/C6W M:QY00D+;PVU_50A]L$6" !;@D>9XD 81,INEX9M!TW:%<;U"6;L!\"!EL]#; M9UAX +^V\KEA*-K:D@00P7O#0 G):$4;B!RX@D10_-9(,DS \"LA)I#!'R?K MJS22&"(FO6*DP60I.+FB64@>3EJ,)(Z@YD#:\ M%BSG[_@2F0-2HR,>>W<1(@U&8?--<%O$K-#=\0,/E[I0XON!GD955#\YC[SL MC TW>-+IF];;6TX+'"K!1TW@2+#WFU$2,UVZ&2I=YQO@R(OE):OXU&F4P4-S MN6;A%PDMXR)=-]FB8/I &+\H@>K MSM\&C"5;T^*;7QB!]]CAP@A/:[V8G=(&UZH94!*F)A.%LC+55;MK5V&'HZ?: M.J.WPI()L1"&RG7%XK]S_$#;>*"B:/:8^3#YD8GI,#BY5[-A$ NT.FUQ74;F M@L2#"$1(BPF9S>(,M([65J@]!Z588]JN<0T8!;0"IL_-O@6@2%>/"H1L@E/[ MQD9=J*-CT5=]SYRN!4,#M/%[AG5[CI.5:='*GTL>RCJ4%YNJK""7*=]/4)@< MAW6M[\_G2]=[ 1BCO%G ?BTZ*(M.D7H7QG&=R45>I3DI!2):CW36U_ QU\P@ MUU^!JX>*0:9FRG1R].!P3>--D5;/'Y\@R7!%S[GAWO/0,#8,\<#0-YW[=RT) MDS1 "4#U_IXP2DFF2A[3U.?>(CN+H@!HHGO.\W;(9?0,OUH\1D4"55'AA:.L M"J&CE<)8N>%87@@G#[3,>^!7#DVD K.H;J)B1:O/](%F%\M.A]L^\V)&:*'2 MLL.C[\5$FL$Z]9/%P^/LKRP8$:L@W962SE+)\3/ICJN72\1ZB5PPZ:RXKET. M:R;UHDF[:E(;EHN*R(43L7+Q+M5I (Y4(K[=O;-AQ4**?4UE*I92UWM;UQN6 M=O8HJDA$*KD#F=@!>#+;KN" T"?(XH>\-6D6OV(%V>1I]9HP28T#4MWQ:1ZB M+$VR9SX^+66J/[ *VRHFHR4+0B3^A^>/%_;[#' *EQQU#PFKG,54C3Z53_#I M48-3>^B%PF'+TW902[^=LO%XE"49V6YHHM^:IR;UH7I-8Z#\CVU\70FOI:@H2#2+Q(/-:&OY2YS&^C55L' MJ',WDTBN.95KOF\Q#/$:KGR*&([.WBZB2SZ-J"^N=1O;I]31KPP;QG M+TC(5.ABJ)5<<;6[2"'!0?#9%VX[P7M]1_Z)WTLA.!PD9S -1G-!@'-?S[)! MJ7Z%%D@)4[.K"U M=EK'830A?HNRI)5Z1*W.9-;B:%6 AHN>5<'.3LRL93KLUL6_03A,)#Y-T?NR M$SD;*2S;6]"L%M..ALKJ[X#C,D?R7KH4H2F?^._V3[+26(-"1R_F]%;IJ-8B M)&@B8 >K=31,6:9%+G^!<),*A#W5P:/2, -E84)-L*L@Z,H)T%_5I,2+D<8R MHIW1MX00=L8N*DJ[NN"K[A=]K<)]=W%91FM/D+&\"P3ZQ MXE.:@_7\&6[%)C=DO[B.M?FP?5.P<)T[G@"Q0[8\W)2T5I0(J[&#Q@BT"0T4 M+10DAB0#%(,G))GO);.^08XEYV43]CO@H!D=9R U=^;S)C-K=2J86V:&9G9NGC1 P;$I\2 -_ -2)XJ$;%&J0G6&(&5H1CME]_R( MZ+':[C=VF4W./1-VD\C,BN'V:#_-4R&)TUW_>$^+%=3J*]AC=0A;\LDO7 M85[I(99S\[,XX4;PBA7#=TWO*",CM)W-HQU:D 9H0%/T)1E?6*,#M''*!W5T MJNRT;<(STONZK#$=S1O^TGEBDB2INH1,)/A"S3)"8Z=+-7TA0XU-K-.=K MNA*IWR->>J5OL&%#8W.[+],C885TQJL1EZ$HYH^K) JC#OC>,5BNZ<[ECTM" M^M#[R<>4:&*:(5_ 4VOUO,A%Q8@U@!FIRSXY&I43/SBK^SQ6"5F$/;>P#8JI M6UP)+A6,WT3\KX*EU]W%T0:=$*G@TUS#- GH3?K]A<)3/4T6#[2(5O5[Q6F: M;2 C;3]!>)'\;5-6@/. G#2<#2E1D5"=:W_+)8VK_8X<"> %-7;CNNJ)S"P/ MG4UNNG/,\G88BOU/K.!8=,--(('R:%CR*WV $?ZC$[MFP1KXMI1C#9X\ MRPLRO@98+D*JQ+*Z,5;B%] _ WI,^;\4U!B*Z1/5V]6PX"*KD59UO8"4EA]% M=32:?.)+!??U1N[7M!"G?"$Z.PY<%%;G1EX;5G#PE=1G!5E, MCE\@*F&:8W0P)5M428,K@=-).MB*'LTUOA!6+(L]'A")<_ KV>X984ZWU%\P M,ZV+.I87R\_@0KA8GA0T28<$S>1X;"#RT+R^!,(@ IA#;F,UN[FZ>D=W"Y]? MYR2#%SE^-F.%];B*AYYD&Z9-O; VW<5R2 77L>6F9[%IPPU#\W7*--'"G#WG M*T=VQQNTPDLCMV>-SJO2&/8E3-KGJ3OBS.%IG0'G# M%@F7H%P!B;++*$W.\I-HG?+=%KC>[A<,O@+_'[0NO:;%0QI3F7=U16.VRL4L M?XZRS7ZD@F^P6#O%,7K.WR M[HB=]PMM5X7Y0BC7/O:G4%VG MM^(\*JPXU;Y2C=+^0RDNEC)?B:,& J>@=USFI ^T_NUM*=RG4\$5>K.8AENH M0?.:N[:#1Y/)]K5!)7!TAN;N],5K8$CN-*SL)GHZ2^!1;9G*_+J)5+>)\>C MLH%Y/466<>AD%WS8E+@I*C-MTKF-3:3P.I2=Y0E]^M]T.$IU8!P^&G%W/E]A MB!(J$6 )AQLJ_G" FDR91$Z9XHJN4A!G>370XV]L&)HE=J?SQ!%;H&%Z_(U2 MDJF2QV.C!!93FI3P0M+K%-Y36";'HYLC#,SKRU@91 !CF%A<#<+3>=D;.#OT9[1\]!,N6\O%(,&R@R1C4W1PM+V?N4F?2:@] M ?8C(Q";O#>3ZWT6X$BSV_X#Z,>(QQ0HXM]/T)?I-S[(U,KWDMVW->)#I/1- M$+#/$/>=QK=($DZ^LOX/W#%'@Z)^9"Q:[O?,Z>D2J$$>-/\@ )Q2I[)ZHC85D6%25T5Y2Q#:@ #VL+,8Q1T5V- MH^,RQ2U,DW*A(\9>Q(4<1V4:Z\6+C<]A-UJL'Y;K8R6 S#5(:(+\TR%"*C0U MTD!IG-0L&B=;SN0__/6;C!Z]O?WA:%$4-\5]7B6?LF@_8E%IK":GC<[I MFJ-&@>O(:V,OMT9 !D:J0+LL*Z, M'JKV.3*&2.5(ZU!6.:SK&^&4#3N:1D U8[XJAII^,2OE0A8N:*.[;J*G*T[! M$\8/9;[A%D#=N8'E0XJ&_@181XHR(%\*B#I&*'^+P_4B3EV+3A/Q"/%H@!&! MT/0\3K.T+N5_2?D,4PG(KKPR^MS(S$GNX79:)&S-)9O"]=0STO!^ZLSH^X+J M@#:YH8Q68/&*JO&8P_W4QR8]%]0@Y7PH[9>LK*+L_Z;K$Y8,1^>-#395W7/AU^A&;!7G[&G-FC8RV]^GAV3KMY\4$N A.IAUZ) MI]>>0<^Z LU\2$[Q*'M17!;L(NY-ZUM^"O#@_F@0""M!AXC< M)T-'*>?G"69;/X(XUGO'(9N^ SC6_L<>X<)K($JL$W_*XQ=/12C4IS4 MY>7^DE9W)YNRX@9B(;S9BSQI.UJ*D+T;^E0=<_A_'U X#&9"JB,(B*Y/7(,2 M>4RA=5>-U %I?R_PZ_S;5U."AZ^+DJ M,G"QEA?+FR(!W^4 FZL-1EP/PY.Z9M:?^6U<0+"> _O:V6FZR)HU^>\R''KJU/L8^>"L!<?.*JE>A3SX"?FTC<32[A1.Y9($-2_!)'%R=T:Q:W8MFJXU>P!YI8$; M014\7PIU(+6E5A^UO8DM46NRIUS?9U:6YY2K?S?1TR6$Y+-\455%>KNIA N9 M748%'6S=8FE6I' SA.Y+WAFBB3G^WBF#*+[.\2!QW0UW+0Y(7?0UWJF?F0K$ M@X@%6]S-'&V,SZK.',?65IQP"TR,QE=J[IO5]2&N@YD[M6'"6OI3Q&6:% M8 M&?PL?^!HL2+5J 3>\XVURM^=N<-5^NX@8:>R-VY5QI6\E=?A[IPHL,YHI>Y! MRCEZ :B?C*^?[V]9MG^GV9LDA#^]/)B%>5U M'NP)RTN6I8GX@=L0E[*M99TCVQ;/:25Z>9J6<<;*33$94N0*#%9SMXR.:R[N MXBM"CK88"UN^B_-N]:8MVF2+=[A($.?\P'QM\BPLY^:I^$\T6=&?HC2'7Q[3 M)2OH%8VSJ"S;@N9\T5RW1]C1:!@.K&IM7.9@8VLC;=OB]D UA%=28-S?K.(5 M(/CZ8!O.003J!P20;_]Z*U9 ]I<@!.(D%0.8[/B#I&C &^ZSJ]*]7 !DEW6XTJ]QLPW@\5(\M- M\4:E9%2T)#?A.EU-QYU;#RDW4<;N4]$[;T*=VAMEJ!#5L_E6:6JP)DH)&G,3 MM4();\=JP#X#]%SDO;3QQL_G]+&.:89GPH+E_)^QM("@O=8=Y Z4;=,X,2;E MEM*:BXDI46YS:N3)L8&"\Z#Y%CC8ZGD2%4E)OJP32 T%359B2;C>VQG9XAG> MDK>ZS*_[0]3/R'_2=XCO"JB.X7F^J.%>D_:;*X!S3WZ]4C MOM0\"AH07'.Z!BHZEXW3%5J(MB$U-@=DBP^1"'D]L!A>8P;D=7O<();E!4:] M[7]4AV,.ULBTSF/" 78/FX5I&*1,9*9+N0!LU--A2&VP-1;RT7=HF('\]R!2 M).\H\P3M3,3EXUE9;OH"[IHR*[M=U >49H.93")T]2 ZCWGAV(@TTOTXS4V> M0)D=\>^X@Q!9\^_+ Y)3D2%314\B:Q^2240WO5G$=R)W=3_,TV2K_!T(FO'I M5C_1G!91QO7U17*?YJ)K)I0O_/@$" YFS6A]C&5[)2#.9;#$XH"L)!ZR=$2T M@PJA$I&7/C:\RU(Y#K_1QV^^[QP$5 MOM-J."H=.0M2 &A"\W7Z-=%"-8-WMG*3U%2&N;RG*- $WD66# M2H>;?Q_H-1.].

Q?WII?$=3389O5A^BM)"7)BR 5:GEB/'\F<:021T9E?_UZ&CK(GG.ZRC3E,6_#Z B?UX'3*6KPXK6MR3 M;(M$.+?#.(GW70\*=/.8^RHS"9^OHL>F5*Q,][ZB)2T>1A)@53]$9\%. 7#- M:APPN6\@!TH5528RPU/./[-=;];K#-A?A]%&/S)ELM[)G5_C-="PO#5.USZ^ M4B"6-Y[J"%-^D[^L%#C 5:J?(?EJ:GI?OI I/##.#_MK0Y1HN8%/NI>_4'K+ M#C+_\JL?WQW][G\1JK!01T=,F*GEJO1/C"5Z\GOZ2U,A/@S! M]7EK(),5@ XKSQ7HW"?458GGG^7^PHJ_G^7" 5CJL=STEZ8L-PS!-W@\$Z]#BT?(N:A]4 MQ&T.4;$EP9K== &(86KBC:(DIT::396;/*FW/8PBX2S7,2(S*1JVC3; MC=904Z2LMY-Y1:LHS6G2M&%=Q%S2>V!H# M0FL4@K"@!J$9GGK^>I=M$5&I_3K ?10'"6<^U,:,EE4^KH+.^TDVEKNG7T-?50!@LZCC*P ,/B_3'7M$64L':95#H9@C6; MH*N>3@,3JI;"%TBA,S*S+^DS@@+F#%A=$;JP,K=?^EIR!#D>*MS#$ 3T=V#Z M7&F+/(&R]SO)=>KM:6Q,B3UR!J##N'.%;5.C1[;XS:J_C)4-92YVR6\>&:0> M1>6=?,D9]]Y.CC?)(NN;UVLA\SX$T"7-#5=CG/X?+D!CFDGV\^"F:>4_UEC] M8E#YQ#2Z.(!@;V'/2F@K$;LOPGA&0K?QD'T&CUF3YO$\G<.K^AU6"$_-[SRC MMW609H!!^(Q>98(S-!4]>JEJB^($FCQ=+(5M.U+3<'(\VFL+3A-&F9-KT"Q-DT<6R7M&@J:*4QUW=/TVP##7GU"G^@9C..F=&"ZC/= MH4$,R-AC'8FM!7^0GF'C]Q>8F?^+G!:S!D MS8JFS2S[-B[U?>I/W^B])/4>;77%;X?KQZ@_@$5ML&'LU>ZD[JV2.H )P!* M&_;]+5<\_0$ZIV!H8O>Y!+N0#PC #EN[6(', M3)]V0=EJQ,:8&FZ1I7Q8&$,,%<[2F"3P!#/-H)BZQI?15&DT M)X ,B[C;0\@UXW_)"QIEHFG9J@Z13MK'D)+_NTQ7N(=;+I) M(V[-G?1OYUS3E7C6&E4W)T:;6C:[L_IS2C9PPRJ<4\3M,US&*!;@2?Y3^@2E M;K?J\.2+^^ 7Q@_J+V;V%L,RC (JAL7FBA Q+%OX!T1@0'8LM< /_,/\T_M^ M/T'"0.ZEJW1U5UTLOY1TK"J#TC=6G$M[SZR G X M9,O##?]!)@O,P%8YG0Y6)1$\2NT(CI (^-$P*9-"JDIDA:>>-RWKM MXAMV3+=F,4V@5$^:WSS2[('^S/+J;DB0&\Z&Y$HD5%_"'XD>YEKP1@F$UB4Z MS !R(E"9[A2@J!BYA<;76R1%(S0^X.@=42&'HV-NRL_,\M;LBX4N43[S?_%? M-K_B_W/+;S/^F_\/4$L#!!0 ( *> HEC19;=YO#H %LN!0 5 ;G=P M>"TR,#(T,#,S,5]P&UL[7U;D]LXLN;[1IS_X/4^L^VRVSWMB>ES0G5S M5ZQM:57JZ3/G90)%0A*F*4(#D'7I7[\ J5M5$6""%Y""$-'1+DD F$CBDE_F MA\3?_NMQ%;^YQXP3FOSR]NR']V_?X"2D$4D6O[S][388W5[_?OPX^?;FM]G%FP_O/_P8O/\4O#\+@O_\6TR2/_XJ_W>'.'XCA$AX_O&7 MM\LT7?_UW;N'AXE?\N"OZ MJNF'CWG9L\^?/[_+?]T5Y:2LH&CT[-U_?_MZ&R[Q"@4DD1H)I2R<_)7G7WZE M(4IS-59VX8VRA/P4;(L%\JO@[$/P\>R'1QZ]%5I_\Z90':,QGN+Y&_GO;].; M9\],'M9DC7\(Z>J=5/K[CQ_/WLER[X3,*5[A) T2FN+@[&/ <"@_HC"D69** MEQZ(]RR^75.6?XKP/8[I6M;AHJ_YHY<,S\4H>%@_!MOFI73_IYW6TZ>U&&.< MK-8Q?OONH,=KAKDHF*OXJ_AB4UYVS&;O"_GP8XK%8-^\DJV(,0V?Z4A*Q;=# MD^/PAP6]?Q=AD@LF_\@5F"M/?/CGE9 A?1+S!Y%D^[@8W>'XE[>JGPMI8CGR M*-NHJR5ION(%BHMGCAX)+Q%(4<)$IM>C2'[SS^_B!?$9O2:)F&0$Q;?;5\=' M=SQE*$Q?B&-8J[;:YHC?Y9,UX\$"H76A.QRG?/O-7HF;+_YY27@84YXQ/!/# MYERT_X>B%P8UCK<'P8=>^O =/XQV\WS":"+^##>C(XDNEBA98'Z3')8A8A2) M58CONJ#H;)M-6]7);H*(]13?B#]?SO+J@OW(.T-W,:Z2]5DAG9R'.\N(A6\H M$V;,+V^%*21^F6/&(9RV\XWF%P0\<#<]/BK'/\X^N5MRK*=%(B%K_:K MYPUM2KQ;(R:WIG!)XFA;>\[HRGRIHS#5B =WI)946)?XJQ7= ,8KK;5(=:<= M.X-&MUW3*O/BV#M?,?PIP)H!J^#L6%4 7>I=&0P0&XMVN)%_)LF8'F Y0&6!UC# 5C&6[AU_/1>!HJR51;+@&= TR5F@:@E'KO$ M"2?W.!#R&D?)S%JUA[#JR.4AEX=<4%/SXG LW21B:&$I:96E#ZUVO.#K^'O0 M%WST8.OXK 4/MCS8\F#+@RT/MFR"+3,KRC;2^AC,$6'!/8HS'*PPDMVJPT"L M;,<:F@)*XO&3QT\>.3DD9-'3AXY>>3DD9-' M3L-!3@:;MVW8]"$@R;WX1!G!IE"IM*XU>*1YNH=$'A)Y2'1,D.AF,Y6?X/0] M2!4/B#P@\H#( R(/B#P@\H!H.( (OG=;Q$,1#;/\#YG/ >=#M]ZA)V!#-I"2 MD2B=P*:1>'PD1;B.T:($II3^WB%PNI K$L/H@D8O;1[5SUU*DS$YM:[%-$#Q M/S!B5TET*5Y>F60513N4\G(SBHIG3S C-+H6WY7!SLJRUN24.H))^:JD!1EO M]K-0A1>@Q>U*6X86($4M2%F,-O44TI:S(-__RQ 3]GO\5!#6-1(J2EJ0<<90 MPHE\>Y5"JHK:D%(\0B?9P<\=2K.Q;Z-(;-A\\X^/?Y?_*044U&N>_GH:D63VU38_[=+@3;X.$OS]($D*3,:X96ZE[PPRW9' MD.0;+C4Y(,4[EW8HX8OB<5H. M,Z6 KXM8D8I=B#5E(<"T5K!7I3J735)$F1CFN2F8+WP7,LT)>](NZJ!:%F07 MUA<*4W*/A8V(-K-6([2N>.?23O&"2&=+DGY'*[5JRXMU+MWM$L=QU>0N*]2] M9"L4Q^<9%V885R_9I:4ZEVV&'F\BZ;&9DR)#;,7B4U'^V$/1IC)1Z7Q8TD2] M9JN*="C5+0XS)I1P]N%N1M)2%*TJ8D&JJ\5@QFN#J?,5@-7,5Q#CIBQ M!DY!N&X)4U8LA#,%5XU31BR$ M> )7C5-VK(;T!->(4S:LAL@"UXA3IBN 4@C7C".VZU4%'PNN$$ZQO&.D)#/Q5\KY!>++ZY@^_(JC!?XB1KC\LB?Q"[-])E)>2WCPF%K0=SV\/;)VKW-2I2"%F5->GM>H]0PWH-?6>W&IHZ7L@"Z,KVJCH M*ZV[X1T[I1H^6N# Q)4Q ^HQK0-[7!DUIAJ"0"M7= -?<6!F'MPS.6R]F(X9 MN%/'%0T-,O'>YT(3"5Y(9^+7?A12ZL7N'*!WL"(=MS;;< I9C",4M_<&0E4H M(7_F#\@S!MXA3G)?^.&CX3&"6LU:2R!?3S"?6[Z= _T^MWQI;,/GEF_?ZWTP MRR]VX;YBKYL)SV/L<]CZQB,]A[PZ4/H8< M]MWN][;!WX]!M/,B!63G=N(Y+%H*%$N219 3C4EJ?E-8S=:M0<%&\GE$V"DB M+(\9G)52,N 5'(.J"A'WSB8@VMG#UN);D1[4&#:JU+N1WG-ZB&'.H=.7E M6Q!KML1GGW\\ Q'CX!7:$>S#YY^,Y*HL;Q6T'3I'Q<*J)5=IR_;$5/5LVS[9 MMF4"<6%S;4;(:+=+PUTW;339OPZV88;SIXW<4QSG%A)?DK7A&X8W9KG?7.SL M,B TXANY]C)KUQ&#FL?K8#W^'O3D(G:!P;\9U=N!+H&H>L[K"_ MA^R':R-$>'5YJ])_EZ>@MLNB=K!K2EIFA[\(GE?QVO7%>Y>]@MM>5<&'AGQH MR(>&?&C(AX8ZB 8T0T74>--W17$5IN5KQ528[ )%CL-(&FABQ[A0$T@%<6:$@Y_PA MCF)7YA@$9QDR;5Q9K&NJ!D"1_:DL&^16 M)" )6MN&-:HS0 I/:#Z9(ZX*$?,,MU.\SIB ]AQ/&%TPM%)33"'EFP=_.4L/ M K_BT_Z=B@\*(4I>+ZQP3_*6SA!H\>,E?AU_#WJBKGE:1E=RODR7)U=@.*?8 MN+XGG7C2R2N#V9-.#L"ENZ03H$5"32V!8]=+->(VL>6.W7\''R6&1OFQ*\:F M;VK@#DSOFZKIFZIIK]EV1/T4<#FM[U!Q>:0PHHB7=*G;I3 M:HI%DR1,<93/U=\2DCN/)YCE=S@E(.UF.G<)?4./9)65.]J4 MOWK,R =SQ6&ITC(]N>/&\XN# MC2!G>^#H@O*4YT;MN=PK)N@I7VDJ#W>WT^KQ.B:/OP<]N58/MX3\RK^*:X"T MI>TZ+W?C^7#$CQB3ZU ^OL^?7HWY? '8KP)B2XQ1(B\AUIY2[/)1WI'NSS=Z M5[-W-7M7<[M.Q-?F,:VP4X^]UWHCE]KG3""=.*$L%3(M^1>R.LN\HS1B*&;ZE&0N%%"SC*<87 M-!.2Q&IMUF^E]2[<9FMA761)=$M237)O<*7.8V92+2EF8MM(GR1:5@3S=,6Z MC^OM^%.C!\)H(D<*BJ=B#DZ MHKW*K%6XOK"/7_OXM8]?^_BUCU^W&W;0(D+:"'P=NWI VVG))?:Z#W!G0U"H]LZX,IR@AC,D(@+6B<_YZ',^'HNI:\CA M:1)ILTW9^3E@^!XG>[T!R3FOZEFCX2B>[ DW)W-8?EA1VN/O04]QYFDQC:_% M4KN][NEWDBXOA E*5YA5\1E,J_O(E(],^?R##W"J=^0*AX> M>7CDX9&'1QX>>7CDX=%PX!%\[[8-B<[.@@2G6VRQQJS(:FR(C2I:L0:20')X MM.31DD=+QX26KA!+2++@$\SRM!E54*FRO,=)'B=YG.1QDL=)'B=YG#0I!JL9T\X9:Z,A^8!D,L<,.U&K NY[MNYY;EU,[N/6% MABZGBVBAP6SU?GV57U\_;([=@>E=^=Z5[UWYAYI0;&>T/6O.-B3Z&,P18<$] MBC,JWFL-F0Y M3P^K@=,VC]O4N,V"[60;TOT8B%="[D7S]S@@"1=*+;8'>=.? MZ.5""!V@4/R<=ZD>T&OV$&OPKPTQ/2CL!Q0V>W<@J-C&\+ .("]W(M_L)?XB M!HK,IGN3[-9TL91M2?L'5Q?#063+S_% T@/)(D"RX>KGX:6'EQY>>GCI MX:4)O.S$JK(-,7\J<@K<(:%6>9G\&B<\?U8], EMSAIL-!/( T1+9,O?DGO, M4QQ-Q?\9"<5?MZF8"[\E)/?3',R3_.3G$@ZBC.Y1)_C>=3'-)%0O[$\K41*LKQ ME,-1<$?/\VC8H^$ARWEZ:!B\[GG]WK<:X)[.[6C7!E:8'YQ9P#% MMB=A=PE6/<^!JKK]2[R\9V! H6/56P$!8/TKM62RE]T@D1-2#O@H>I=&"RW9 M3M*(%@LF!LMV_<]? JB/1G4]]/;0>\ARGA[T5JZX'FI[J.VAMH?:'FI70^T: M-I KPZ1:.8V-8-NX^.Q]@,(P6V6Q^#H*J+S9/O=*,[S$"9>,+:'4FN3M>HW; MN\&@@7@><5N*Q5\L93I5?I.,]J]J+-_4Q>&+*B[]D-06D_![.VUWZ6"H-T1! M[H%>!= M =X5X%T!WA4 #A*W:4:[,HRJ705=V)_6O0?E=P#6]!: &K/G'3 0QWL#^HF_ MP]X1# X;O&[[9/07=_7(7!#A*(DN29R)I<(P:U>MUCS ]0!WR'*>(,"%K5@> MT'I ZP&M![0>T!K1R.O;2-9!V(> XT7^F20Y';O^"6E06_8@&%P:C\!Z0F"0 M5P0#8/"7;1U_W1:"3?&:LE0L"S=[ <^?-C_"\5>MUCS^\OAKR'*>(/X"+5@> M?GGXY>&7AU\>?IG KP8FDG7X%0A=H(3\62S_,J?AG4S5'-!YCS7*9[[+M[4C.XRO^V6H,OBGOY)#_&96LPU1 ML]4=9N/Y-Y1D(2;;YTYVSMD\1;Z ,Q3;Z$/P$(?+'@';T[=C9+!Z::.[6$;K9CF M8F\&6EIZVF"O/,E$:5FO2H%KK0G['Z2V*Y0U9,.G*R[<@UFR)SS[_>+;M M_52\J]L'M%;+!:K0CF ?/O]D)%=E>;LYJ1!?7L?TX5>QX.)MROH9/<>';U:> ML"?)[ '']_@;3=*E"HW6;*TGD'THK=AL2M\:J*S=G%J[77.; &$F'E^Z2YE4 MZ:D/U^011X?SH;(+KVKT-'K*+GV8$OY'R>9L4J7W/NPNKCA_V@SV*8YSJX\O MR=JP=_#&>NJW, .$,"@>K6B6I)4]>UZ\MY''A6TESRV-^$:K>XUK5S&#FE9[ M5&XN:KL"J6*U#QM];E4L ;=ZKN@+]RRW=B^I*MZ'[(=K"D1X=7F[00HJ(.MV M0FH'NZ:D58EU)TU+;;]S/!?S].7QRU$2S="CHJ^M/J.G%?JE,-+* M*QJJ-$HT^35W_WZ6S&4"1@[R1&R8$/O(QS M"*Y7C]JBN@-*YMV;XG7&PB7B>,+H@J&5FL<.*=^<1<%9>L"@$)_V@U!\4 A1 M,AYAA7N2MW1*0XMW+[-<_%ZK+4N7E)$_MV/QK$Q\6$U_P-ZIK&LOWGHD#+TI M3HFPTR[STYD385W3*!_::HW#F^AM]$!$_#N*,_6K K?@;+8WS_?R?*\7G0?N MU-1TASQVO50[NTQLG&-WG<-'B:&Q>NR*L>D6'GCLP+N%#;Q1#>SU$_(0UX;F M)^@G;F+$GZ ;N $-VK;F :TKFW<#>#?P\ MK>9(9C/"^5R_24+Q1/%)[A_:Q)K*2JTZ@+=/NTE0'2$UU5H54ZR#>7)B\821 MI+?R&\XS''W+XI2L8U+NK*ZLU)6(^?:6/W*&V *G7_$]CL7O4CUH\=(U9%B[ M5:&GF*>,A,*"R=_@;PE)N=B##J61WQ?JTZ4#JMU,6T&,<[E*7QPLTB/&)!]: M3O#SIWV1"7J27^6B7.5!O0.*8Q[EGBU1,E[GQ,;O-+D77<-1,=Y'Z<$;&<\/ MNJ>,E?0K5IMNTHJ P3?T2%99>>A(^7OW4I%$+U79[YU+-94C0!&O>O6;'6F4 M&BKYU:K+O5@(]>?H2\M8E?)*&*/T">-;S.[)9@E_-?5WT[98!V4 MI\)&^0=.ISBDBT2B[P( 7%.V^4J6>QEUZT>(GD(PG75RWU)1Z>6B:UOI5?+T MI/^7ADJY50 L;3=X5[4?<]6&O%]?A$TC;-OO:*5/C='EHWRXW"?5\$%6'V2M M%SY[;5[2"COOV'NM-Q*IS47;%556Q]@T%KDKL=;*\02R?5S1AIZ@H "UQ]YY M[8*J<2T<>ZQ=WV^UH^?8^UTY]=MQAKJB)AMLE*,_].S9*,]GCW'XZ]2(*#5" M;R?$0VD83#LA"LI08U3@5V!\1'^8K\ X2@U6D/$!_L$I:'!.=K#N?_*Z;R6J M9)OE]A=)]%J1='\E64@3>?<>3L+F=[75;-T:XZV1?)[WUBGO[8JG9"6YQG(N MC>=7D]$MCK&$F5/Q!J.G,@I*59U6N42[A\W("L^HG/XQ3O'VB>+A $$KZK8J M\%?Z@-GO)([1"J"6-7- MX=J*K;[H;?*2SDFH1IILPMM(G&?91L+ITQ;HG>.W.%XP6#.>KPDMYE,D( MC.M:#?=?H#41EN8HBG+K4<]%T1>V2V)*[@FCB=0FBO.=C>0VG!S &IX;M-I@ M^J(ER< K6NW/5[F[,SZ>7PCH1M)QE@HC.9%'OK1WQ555ZXFNE>?G.K3ASY_R M!1X+07=?EQFS]1OHL7]/HS!DPLRY0(P]B:_R@U,7&9-(&-0_70.#>(,;Y6LG M%J"&U1Z\,)<44K\HU9.V7TC!-3-#5[17F;6#0U_8DPL]N="3"SVYL!XG1(MR M:"- <>SJ 6T:)?E6=_.XK94,:'OP7&$ZPK^,-&X?=3(UF;$F=.C6%=EZ]S0OSJY@&F4V-" MMTFK.4&2=$4 [02IRZ8Q>=MDXY\#AN]QDN'@K"&Q&-"2-1(Q6!9/&#ZY1)G- M&5]B)V4H3.75:!<93^D*LZ\$W9%8*/ B6V5Q?H7?!4K#Y6_K4?0O42:'!W1: M#,J+_);TFV1KP8SG,X82+L_2T63"R*M7W L/J^!NT*]SZO.A:OVM^\3W]G9"6*C.>WXEL^WRR0^6%O5>;BMIH? M,H#2B2]>-4LOD?;P3SE/IT*X@I&4R0F_Q@QI;[@!-]#7F>TU3H14_\!(E?KCH(2'@QX. M>CCHX>"Q )FCQ7(>R*B9FNKMZ 1!2GW[PC8,.3L+$IQN[74A5G%!>$,\8MBJ M-6!22RZ/4#Q",;4U1T)3$8FS_#8#'&:,R"-(5X]AG(F1="V6%'F^)"M&]GA^ MA9CT9? )9D5V?UU:ME;:]IC!8P:/&3QF\)C!8X:^K.1.-C*+!G1(A5F8"$7* MOSB-222/CP9W*,XO@>%+C%,>A)N3D.L\[A!D"CLV>G/#-PP+XC&.+K$8.V&1:T?\'>-\(4LB,6]92OXL0IN, MBO>BW!\457%#IGY?N5_*#,\Y0\4NJ6.W#9&N@U9D49I5[[!=P:L J]=X/[02I MKM"[_-73!%C+.X0@\H[G.U_(A/(\,=?HCN?GL:IZ *CJG5R](WG(6_)>+N_E M\EZN07BY>M*$WL%5 [,Y-U;T&NH$SSM'J=?JL Y> &OH6-+)&FA(CT# FCF6 M1*K&FBG#-6"M'$MN56.M*($26#7&2>B&J!ICCQU8/7]Q3#TM+3,_.ZF61FO, M9R=5 EA@!A[1M!7"/)Z8I0]2#C5(F6.P"7J2 $Q_FZ:^L&VYQ9H5;7,\$7[RLTO,WK*R;J4LRN'5%:)I;^CM/Q?(8>JR/ )JW8[>GFI@84RU3/-\GF M H>#)5_5.7!%N_WA7*QR*IGS'X.//4I6,0L.RPQ!SHHX@;:LW5 LXLM1$LE_ MI*?E'L587E.2/LOTKHK)FM2U'F#>WK@B!#R\ST<37ZZHT5>(7/L*%,5ZSVZ< MCW"Q0NOGK4'-WGMTD';1M$NJJE;[=+F!4[OS2@B#QRZ,OJI^MRG:3W(NA2MF36J-E M1:S*># 8%2(>E.C)+CB00.PL^5*]I'&$&9>;9OI4+7AIM?Y[HU\'7Q<\J=E--R5XDELZQ[2TF%2*7%;6=C4,>UTT67S'B&+C7 MPRH-H1_?:1+6ZCWV9DH62P'Y?^/%K@WJR8LZ?>5ZD6Z,C:E1^29T9>U+ M?6CO@4375NB10JF#49J2MB5>(Q+)W&:)&+%)=# 8]$N104W+/5+0.=16):2* MY03 6QX/KT2TVK*6I4Z1V%6C[9FZ9SR<.0F5>S*\HJ<1>QJQ1GHPC;@#.8$H M:S"XZK4@E6.DJH(G;D-&Y+'353UQVQ.W]2J [HO.#8;7_3RD)5>'X%Q1B+ZK MAX0E\X">*],'K". @>\*-QT^;DS#>*YPT\$:4D=*7"&C@U5A[*GHCIB>TA3% M=M/F@-6DI;2X0D@W GU!W9/0>DBR!]6/D]':%F [63GDYWCP6U'M/6C@EC\,+D)) :Y@1D!_#[53Q3QP9;"8J05R MKL 5L&BL&9U,7A:*696O2'!-V90"8Z,3V&[0H2-=.2*174%1QJ.):: MY"MP"IB:Z:V:?-D=,!V\ M9@^"/Z+' MQ$&F0OJ<09U>/GB8=%3,I((XC,OBY(=I2%^(V$)+EM/3_"OC!7R:T2D6XS,D M,18[T'X[FE')\YLP>D_$X#M_$K(+.VCG_!G)RTV+Y:J^MU--QPXTQFU.LQ(*3R6Q\A=,E.L_2[S3]!TZEV:OHDVEUZPEK7A!4 MIUB,&A**A75#8'W^Q4%)T8TXD^GW+@E?4X[B+XQF:U%#? Z+JWN%#;>[N5>I M'WLB!#]Z+5O0\J?CT_(D3T0H.LKD!G2)BW]W';]Z#)=B+<+R5NKBKNHN]&PL M1$_'JZ38U\((D\YG\:>DX_)\Z]ENX\^V(3E(!!@0"U_%WM=6L_TF MI0<<]Q M(C ].!%0>2W;:8!V%MB$$:'NM?3G/.7&B*(?VCI!\G,O'7D]@;;4D2T_^N#8 M@:)C1FT$R>>!=73#D3'NW*9>3Y96J5POF"U;]>_CJI59BYHV.QAM*$^&@#NN M;&$XK7R MW%4)XBZQ213=A3?0DT$'%[!B$-=O: C]W5N<-=]H20/#>J,E M9[HX"&AM#? M$J^863]+&AC6&S5W,=9OR'9_]SY/=5=>E[&?U6L'6*4HFZU+(;&R?%\&V!:L M75,F1D2(<<2O&5WEI36O0QO"IT+@?/;4LZ%O)$,I8NQ5A:2:=I Z17UF^KQ?P(APYOBMH/#?)UB$K9L6A M(VQ'\E9UL&E[@^N]@N3>H/\5+=K-)F:R@"J6QWZFWA%G^=L& ZJL64@5%[+Z M'2OC&/!V?&XYGUO.YY;SN>44IS2:^BM)UJ MBK9(!^UN />1K:ICK>^>8\2Y=.5\DRWM&A%]NCL6Y?#XA0'N#LY2?2Y4FPB; M-=V4=4ZY\'"%*PL#S'BH2];HP"1X/@QG]B=Z#5UH-6E"M.M@Q^]S6K>M2CC= MJX/IZ]S U+',.MBZG=-?+8Y7=X>@>[")NEHJ%;3=#D]#.Z&[!AQ@I\Y2-U-M M?>:4.VD@&O@QP4RZSFU'NX.N@3H.D]34IV\X9CNVJ\^Z1*[N8& /ZV([*JW/ M%78G 4R#]1','>_.W=Z#M=- &<\O>H!1P4YC+334'IR(UCEZ/D;UF9T-[1Q M'Z,*6V/C.N;^;E>[!J1NI_*+M:/%^H?;G,+0[2BSW_01X!=BG*%[G8LF[$"6 MGMQK:9BC!OQ2C#."%R_E*CG*Q;O/A#;=[0)#Q&7MIF5QA135FE:>:;I.JC!7 M:'M=:+2UHR:NT!OZ4C+@/-->Q9WG7$UHBH,/ 3D(Z(KB:YK@39[1PU\BF;8Y MWBV-U>E6F[1N(]-J<_E\DM5.DZSN7U4[+^TP[6K;;5M.0K.Y^%E>OLF7.))W MD1:IP(6MA]F])F<0N&8_/?JNR>*T+])3[HF="%/T\$V,&D90;*;VRHK]].%^TE?KIQ^^4_2$)-C3$W*PSU37]B55_VE-O7':SL?ACH?Y8J#\6 MZH^%*BGX9J:%<^,$IAWH_NZ*@\-0/5 X<%I411-3MT."=A^W"AFIIP21V?9B M_11P20&X0\7-.0<< ,:S "51L.8H0(5+[ZFF,ZO90ZSYM-H0T[NV.G5M[4-R M.<'BMX3D![TFF,TI6TD7_8QD5P]'H'C.TP/F/EV+: M7"/"GMT;VY/RP?(Y\G:^TSS4B:/O6<.*@O]&][" A?- MW5%_U&_%M;GR][S?O5DYSQ_?5]9B6_T;WLBO*=^PW@Y7=7\/3P3>C5'R':UP MJ6?!QJ-\;-C'AIO$AANZ#GR(^'1"Q.5NF"H#'Q!#YJGT=LP0%C?NS;O8W?3S&C=V>CFW$/3T M!G3!I-.BZPPT9N18THF^WT6%6_&T#B4/U'O874J+G@[K]_TV*L)Z76>L.%U] M&T>-;!,?S]X'* RS59:G1@JH[$CN0F1X*31"[G$@WM7+ R>@*O5(DO8$LD:H MM-TE3[[LYURQO?<,(A3:'G:VR(=[ 2_Q7*9(V-P"(WW.?'^E1RF5M%DC??7S MBYA4\C*23'_0JI8[4-AM%UL%SOM"]"6M2KU M-67"A#S, 2,-4.UT@%2Q?+X^Q<*D2F7*O-L'M-9*KR]L5>YQ2,[Q7&ASBL,8 M<4[F)"Q2F>4'N6;H<92FC-QEJ?3ASVBQD"KZU:PQN_U6+**;S2,7=B*ONQ-@ MR4 !S5KM*6?'R[R/$;8W,%VLDU^P%H#J> M!&6?!-6!G#3\0^95QHP7+ULIZ\N"?;&:&T@,8OP>%[EE,)#2D]).AY0&VQ^H MD7WNBFY .(K6P8ZN:,B 2E-M?SA'L8).J28>,>>XʉNY=$*[L2 M3!]M>*H[6%F&3UILWZ?;W>HTV*QP+8<).F#/'@6UK=)9:9%H%M(DDG?4R[.I M":R)O>IP9V14+ D5I7N07.@XO_B-XXW[6BNYLG0O_*B-*$J)GY7JB_\A;/#] MJ%>(^JQ,3P-Y=Q]=I;0E)?N266(?L1S0YQ+IQP6LDF72U#U.,KQ=$^62(._; MOLAX*B1CNWM#Y45WXK](3$-%YQJT9)=%@O/%^XM811B*A7$WBE8R)W[*W M_@V:5?8\*0=X4B_.A17'\L;SC8676WM\G*4"&B9R>"LZ8MA*\&%(?7TE7H6M M4;>90?95!U=JM>$. PUJ6WJ"V D2Q/S%5D,,\ TQBM78#6,C%<^=U1_Q! M@]'7J246:RAU!5FFY=:M:F8B!:9)O@P\7QFTBS^TFF4F9$I8;I)+N5Y> /6* M[*@KW+/<6O.MJKCG+$+D'<^+22K6Z9*I6S'C:[;B COS.#UC=5^8Y[V=#N^M M8D>@IBNP*WKQ2=&:TP4AUH8KL2SX/#*S(EW1CT_AU7R-\2F\K*;P&KAN?$HJ MSUAOPD!RL0WU1LP\+/])HB FZ([$)"68 M;\M$ 4H/J](D8#C,&)-LJSO$2=V+,^T)9(/AU$N7/ NJTXLS+S<+V>%MN]*, M* WK&=1H033EC2?VAN!AOP<@CM7 T"@7?GQ%\MWRNSND;O/?A@W(,/ ^O!1^,> M?!Q"#[X=6!FOA[IVO:W5AJ=(GPA%^FAY6J?,7AH,//$TJ-.A01D:6[25'<@5 MY7FNE&>_=#=JC-UTKBBH>M#4@8BN:*>%%;L*B[K"%&I75:6@UQ5&4;NJ*D77 MKHRJ ; 7!SZ8/'O1LQ<]>[$UTIY)/*L[*Z>'K#Q0]>B#9LZM'%IM ..W':PE MSSF;L^$/%UV@S#;GZ<<@VLD5D-VN6;CUECA:2'<="L7/A;P\6ZT0>Y+)B!9( ME ^$;CFN2W#JZ.G6V$R=RN^I2YU2ER9,)B\6S2:1O$YU+5^\TO<1<(%6Y?8_XK\60.BBP)<)_QZI,"8W;#G8)) &?3)&Z7="U0FM*VN67H!ASK:0E)3QCQS-VFC!VNC+8 M/3WG=.@Y%78:-;6+7-$+Q(QZ=3,+R&)Q14.>F]0\# 5!2:[02N K3:51YXI* M/'FM^;)R>JF;JD<-V ?@RJ QW*V56,R5(0+4AU' PQ7=],H=&CAQQMCJK?1T MN:(9&ZPJXVMTAZ*"_EE5]YC=T:'305H*6=EFCOP4<'FUV!TJ[JS:4\24W^/- M7;CUN"*M/<\:.Z1EB3T?I%,^B-*?VMIK!-$M6AXTMK*]Q/F#-M<-GDLA#UFC M+^X%?YGZ!52YIYPD%Y2GXWEU($=9;@AA51\8MAVFPOG]Y%]P@AF*!88:12N2 M$)D63V[YFR%=$1JLTX8/'OK@89/@87O;CP\7GDZXT(?%O'>VZT%386"YXH/=AIV\WV<\#P/4XR86 1CA8+)H^Y2;N+ MSO>_U'*HU6C9FNNLMFS>2=:/DZS&"P.YPVH/!$N02+B\R MGHIMG(G=/,XBL4'+X['B/WEI@P)W-FC)@W[[H+]U.6=$&&Z+\7S&4,+%_CJ> M?Z$T&K-;S.Y)J+MDV*#FD'JD=>D9U;7;JXU$POX9I1-*DO0F$=+J#W_ *O75 MC_$]9B9=*"]_*BZR.EN2=X:=CC/,9#FFC58\5S16#5^-MSA7G!MU!Q-LL7;% M_]%<2Y6[LBL#RGO+!NTM&V)JI\;(M#^?6;B1-W@0 @?A1F)5ZO*F?K1&3^O! MM]:"O-[?UJF_K6R^Y9G6SDD>]REUIH$K=2E@?H6DD73/:G0IVF8]F^*0+A+R M)XZ,Q%36[DCD;;:X)]-7KJS8M:!&K[Z\EAU7=:/US]!]W<)::XWQJ!CYZOQ+ MNBK!CT[TXM-@>K&;,0;=V-49T-MHUH\!OH^J?:59(S[(XYF=[;BMFVU%WI5] M.JYL&\ZBH_67]>\L6F-&:"2>S](A$JQ,K$+GADNI9AHA2^?P-BM!(EA+/SDYORH<:6#M_.68M=,& M> 5KZN=CUE0M5R=8-9^=7ZN5/A[;8<2SLR 16P;)3^0$0H_%&<@\/VK^45YC M'.: .2)QEN(H>,!DL91_H'O,T$)B[=5J>W@RH%DJ'I'(6&DPIRP'XB3)\GRL M>2-\\XUH0&9?RCM6-RPY4.FMA3D'W7\?-NWGF,) !P4HEC10V:WZ>:\02Z0% M-L%L>VJ+A IW;VG9GK*(O)3ELGA!0,DWI7N27<"FXE"J3#RED+BTC(]8.' L MY??-$C(J5I#OF:1&;@9D/CCY>+^,C*)_"2-."JSH4,/6^N_Y>*Z2UJ3'ZE:" MCT/JZROQ=.MMK39.)?HVU,W;1_-\-,]'\P81S1N2#PM@USDW)+2*:+"YG4;< MKE4+K[N 7DI3% _1$]K03NPNUC?8_"T@?-]=@.]H]*+P'ECWIG\(.%[DGTDB M+-95<6CZ\&^&8YF/)TAID"[QH=E*Y_DW,O$@2I[X]B[ MCWYYKW:G7NVK9"'F/18+U&V*<3P10X9G#$_$@%!?7 ZNU(* HO$0<6$QSAF2 M*>O#5#Q)7B"RE^&)RV5+=\]ZK28ZC1G8G4JP6$ ?T[N)+XJS], /)3[MIY7X M(./ G,8DRB7,=[:2V55=L *)I46J(Z/:_F3.(UB M 98W;^_C=]_'#["-J(E=NTIJ M1,BJ;23GE%*UBM1QN3@7'P(IJ9&CQSF5=1B1/Y8S;SXB;SL9FR-KLE9=2K>6 MQ?!72)-(7B4A+\[:VASBPZY #NK$ZPO_6-)8J)X'^-^9//^2)4B\RP.><'50 MJ[UGV0A5M2UMC0!4K=LNPS!;93E"SX]RR6M#&%Z*GN37^4J^C-9[:5S?[EV> MD="L>+;I S\7BM MLQI2I:<^["__GA+^A\9U#:EB]\Q+OE3+(4Z3JFB!MJQ5J:\IPV217#V&2Y0L ML/CX@%BD'?:0*E;[<).D D#Q="IVF-L'M-9*KR_L3QJ]CE0JMNQ+/!>6:'2. M$_%'.HE1PO>[@1![/!>V^(2RW,Q.4T;NLE1BGAF=Y,:N*M39T>."Y.=!J4^^ MSPO$E]Y+Z&-#FL: MZLO S"6=XG7&!!X3,@D+KMC82MZ4KK/ )H;=39VORJ"%7COY;)W3]>59P;[, M@ 82@PR!(P]N@?:N$V&LP6.@$$SABC8J^DKK8ESG I_*T0)W!;LR9D ]IG5< MMJZ,&E,-0=S"[M-P:@!?5Z84K,O/ MP .H'EW$E0D'MP=A_NON4F4,?!P!@NRN+$"FU@Z< .+<*C1 WNW [TZHC#AU MM_(.73.57CA7%AA[Z=/@Z\CG0A$)7DA388CCPQJ7Q;D]OI9:VV*Z@+5IG$1K MB-IL'-H#JPM^7<[PIW8+\4&PWN 7Z1R)WNJ&&L$:@U^HXXK&RL.68(497[,S MQ)7,[F$$N-5;$Q ,] ZC2D(77#$U\1C5HI*]^;B'L=YP^@[8%;H5VU*05RT3J>?Z$TXL*NW5A?_);N M=^)79RZK*OC#E_[PI3]\:?'PI72]S=#CU:.$4WBSF"K$5Y3NBV^[9?ULI%$* M75K*GW%UYHSKA,F\DNF3- %2F95)+!%KN:@5^51RU"E$9!AQ?(F+?Q6=:=*4 MY<-RSRU @>C'#KZ-#N;#B6I56KKN81PP[6X>'S MXJ%4@M,ZS:/E*D#XQYM?Y/\D35Y\\_\!4$L#!!0 ( *> HEA_L8D4/@$! M &YV#P 4 ;G=P>#(P,C0P,S,Q7S$P<2YH=&WL?6F7VDC2[O?Y%7GIGFG[ M'' AL9>KZSVXBK+KMDTQ@*??OE_Z""DI-!82+8E:^M??B)3$5F(3 J5$]HQM MD(1RB2?6C(R\^I^7L4&>J.WHEOGK+]*'XB^$FJJEZ>;CK[\T>S?W][_\S_4_ MKD8N/ :/FLZON9'K3BXO+IZ?GS\\ESY8]N.%U&@T+E[PF9SWT*5-ATL/O@QL M@STJ%XO5"[@;/(@W-'WV[/)SWLW@45/156?Y28>J'QZMIPMV"WXCEQ??JZ_M M0NE"-QU7,54Z>][1PD8&STH7__OM:T\=T;$2/*R_N 5H>ND'05=TT]!-^K^? MNE\O7%LQG:%ECQ479A?>)54*Q7JA),T:A4=_K)]0O+O09/AH-K4G%PM%N2#) MP4NF3L%]G=#Y) X59\#>$MS!'Y6"QQW;7??\[-;2#Z:N31_73GKC N[/Q[/N M.:FT,*:%GMN6L:;G[ [^LE8H2@O3Z[@3.QPO>&<)+F\(L8P6O#U0G!E:=,$%?7&HZ^L"@!7R,V@S4 M3D'^4)P)A.?),HK@@CZA.%#63+$TQX(ZM6T0;*_A'0ON+O7.T=4UZ-'5Y6&\ MJ*/P)_'.TJ/V&D#:]A(CJ=;4=.UUG?5N+G=!U=;T0-66'@1V>52422@?X8WE M&;#=4-9?>DAS[14IL80HN'V!MWUQ)!5D*7?]#W(UHHIV3?Y!R)6KNP:]1F(& M1/M3*O[U =3)U85WCSWV?PH%\IF:" 2JD<$KZ7N0OP7(DXYENXI!"J1R(;'> MD M!=-F%]=7%T%'KP:6]DH<]]4 #AO"LP5'_YM>$JDX<3\2=F&HC'7C]9+\ZZ^I MY7[LZV/JD#9])EUKK)C>Q8]DHFBH72])43=)\8.DFQ\)X,^Q[$NB3%WK8^[Z M2M.?@I8TW9D8"KS4M$R*]_272^P2M;V/NJ91$S0T?(8GVL@INNJ-Y<7MHAK6 M_L0)P:DO2O['$I.2IH+" ICRLF7"1+_>P.AMQ;B'67WYC;[FB Z@6A LA?#' MKHL@#N#_I7KEZF*I&_%TJTL?=0=UF]N&.^MZM?+4=1L0,7JFCDLZ(!/(C?4A MYLXUQ]34X(][9RB/.>+IW5]SH*@OA_H+U0 -AN-W5W]Y*E3+I6KNFEV,N2Y>_ M]VZ#WOC"\[)I&-8SJL(["^32=. .IT9390+;Z5*5ZD\**+0Z--1[K+G;8@=ZC M,@>]"F:<3IW%$8!!?6GJ!B@->TI!I6_N31CO[S3Y1^E-9=>Y ;G;&RDV7>U5 M!WQM"NI!Z[F6^J.CV ]VST6 _$6#::E%ID-BWDPR?#/GB.I[T2;-(RD$2]-[AUG&FD4J._V[+N\ MF_6Q<]\?IBZZY^ASG&@ 80+] !B==/)W,YDXGOR#-0;J,42@?HC>,0(M(P&BMX6A.$^;,+[J1-T==!WQ'# MI\T7W2ET,&(/?B5<I]HF:\,']1L<#:F]VH![<$;5A,L!Q'>&+GNB] MJ5IC^M5R'/_-X%BQISJ6X]JS/OAML&;[RDNTL 1Q]$<3/NVK<4O%TFYS=DMM M_0G\;AP6])Y%KKJZ\X/-W)UE4VB_]:*.%/ :X>NS8FN'SMJ-XHSN#.OY"]4> MZ6=%-_%B<^A2NTM50W$H;>%; M%:,YQ@C^;-JJNT];)7==_5#=:[JJQ0W&:93IDN*XC ?AOND@\CXT\47-*NW0,1BR0KD-MUA7HZ,/ T!\9$5LO M$ZH"Z?KZ&!YY&/;@JC/TFNJYBNUB_@ZC=+RO^Z!9^)Z"UU^<_S4S'N!FI^;A M(E)!>9R'T@ORSA20@=W6?LQ6O]2F]BM5 M;%RWJ*W-U O'^R;+-"WS7_&$#1=XE]=[GIG!^VR^3X+W\@:\QYEW. ME3"@& M(C#I<+DGU0IF'$H-@OG.^)>$?\GX5XEL2D6,T!FJ:I?=J4&EXJ B-6V[J5D3 MF#4O(77>*5"^*_IP,4$U]I14[!78)[MUK'[BCBWVJF^/33>L4XUD9VM=OZK1 MJ#BT+->T7(KY^I=@)3U"HV8AR),=RM6AVI"T:J$A50:%LE*L%Q1)T@KUFBPK M4AVP YV][H\H,9D!1JPAZ?2:#M%T1S4LAVI$-XD[TAWB8E8H46SXX\(5"A?L M1^H2 WC>P-])Q>(_O3SLH%,[=5$K%JN#8E$NE&N#+77P&4WH$2"LH3]0&^;S09P7,1$TWIF@L$H)(?P9^PG<-2E[%#<;3."%[ 7D67&(,IG8U@O(=I<:KZ2*R]!()6_\ M(YM2,@8TC!Q"36SEFV*K(U*2\DP8?"#0:WP1_F5:H9W<]66EE9EEWQ;W![#\ M% J"UH'ON*7ITF$;> "FA&TVNQRQ?7MH;1>"O1@?7APMY]_&?1R_YAQ]/#$H MVQNQ^E+VW;&FMO>5;<*[])F!D7(=,US[SU*6RQ]\TS7\/M1QOK&G-'3'W0^#W\WOS;JI+3Q:8DGURW>"[T$C%TMS M,9L;M$78Q'@KP\'[QU1QP#BY]IMG. A>$=P+ON,K0N,"YF%X5M*+I M3S"(ZX5'V]XN/+M]2TP 8,>^VNS+'TBHOEWN\$B1@3((X,)7]* MZ"/VS/NJ06,O$T-7@SZ 1AM[W5PTRL.&D[N>I39N&=?516A3L_F=]8A;0;R# M'!!$/Q'13R;@=N'TZ-D G))]TX#FQ-\TLO/@=D'XTQ$^/1R_)M4LU20/'Y/@ M9.+DT*2)U=0TW4M"Z"BZ=F_>*!/=58Q,$&[C MV+)$1' ?%?0)6XJ-ZWA.)J@7/J@LD6VA1L2Z=.Q,4'+G<7)/W'5^BE"(6?-/ M]B:R4*1G3'RA@,^*W$)Q'U%Q\PN*B(M.6;$.CK9()>P3CN&92KLF-5 5EM61 M8)LNBRPU>#UGF_!(\C7MMF1JL"NLV7BR:;)BSQXQ"4-8M%Q#-)4V;8K@*JS: MHT$W779MBC![SI;MT>1LVFW;%.%76+>'9HZ>EUV[9_*AL&@YA66&;=F$(2JL MV"/ -8OV:\(X%99KK/+T/&S6I&7K>5JKND@:/'86?(L19L6=3E Q_IA:MV"^7 M3K@*JU;LETL;9L_9LA7[Y=*/WS.U;G6Q#'O\.MXQ%Y87RZE)U/%.@(CI,E:X M,122)EOJU3;/*O/HQ.4K]^JP,O7SZE<0(?@]_O?8#I=O/W%@^A MM:F&X !D>(>T&XK)-P=L-ESQ%-[+S0,[$N2/M*/B K^>:?H]G\48TH_O&Q3PCE403-A6IP%A)JPJGD&8/7LJ?A!FPI+B&82I MM*&RJUK/5KEE5U&=K:K(KM@_.\'K'W@O$C5.EZA1BKU:72-1( M-2"S9W2)1(U4 S)[-I=(U,@,T<[>PN)Y>3)[MI5(U$@="+-G3XE$C=2!,)4V M5'95Z]DJM^PJJK-5%=D5^V _?]O*%:H^Z^7A+'7B$K>#XRU[>=ZHU'?^1 M^9OY!@$/493P69VWOL/T1G>LLBS5+N%>\/LCU(<))YQT MIG!FZ[ ;IT2 >2N86]^[:\$,]TX.YLU8;ENF-IOQ-&.7#U$<,IUOU)V;,N9#H"6GCOE9*A;FX#F:@_S@[TST*Q\"[W0:EA^ "0LN MBQ9<$M'!_HA*C;*4I0P7!IJ-XTJ'!7XX_4)_ZGQ6=/.KY3B?7GWH=ZG!<.^, M] E[Z8WBC.X,Z]F_?Z9@.*@'VV=YX62)L.E.!T9WTF$"HP*CB=I9143]5HS* MC:J Z!:(KIVC(%0@].1:7O-E:'#.XBG77O_T#BZ: M'8'TU5+GS_<4@W)^"E?6(GP[-[J!;O.6%P@8)Q-8WOT^L%BT-Q?H)MLAL&^6.>U1$O$5$H(L$Z@G7X8AVNM$[ZLY(2 MS@GB5RH*TF:6:[M4-13'@>GUQ%G_=4(9<>S'WT%M\TMJQ MWH8>CFXV=J4ELQFJ;6U,:ZJ3NNS:*= MOM^0!>+O-5+!^0(8IP5&(A)C*>NYB4OE"Q$2F !==:G6%D8=T42RXO&84W!-F-]&Y9G1_=C'CD#WQ#JT"K5< 2 OQMKBDO!$QC :UL9>R#[:CU3^W?=,.""Z]+/MC7EM"8. MDCQL"+Z5L'X@Q]$YP;3&I'.\US&!,2-8RWS2;[O@RQ M;-=03.V+8@\LNS>%-H=34\/[?-(P$ _;1A9DM6\;W[&X/J#&#ER_BH,#37Q! M_$2(?Q2^9O0$I5 ME(I_XL;T&[BI@PXS59TZGT""N2#%'X;SRZ\AE&5/*89- M>];45JG3MZ>.2RF*0E4W^";U[H,.)?HN0S\2"GRRQ>WJ/;@C:M]8X['N8J\< MO_3#1 =6:&J:SJH5\$W3L"$L%E8(&TMJW;Z^/@:0/@S[MF(Z0VH_##];EO9@ M]ZC]I*N>( [NV51[>*(V_(1S ;S#H.8$73NZ]%OD3-:<47!9%-V&^%H)<#P-#?V1>#.8* MX%I%,*4]N.H,%95Y.$&?_66;.%_W0;/P/06OO\@WR8#-?9T$VXG"MR[$.6@8 MXG%>[,_F]7PVKRZ.V]*,;Q8FD!_[.)5\4/$DAN"#6/B@$LC?<^.#66"^;9G- M"2HU96#0-Q%Z=S0U-6K#,.BE[M)QI&#]+!-KEK"&Y3S<5_"W)Y8YBQ@T574Z MGAJX<_.6#G63:I^H"1_8=,A V W,4K9F*&!5VV%SZ!;*WSNAYB$B!4H'2 M,Y.E,(FJXKCWYM!6T"52L8Y^T]06YOK5P38$9B-A=L_Y%7)6(%@@.&LR^!PP M=\8"2I"7"^[57RYM:K !.R-]0@S=_-&UC.5IQQ]]L.S'"[E8+%W8'"T+)DV5%JAJ@ M6)0+Y=J@7"C3QJ#0*"EJH50OE:DL2V7LZ-OQ-1HRF7TLP4BN+MA('._T)1@8 M?A]116,XT_2G:_(/0J[P _Q+R+]^DJK%C^S:\MVK"7'<5QS3$$!0&"ICW7B] M_ 5/#7!(FSZ3KC56S%\^LKN._C>]E(H3U_OZI-BZ8KJ7)M:6-CZ.%1NTV27> M!FY6R,BFPU]S/[F6F@MK@_SKKZGE?EQIR;OXDI#VY/B;Z\(_UMH,Y1.*Y.W M"Y60T0N*H3^:ERK%59H5N@VNO[?O^ZU;TNLW^ZW>U<4@F.73]:#7NOG>O>_? MMWJDV;XEK?^]^=)L?VZ1FX=OW^Y[O?N'=B+=^ET!F6$^NI:9)[\ICWY,.]>^A^P\'YS<,H0<8 1MO3,:@/E9@*JF.-ZI>WELK6 ?&T MV1SQM4D7N7^-[9?S]NJ\/!5J]4HU=RT5"_]F(FS^^NL3SZO+Y(O'BK_FBC , M:A@31=. XK/OSD11@^]^EY8XF4VJ;J+= 0P,,@$FTAU8&FAW=R8SGJCMZJIB M^+,/RF'"GM-67BG76"])^/#)F_'G";N2)P[,W_#CB@3=061O(^^_IV!P4-MX M[=*)9;N@I_ M+A(26J+JY<"RC(%B&!:,^65_(-20)(U:N?KQ+1: 1E<7KA8R M3_-=I_T'PC( MLSX(+2*5R$.72)5WVGOR<$?Z7UID0=3-Q%SSIH^WI4:I/&,";_ 7KHVZWH?4 M!<-LQ@3/G643=T3)7P'8B&>L$K!AJ79)=I%#'?:+EF?T+L'T$HQY6AA#MT;X MLX*FO!9>J6(7J+D_7NNYZV]@\(V\:2I)>8(/[BO'XI]"RQ9RDR>YR8[E8H=N M'DEP-GS!64ZAX.QWF^W>/1./0G+&(CG=&=P"T8G^)/G3^\^U@D_9,UK9V;<. M!G#(G0Y2";A@ (X5H(PP.*QCU!:+P.!/O%_LR8&5(D-R$=LHP >Y)I6+'OY6 MN'%P:JOV=-Y"&UCWR^^M'O#O?8>Y:IUF^X_3*[]WK1=%=1EQ,5I@TT?=08YP MB>(09T)5# AJ1#>)[CI$'3$KXWT*%&;DV,ERM&%1LRXJA3#M&ORPPGZW1E$< M!4U;6!63?VQ0I8I_6)G+3AYW[=<;2Z-OU:N#3TQLZPG?$\'2JP*#/P"2+'.M M<;>J8U,UG7WEY=Z/E7OI5Y'$(,R3E+MNE K%2J76J->WS)6GD;D%X3L&*P(Z MU<+<,_+?J:T[FLZ.QT/!HB]"D#UF/RJF_C?[_IYW3+R[_]#]T/M 6N.)8;W" M\);I3]K6A_?G93T%NGDSIS0U#3-F_'^^ZB:5]N62*FM++DJDW2(=Q?Y!.H;R MMT)N;?V)YDEOJKL4>X*>+DCLB'9$$F+$GY4;^/A@]ZWG"()6SEW_1P'.FC[A M.MKRJ/-DM_89XS[8'9#WP*3'4 >EW$(L>+6;._:R8T$WC/^G3SR5M6\7RB!I MZ]4Z!]&&=_Z 4"A.;)AQ?:(8A+Y0=8J[1. R2!5H4S$U L,E.-Y3VEL,9H.[ M#R_QG!U,)R*3J>U,T>L!?Q^>8$I=DM\-WB.;8I2@J;J7PNM9-,:<>ZZK[O>N+O#GN[DC M*^.4J]R.TU88O_9>QP/+>.>\/V"4_%*S[4K%_&"B>JZE_LB3B6*3)\684O)S\0.8V!-, M'!N!L(_%<3\UFVR8.Y\O/+;8?^) I;=_[_QO++/"(:*".B7(5V_M?V2PJ*9_ M'9G5T92_WIC]GPUK (9O#XP.U27?P+&C;K87(4*7=.Y-#8,(H.M?B3JBZ@], M:/H!@HRR, J:'@LQV7?2>S)2'#+4#3!:%,. F[A$AK;,7U,=+1DP8 ;4?P#> M.3-F2AAT\5:$?)-FP1(* (!F#M[&%2&BP5U0)?CHQ*8J98I%D@E;#G;(.W@? M0(4X4Q"YSLC"P'"P@N*.%'>U[\_*#>"B-*!G!RI\[^ M &_DKO^@SAMT^XD9I&V1V5)CZNSF>+&+- 5RCG77!0 PMKG<*3Y6(%T0N^S=1+6B4]W__JDW-PBGT*N:A%D)O.-!#^.C+-\23:HW!'GW-HRR&UX$ MP[X^DD?;>G9'P>T/()HIZYN&)3/9VC2+%R&8Y>+'=3UDMZ6/P6-;'UC?O^!! ME,?^PVOZ&CRIFQX+@G'JLYPH8""?V3AN MO&'$CJS2[LC*> 1FN,$4QS6P4 ]"'X;YM\RK!7U@6LPIG3J>&0\]8.GX8;FF MX E@6\8K-OZL0]/0+#%AA!;*QR?=8?K%5$Q55PRTTS!U"Q_&DU4TQ=8<@HOS MNK9N&:OT3GD?:HL+OV_1[W-&X X$="?O@)J:=V#!KKX->/3@9V_SZGO8S+&8 MNKR6J6=N?C6+Y.Z/@D5K) Q;P0"'>>HR%D%>L5;9=;;JK7H+(@XNB&#.*SS9 MG-BZ0>22MT&%A7)\HMZQ> P\_B:>/@6(*JH4O*O^8ZGS_]%KYGQ_MY MP:!#MF?'G5VQO:DHXJYM\@^R_+:[?G?VN@4F(/Y*S^*$Y&:[U(.?CX8%4&;> M]=4;&/L@G<_M[]]RBUO>V9/S+>_!I_F'.0T[S<^MPJ=NJ_E;H7G7;W4OB6(\ M*Z_.*F&69B$@O+P7X1DI5V;FRVWXS. $'SHO_8>;KZR"@?]^37:GKRW<"W;ST.ZWVOW>#AV)5XIB,XE';(G'OYZ_XWTAZ%C['\GN+F2CLN(E MA[S"&VC!^R53OH05T"'VX^!=,4_P_^\_DBTM54Z=3M!1'NGR2GTP4\Q=W&_: M%C,C&C$/94V%E8EBN](,.VAV%V#,:"-=TI>1/M#WS$;J-+O](-%H]U_=[_^3 M KF[;S?;-_?-KP3,19 CS3XK[N$G.2EO2;('8M< -@I1Q[JF&70O7MCRBA@[ MEP'$87&M_>$C?2!WLSC"K R?0]Y]-Y6IIKM4>W\IL'0<+.VIE79?D&C@XTOU M J-(Z,/+$AH"<-2\XIO\&4!46!F^L7><.$ZR,]QH3\TR*?PXF&L'@0)2D&P MY6:LQA8?"I=L=.9I>5/C&_Q@*WH^T/)<7TP*Y!TK!&4SK\.@B2@OU%9"J M^JD1NE0>GWCU\5.%59BRZU(<0'V+A?U0>CSAGPKY.G".#]U/B@&*FY+>B%* MKQ>G#$'D+57]HIK[6@?^:Q+$,\SC=5D(WA,+7H>>6O"R*/G(,N!WCA^&)][) M3JD2OS!QUQ4!5QXDL#H\N?&@."."QXHE:]X>*?#CH7_5F5UKAPQSU]70P9PO M-\07.\"*R'$:&&U\'^8'K,%Y6(@@.2'KC?ZZ)N0L#W)VK"F)1['D#R!63>61 M(7/_G_L&Q_X_=,BM[JA3KUP:2O*FJ1BOCL[4P9QID*N\!!]\IDN=J;$:$$F. MFY!^UU)#,%/\8OJOO[3$6:/T@?P;L[]TEQTXRQ (%XS@.P+8L/#\*HO$D?R%?Z"(8?DVMLUW""@LT0@NU(4+/C M##%%A%KS [/4R!TT;-D)P@PFXUJN9AYFH9U;T'6R#G24M^$"B4W :_UN+M0; MZRD&96ZA'_A>J,6!1M)WA^5J^C+%69WI_:9C[S5P?UP\DSAT3$>D^M'EBQ7G M^G3>]/8AZ%BM,YJ,.1R%,"$\ S#%JHR^) ZUZ@?2\EI+4(O! M/%S+_$:6CRCB$@"=HS_&N8K1@W$H;K)1!#:D:[F^"4'!WEGV;;Z!%K_,-E,L M[*98V$YQLJ3[6'3G\3K[W'RORWM:+UH3.U-PC7I_>F?T*B'*;'#<'O?/_7N;^^;W?M6;_L<'*5W-P_M MVU:[U[K%S76]AZ_WM\W9@<'?<*\=[KM[Z+2ZC $2Z>7"%I"3-WUO$G=D31W% MU)P\5G.F$W=>B)@H8ZQWX6SI5^S@G6N-O3 61+E2R9/@K[4;$7-AUG;4T:S;GUDM M;W>IXFY3VM DS!**U5]SU8W6;6Q=>FM_[[AY-!A+(V)*T=:>A2<8A4W&0M*1 MKQGI>+$[:">.H!5V=_VM/LNS_.;E6;:6\RRO+NCXVO\K9(/J4=#BBX)%2FR# MT*K/+CCS")PIIX0ST\68WI'-O#.8 %]6P5?B'WQ"NA^/P3+4Y Z+!%D8YGDT MR0\QWTB?S:*F6 8I4ZIS(VI.IXR6%4^;NL3!I(R-:F4^];'I\&VP.4*3;\V& MW/7/V]H/7R [:I]6BRYB'%R5)*E6J4K%ZH[5,6<5%[_W;G-^W<:I4WA4E,EE MESY1AI\M2W.: MIM:C]A,>@-VS#"VJ^"GEBW6)+_'##6QYZ8=@'V"?1@QJ/5[V*>>NZW*^(A=3 MRC["_=U?I2^5 ,A=?[8MAYTI,=3=,_"&N14QFV6'5(Q!]3)2=QBE(^I:N9B7 M2F6^A 7'(!*XE:08=-[AN)6J^4I-N*B9U&?0;H\:>%!TGCQ2D]J*X1TMK6AC MW60'P+!Z&/1E@@60A =[QB:X),>@1GVT??:P!E9XJ^G ,_U$1$M+!,(DD\W%?L5"R0Y MX"Y@1VR+K10%LBBJRYN7<4\Q3T*(8TP*-I#C2%_BCPU*^9*4 C80'G-$CSG0 ML,)G/A,G8*,,BR/G:2:;?"?@$S7I >F8^4:=L]VQW$"6EWX(U@'6B2/'*5[6 M:50X6]H]5D:3\*3?>M)8MN)L%JSIEBPIEBJX)0,#O,\FN2'F*FVL&:6I6M- MO.,H9E=F)X4M7 MLS9=%(?:R+#S7!3_62,?]!Y2[_J0XNIK4D@@;,OM3>CL/ MR46;#R)@BIS-$X]WHX,:EE&]+9;3H78/5?RJH]I2;!,/(P_N,XS/'-;BS@[K M??LN=UW\4$EV=9AK7N&S5X*#$^#@L&3D;2&F$W&PG&QJ2;4/F$YCZ%8W MIB[5A#DDA&G"PC0L53TN<\A'^0$&$1<1?#ZYA<]>"1X^/0^7PK+&XS*(#N;A MA#._3V(2\14?XB3&EK4F^8E>BB8S1,Q4>U\)%A]%Y>20J4,UHIL+9UG#9*A3 MP]OA(9;D,LTZHLD,$3/5)EIZ[B*B8-9CO/ON1DDWY"2+7#+-0OQV2O!V$DQ]MZ[ MN9)A[#)C['*R%6C% EY*3">Q@"=D+$"=Y.BK?WWE&7,&_7DZUP?+@)!9\'EO;JW8(O"E",?;FZT/0G[U-H MT/N7E1[_\G'>.]:YI<"V']?V>[:\%W"RH9651G9I8X%55(I%C)9;[8\H4535 M&D\4\Q5/[C M%YK :+H"8(0?/-J* 3-KLR.IW1%U*&)2P\(*&GYB-1X4 !(9 MZJ9BJCH\#E!RZ1B:D KTPA4(ZJA. #2SN=/O^56X5_>> W^K=Q% MV/B_W'9#QX\3N=1LX%$L_GPT+-C6\\S76+S5?[CYJIL_"#RB4L,()YJF.Q-# M@:G334,W:6%@6.J/9=7 ^K'@S2AD9*.4_,FUU-P2')_]6=%!D.JXXN11"Y]8 MO3A;G%J^O(/\"MNYWD<)@YR%5U> :YIAI,#U'7-W%)O&C/^WP!(RN_=#M?_F]U>N3SGVG16X>OG6:[3]( MLWU+>M\_]>YO[YO=^U;OZ@+>=F+A 0.X>6C?MMJ]UBUTK-U[^'I_V^S#EUX? M_OG6:O=[Y.&.];G;^@+/W?^G1>[;\+V51'_??3>5J::#\'U_\J;O3= &UM0! MH\'9TGKLRG'."TQ#^_*.92BAP/#M@-EW9Z*HL^^>B %=Q5@O7+;$%2SPI)&. MVM*=!2L\?EZP,[S S;QC7ZCBVV$IBN5PLI3(FH19 I*;O^:J&]5S;%V*6@MK M-I;&:=,IPB9C.<4")3D=+W8']=T(6F%WU]_J@ZBGY!M<'3FD!<#7R#?%5D>D M).6O+NCXVO_+EY5'1TM8K:Q]5Z,%9\;/F7)*.#-=C(GQ/OX93( OJ^ K\0\^ M(=W3EZEVULEQHLD,$3/5F8X\E&1=]J@+HDHKZT3B6^+V/.6A',=A)]FHJBH* MJ*87Q7&<59*-@J?GBO(@-F)GF,-%DAHB9E+>!D3/C M(,[.8A=NT\GL@.^F36%._J8:>51TDP"[X/'#,$E$G=H +O45+SPK-LNH=Q$? M#N (L<,RZQ6'J(HS(D/#>B8CJCV*D]PYEGYANW9"[(=;:.Y)<9F E%'BOE([SQT'"+_,+Y\ R"Z PQ]00A]!BCBQ>;0I7:7LCP( M?0@,S"2@J:$XC"SYRK@AB'^!QPF"!=.4J[N9#)EF&ES*$>LXPDKPK 0OI(K& M F[#LZGC$ANL >(\*Q/>K -QB'8\[!;+(=KEW6PDGWDWM$BP->59 L><6N,"%9*R.ZH1#DTA M>6C 89"Y*#2WO M/ N)GAQB,' 0.%FLJ+12X2J)W-CMW3EE'D_J>G/*A*/438[H35_R,(^?E$A?5F",PCJC:*JJV0C451M726:J-K*<=76 M@3.KVHH?TU^U]5/S:[-]TR*]+ZU6/Y&^)5FA]=8R#,4FRAA$@^O@49FS@JUY M0E]4"G[?_/!,_S%1RG7W4JY^$==C5A$[956#$^X[%.7XCEZ.;U9VE:RI"IET M03X!MRS![9:J+/,H0%Q8*M&_IOJ38GB1QQ A=NR5Q*1J@_*P(KAEI6]E[Y6^^[HX$+9I:OA/ M:T[>IGNCV#:N\?Q',:8TXD)?.2^O*Q":Z(92 5D>(%L/@6RI(,D)0[987;,G M*%G("EL\%H76MQ6-,HUFL?T^-E4I(&A@8,/^_A[%,*QGQ5394MO/5QB^"\92 M<*A:T%\*(UV#UUX&6*Y*N6NITKBZP&>OV>MW^YV,*>62_[L,ZM1M3?$FDQI1 MU6AWCJ,V=7V/+VIBF9PO-:H\"B$!RT1@62U&595QPK)7:JP'F!ZJ$.DJ<[TN1O3J?E+_K[NAFZ@"NJ*KA'Z,L%M+GE- MU6/^JOP(WL@N;T1>TCL2;Z ^SA=E3OS '; IG,,]='2ING:5SW(5PS_D0(0S MN;'+(Z^NQ2$(9/ 3JXTU%7J%GWB&>*Q%7E:+!8\U.5^N]&OH(GH.R9B%+#@U/D:KXT2V(1ZC)Q\21%]S0]X.%I8RX8TZT >]'# M6E*YDB_):\H=">UYCO"4HSM[1X!G*=]85_$X%D#0 ;TH?D(ZE-Q MJ(?^@C4L3.&+\/ XD0F1UP%GY/V*U.WB,!Z&WQW*+.V(0J%>S3?6'? @5-8Y MPC/RPN!1X%G/2ZE66<+_VZRR/EN6]JP;AM!+B3-^Y$6[@(:1#^'(5XI]-5S$<=B]EY[A#;SR9T3^(<'WG5ZPZ+AM*O^A/5 MYL3UEAZB1TI*Q7RQRLF".$>@.5]\UB.O@AT'GU*^6$NSGA)>T99 'MMW?=J( MG<@*2S KK!YY'6LA":QMF>I!R^W5?&W=H0,-HN9&XJ<;%(0 M69&GS8K,[%K9X2< \2ADHIW\4X^\<]P3,%'$2@7$BBSE2\5DMB)$.--'0#^+ MT(^\'3TZ]#&^VJCEZPEM0XT"_91YL]FKCGHFA5A%4RDBEC"T]S"T-QU4\%57 M!KJAN[J_/[CG6NJ/D66 >G/^]5-=EFH?":8]NJ_B,(/TLHMH*D7$2IG!PVOX M/CC,P)A+.'&B04I90C25(F()VVP/^;6AR*4OOS0ZR&)R3)HKPM-Z 5,XL1E21(^4UP:R9Y2;3'F(Y12XLP?.:W2)^?"&L6!>@D+&7&23<817LX8FI%S'&.' M9BW?D+BL6B.99_9HW033P)@%@/K@FDP>N!@9-ZOB*.51,HG:,TUH-K MXD!I&326E"]7."GF+9RI(RY 3;#$HU?>T5JI;96 +A-[@J*Q2"Q[@AHQE)*QK=G3OB7Q3U.$A!.)D_F M>_1TD;C"2_527JYQ(A,X LH98S)Z@DA))!$0OPQ4>33FX"%&]G),GGWE92&P\QQNR0;(C9\,DR+EXHN<-^#@26*("OE++ M5V0^2BCO OB4>;;9*\=V)I7?1%,I(E:LEC51#<4!Z?CY[O_^42[LWOVI9+2>V]J&H:#PX:/OU'Y:9Z+;#:U+X6EI"DLK+7S!&>& MAI7-IC)CK67=GEJ_.!EVO 5EQUN(VO IY0S15(J(E3+;AM?2'!T[R 9T4*#E MR<\[F;85F+)=GJOFKC\4I9G]R_XA$\4F3XHQI7FRTTMJ.S969VN2Q2+[L]*F M,U)LF&)EZHXL&^90V['MQFYMR]*.SQ5W?$[.79N629='L3(FW7&P1*5E$VOJ M.BZX]>#19W YCKMEA\WK"5+D1,X9,S+CXC_((NO6%8;Z"]4*?U/;6EU2*/"Q M(L\1/LX8BI%3-K,+1>'_Q&(X8$#9,O>R&N0=K08Y#JM!WM%JD-%JJ,1K-<@[ M6@W A->-?+TFY^N-VDK3&*3?Z1T[6A0E&=MJU"OY2GW-,'U[ EM>,"B(XN!F M^V^*K8Y(20*& &W&'KJE*AT/J.UQEW^KE"?PK@D%?G^BQJLP1Y+6 ?(!A4F1 MQ;=(^2<,4@CZZE9"O *,V=1^& M?>4EFBPB#DPF?,I=-XJ<"*0U>'TO6"7KK!)YC^$)6*6\R"I53L*CFUE%.)Y[ MZ/)MF_F=M:FL&?1#,R^'-HJAR)6Z%].=6PP;44_.+LOYJI1,L7ZQQ?],<5^. M7 L\'MR7$??%?"DAY7H&._WYUK +Y7)8YLQY:=RM/%T"GM:LZ<"@JTS],[=R M:'V?-PJBR!7)%VJ--$TM'K%4R5U792E?2B@E8E4LE$.+.T5ORE @&OR#P**1-.?O$^AZO&7E3[^\G'> M']:=)17H:T!? 2YW8[*AE95&=FEC <4JJ%-J+[?:'U&BJ!AW5LQ7S%$U+1=5 MJPV7 5OP@T>;I0#9+N:NNB/J4(08J&:'LN(7S(1D,>RA;BJFJC,_&"ZP$AD? M3CV@E6D$J@5U4#J?/_V66P5;K[KY@\ C*C6,<*)INC,Q%)@ZW<0*-86! 3)K66JS M?LQ:(%<*&=DH_WX"\99;@N.S/RLZB$@=;5./6OC$ZL69&;M\>0>)%:8F^RAA MD+/P5'ADF*L+938E)'?]KA"1A=^Z';__)[J][]ZW> MU06\[<3" P9P\]"^;;5[K5OH6+OW\/7^MMF'+[T^_/.MU>[WR,,=?'NX^>W+ MP]?;5I?UT_<\X.>D]>_O]_T_DNC\N^^F,M5TD,3O3][TK648BDV4,<@.UP'6 M $UA31WPT)PMG8E=<<[YA&EO7Q;^FL/ !0@3WRJ8?7=$'?C$XZ6".X"_;7G+S1*SYB M$&VQ<@X7H0\2*S4D_ N!%JY1VO6FQ+T M%=9)"JR3V6Y,89P(<9"921?B()HX8*GS9R4)!%*B(84E["6,%.'PQ(#[:E*X MWRUA>3:&E/''AEM^24"6AN5ST$G8*#2]64CA-$MA+*%2N#<+ D$"0=$0%%0X M$ @*05#FT+*(C##H;$/+TJY: 1DA=*()G9!#87@$D_ OTLP:>_H7*>,@5HJ: M1Z81,,L0S)HLY5? 3,#LJ#"["6H/"YP)G!T19ZU9W5 !- &T(P+M*RON)T F M0'9,:>97PN /9JDIBH)>"4Y?#U<-.S_!KWOW9R\H1N9%0S!!Q3*QU%+S17<*"Z>*?6,H M6*B3QY90W]2Q9>NJ#_-C?6>E\8H[E\:[;]\MG2&<7'6\=$'O%!U85Q.21]AO M. OA -@?K7AS@H?&\HJVQ#N0)KB'U=S?#>YKCI0\'?03/GV25_0EWH$4P;^V MH?3^%OBO'E)W4MPG>9 =K[!+O .#@=:LW\ MG_+<-,$+!^B R 7>LW3\2@S1+SX2"Y(^;:4QV^2SH)!S? M"CN:>'T*3R&T&,!K_C$W$OQ_X<2;>*,]P/WS\S#7 MJ8FA_D*UPM_4ME8-_@(?YU[R@ZDSAF\E#O@>$+T14!90C@G*U3B@'"42LQ.& MMQW$E =K5X!9@-D'-K=4 M7V=T=]#0!H?/\(\J?R6*]M^IXV)X(D],ZAU0K;P0^C+!TZGQZ\]76%X@&$[! MH6I!?RF,= W>?!EXC0TI=UV\NL GP[?("Q=>+'<*ZI\B@%.7=HM+=JFKVRPP MV3$4L_\ZH2P@Z8L(O.;5J9B(4*5@I824Z2E0Y8LA5L)=B* M8[8J):"P5<1>P)"*-(M+("TDR3OT-ZK"Q MHQ]W"\T]*2[36(YK3U$Q=77G!U.*=YXX:;VH(\5\I'>>,#EEK!%SU&Y 1MV! MB/J"$NHS2#J\V!RZU.Y2=BZ-/@2]P%2HJ:$^C>:^":]-<,^,>W;TVH[%/4<( M+PI.$IR4!"?MZ)8=BY/BC"@*%A(LE 0+[;@SZVC*Z+A!Q/BY:DN%!RF9X@Z" MMWCDK1TWBD7F+<$3QP\4BLS"O0.%.AZV0QV7V"#6B?.L3(X:&90JN>NZ" R* MP" O),DX]==KO%(Q#H?LWA(B0H^";K?!.'%Q:);T0P4/!01G@H M#F\K$@^),*!@GK0SSV[%/XZA@+(4 ,2*W67!58*K?*YJ'(VK!#><2X[@?J=\ M+=??"8_X1>A@6.3OWG&F> H8!NI4YGY#?\#_!F1JU/8_8YT?0"##$YE@CNI2 MK.]9=T=86!O-)G%R6+I.#BM)L51UW/\0,7P4P4>UVZD-?>[ D"S-.UN,_?U) M<:AVLX"\J,>,2>5\M2'S6JY==( ;+N$A(IY*@B7> 0X/;2E).WICQSVWZZV( M_8]B3.D6";OG@1@R5X=AG/51+CRRB1"LJ>V 0$S*")9X!WA4Q?)N176$.MV@ M3E.5:97I=.IG:ZDAQWD141&0D=6)CQP)"QPB-S'&D-4W-VY(>$BF)'!.1 M:_E2C:LC2879GBK>V''W:/R'L&_E#*:1HQY1+3A"<$1$CHCEH+I#XSU'Y8Y2 MOE8N"0X1'!)II4F.Y2B\R">Y'\89W-9T2R4Z$^\ C^P1RT)LG.>]"XX1'4B: M8S:;7+ME"_-@-B630A5+2(^/#*JD-T^N/0J-!6(* X3.8+_?\]=\N?.W>9B3>IM]Y.F>M+M9QUU MF]3?CIG)L<;@YM5)G;ZU)EK!1.)@=3FL2Z%Y1W=IC]I/NDH]Q=JEJO5HLK=$ M,R=YV0&3."13: M4K"C8,=5=HPEKR*F2*?@4,&A@D-7.72W[ X^.2M3-FDJTRX+KC7!$;[,KS#< MKUP+)N)E,>+Z\O$4:9J?% -WO<*5;XJMCDA)@JDKXD;GDR=I G_BG]+;:3B] MJ#V(;JN2!T9$-&LZ,"A7$O/$8]TH9E=2AO1C9I6R?-&'J>NXBHE#BYHZVLC7 M:W*^WJ@EO*+%$=_PU9M3(?MGP<"ERE$8>-TJ-199H+;CO2^B^=-H"+[ELS>" M;T_'M]7(?'MH@FXFOE>F8Z\9X9P=59Y>J- M3-U8S]0G4K&ELIRO2DGG7>\&?R_*?^$.+.T5O^$)W]?D'X1<76CZD__'+_PR9JJASOI2*[G@F8IFE-0XWALW*\Y M.7>*^0VK2WZZK6EA(UO,D0#J#S8!8,%E]E$P"#]O+[5P$"P<\YAG*4C"J$[\ M_>>#NNR\7]!,*/N$E/ULK5KH>L'!G,RIX. ].)@M:V64>040]@!"WW*3D>+" M^M\'RM6$H+SSKI_T('[#+2]WEO2\LMJ,)T[!&'OM2!-BDP<088YFX=XL"( ( M@(0"),@"/'. 9 ,,2YL%0Y"Q#0Q+^6-GC@@A,M:A9#%#Z5\_U66I]I$;K AK M/0UHSZ"U[FTOY88/!(I2B:+F&.22*U D4'0(BOPM>0)& D:'P"C8&"9P)'!T M"(Z^6H[ D,#08;*([83A!D7\5Z5*Y1D;B7<@H4,^^)X4T0$!"]$! 0O1 0$+ MT0$!"]$! 8MX.\#_06QK!G'*0KVW5&6U7():O7("M7KYA1 O?+6I*$@UK-RM M7)!DOLO=-F2LU57DZ0!'OJ%WB@XD7&-G+]B'%8D]'/:9+A++%]@2[T":T!Y6 M6G4WM/-16K66;TB2@#]/'4@3_,,*DNX&_T0+DDH-*5^L)%V0E"_8)=X!SG"_ ML8QG-:R,YXYRG]6C M*[G\@81VK,4(.!^SQ["G,+4GBS*#Z;.&+YA9_#N#=\# M(C8"R@+*,4$Y[+#:O:$<)?JR$X:WG023+U5E 68!9A_,Y5CD(VY (DW" K@41YX=(R#L#D/+^,EMU\\3[Q?O%^\7[Q?O% M^\7[Q?OW>K]8>=MB9DKU=79F!VU+\&L,71GH!CC=1-'^.W5<],+SQ*0NL8;$ M55X(?9G HQ2__GR%6^J[A=^ZU-5M%G_K&(K9?YU0%G?S101>&3O2-\\8TJ$ M_ 0K!:S42)*5#EB9%&PEV(I?MJH7DV2K**ND@I\$/W',3SOF<1U)3<6S4'MJ M%MLU@5Y.)G]>,!J/C+9CQEE$1A,,(M:B.0@2?C=M"N/_FVKD$2PE DP N* P M(42=V@ 9]14O/"NVQK@!J>X .A 1J 6(XA!5<49D:%C/9$2U1^QQ].!BN5C, M75=$<%$$%WDA2<:IOT$#-G9TW6ZAN2?%94K*<>TIZJ*N[OQ@>O#.DR:M%W6D MF(_TSI,EIPPO8O;5#8BH.Y!07U! ?09!AQ>;0Y?:7)NY2+.*T@VSQJ2 M:G5>F.44-6D%GZSEDVH,954$OK?CF_N,N/U.:%HNJA(>[(K0J;"@U[WC3/$$ M)XQ2J 1RZ)Q?>+DI@,LSQ[AD4VX6%I,)<$2[X! 3,H(EG@'N%3%NY7*X4:=>HP4<$C ER=O)PR8 W$MS5J+S9/',O0-8:< M8I[@_]]S%]?>N=M<**VWW4^:ZDFWGW74;=![\HZ[.&.-U,R+$CA]:XW[RD3B M8%5?=BDT[^@N[5'[25>IIV"[5+4>3?86IFM3NUR?."IE?84A?N18,_F4QPOKR<5UJ8'SI@+GK M3XJ!J7]PY9MBJR-2DF"ZBKBP??(>*P;!>M*SHA^S*Q#EE[X,'4=5S%Q:%%S"AOY1J.>EQM)KUIQQ#=\]>94 MR/Y9,+!^Z(8/)7 B>5ZOIS05B0N68>OW@A&/ATCUR,SJ']<7#W?3=20JMRR]HDW3 BNSBI7;V+J4G$]4Y](Q99D M*5^LU;CEP[>A_0MW8&FO^ U/\KDF_R#DZD+3G[Q/H=G.OZST[Y>/\[ZPKBQE M-/L)S7X_ELM*3+Q6H#G"ZB?\FNM\_O1;;G66BL5_AJU>^%=F.'-S['4K[VM_ M_S9[X2(CJ!2K37XD2XULCO:OC!L&@LT14O&:G4T;N1K-%DPZS<^MPJ=NJ_E; MH7G7;W4OB6(\*Z].@'G,^#;I2C=&U!N3C!3TUUE^*K+_X'=OEF#\6[F+L/%_ MN>V&CA\G$2EAA%.-$UW)H;RBHG* M!MB]A8$!C+8LD%@_9BV0*X6,;&33GX G_9G1<G*73 M+U_>@Q>?SHDP">@)&V'[K]+[^W>GW2 MN>^TR,W#MTZS_0=IMF])[_NGWOWM?;-[W^I=70RN9RQ]BL%X [AY:-^VVKW6 M+72LW7OX>G_;[,.77A_^^=9J]WODX8[<-'M?R-W7A]\3Z>6[[Z8RU72P&-^? MO.E[D[@C:^HHIN9L:?T8_U6X(VW.J#@*?D M&UP=.:0%P-?F20G^1B+VUV"A,O8QT1*6B+(%0I[]*CCSJ)PIIX0ST\68X):6 M^6

2/=8]H2?3)0GLD\X)!J*> MP!>FSN5IB,ZG<#E6DY7S&.9Y-,D/,?<4@[Q9M,F7R\A=MZD+V@^7Y3;*O6.7 M3SY-DV%%>W_>UGZ%K\+_I; RSN7YUH_R+BLZ0/5YW>:(BSF5/)@4X4LYR5'S MY) 2*(Z&XEH,&YCB0+&<+U77Y,WSA&)A\!^@Z=:?LK>P!8ZX%K$I8%+5#R;LIUI/2S??"C3@_RU,TF2%B"C?B4.&:N[ZE M$Y">NE=73S$U,M1-=I2#016'$F5LP2S]S6Z?@:.Q:Y.\666- WP+\WGRW<$T.UYZ+:,%,.MUT%?-1QZP@!='D")W)K5 )*RRX;SQND?X/ MP_L9]9DHB1K:D/+%H@C0<=PD;TC>K0I?,DBNKCD-B"!R'"?$QX?@3;5@><*O#? +&28QTN$??O8>ZZ;RL:94+00BV+J=E4?\)B)R=?#=KA%.XT=.38%EB4 M<\$K81E9^[H48'K9F(%U2[U_[\VFJ@*7N4[3](I0=N?@B7HD>+Y133:4MO%P M\#3@CYN.),0(&_E@M]-)$^>#!7<;@\MK*JKR!H)4>RJ+U;*/$H=H8?3P@<;V6"W MDT\39H,%+5S*UVI4A8=[0MW:L>E$T;4@T=)9"#XG MLP=/")ZC"9XX:FB]%3P^@H(,<#\9( B^';(#:BZ1Y'QUW4%&:0"#Z$@:V".. MXEQ)L4T;HFE,Y.).%)QKS1A%;/5H.&B+_ZQSN@:?S$*1Z M+]P[5 )7\V6)ETC]>MY*R"@1S"Z8/6#VHR7:G9#9:_E:B9<@QX[,GNI@1]*; MA>3:)#BJ8\\JY&>PF39ELC#J<6K;Y%H<^7L ,#PAJ^/#Z]/K=P?KV,Q$6'.& MJX/#M-5\LW\2C6=#?MLY)XXTOZ.S3W(-'*="R-_*].<28;"R7<; MBHZ\V?/)24]$1[CM2#I!(CRF_3VFD"->=?.).N)LII-PV3D,\SR:Y(>8F;0; MMRS"-6).;)W:ZDC!C%9KB+$C<$C<5[8B1_^:ZA,\_4[DS60F8Z :1QG2CO+* M#D7L6TT5,&+3C@^;C@&ZMVEJK0 Y$0L[EO.56K*E'47>3*:Y((Y2IL?E E95 MI,1'0"?.O!F^/)$3Y,HC1L3<7+UE!?\8QDB^(G/A^(GT%\$]U7+M MD(.QD^">I,,F;^D0QD]9C*.D: 7]/#J2SNP&T1$!DFQ7->(G!6:HFXJIBA28 M4W#9.0SS/)KDAYB9M!M/NY[VR;)MZQFZX1!P?0S=I)@+H]I4TT7N2ZI6_3>Z ML7%L@EH,5W\%H#@/PQN&DZ@G=Y?SU2J7)@V[M+&A6+YQ'B8&E9X@U@&E1D.ZB/GF&Q$T[E#==HXZ8C7,(^CL+CQX"]5.;RD*WLE3=-5LWV ME1?HE#L:68;&@L4V-127:L2U\+Q+XHP4F\+3KFM07Q\/V29*W$_YK-B:T,$9 M$D9Q%" /Y$[7 U+? HC]/D?8G67W$%.?0%9I-]883T1@QES$;94E66RJ%!QQ M-(Z(HQCY*3D"MUCRD6>;?0K.3K M%-?C*$J^L EKCO>'X0U#>P_!'C4*D*_7>!&KHMHX-X@^1R[>R,1Q%!N/SL1B M\R1_<0[>-D^&EQ(/RQ@66REY$W3'J85>DEG,V&^U'+",>&^LL%.&7\M5RLH<7GM\^2DX,@)N18CY2+)O S L!LD^ MX&+&$X#*//UQYQQ+RI/+HRTJ.HX4/!0R^*E$9OKJ*2UO#(56C9CA)C60SY\]4G:>5+^)(TDL%7\B5 M$O]\(1SU_?5TL'TW3"'GR8#"?#E?K')1GE$X\X+??'ZK MA?";G!%^*^6K?.3Q'O\@,>'];[4J*)[-?D[VQ%:)40*)H5G3@4%71<;/W$N[ M]7W?*.[J(>+N^'&$4YD72'8[RW[-4*M^VRP7RG?*'%1 "," M^Z4\AL%%_:*L-BN8K1>)M34 M='=J4_00I[9-M4]3MVVY?U"WH^A:1#^P5D]VT9IWW''3D50R0%C:\OZY'\=C M@#(P0(7+W=D9"M>42=#5P:ZD?1YGWP*)SX6G:-(J+#L\+T+)^(X'H;?'=I$3#WXB+HW@]2R M.\M^"-#$2N!\];'T&GFGA=#:&>H(CXP1ELZ\=VW%^!EC[?Y);K9-BJ+&7*GQ MY9]"%^)^6>GD+Q_G'6+]65IL\]?:_&XM9T=, M-K2RTL@N;2Q 6:4 (7NYU?X(%*^J6N.)8KZBBVQ:+C2!A1@5//39I8^V8L!D MVBYF,;HC"KH7L*A1$\L9P">6^\O*./JK@O"XX\(%5E?CPZD'M#*-0#6B&F!: M_)KK?/[T6VX5<<7B/\/2COPKLY(FKF^8+;^O_?W;[(6+(L/O%UEJ9+/5M#H1 MN6L/G%4?B0'ZR-5H9FAVFI];A4_=5O.W0O.NW^I>$L5X5EZ=(&L*UW1-NM*- M$?7&)&.2CF^?_E1D_\'OWIBN_JW<1=CXO]QV0\>/$[G4;+OY\-"S8UO/, MX%V\U7^X^:J;/P@\HE+#"">:ICL30X&ITTT\#:,P,"SUQ[+H9OU8,*D5,K)1 M.O[D6FIN"8[/_JSH($!U7 7WJ(5/K%Z<+9@O7]Y!9(7E!_91PB!GW:!\9_N" ME;E@FE%]"0%S4;1%*!V=NT[4ZM7@&FB'&I%)IQQQ=1=;];_Y1(7G8.[:#]W^ ME]];O3[IW'=:Y.;A6Z?9_H,TV[>D]_U3[_[VOMF];_6N+N"=IQ]&^Z'?ZI'^ M _2K?=MJ]UJW^*GW\/7^MMF'+W?W[6;[YK[YE?3Z<.%;J]U/I*OOOIO*5--! MJK_?W'3L>@\1S1#O75^!N6=/M*=C4/KJ;J["LA7T8#\JIOXWR[B\F2DO^-(T MM8X-RLUTV=>'X5V@S7HS989YFX;E3&W:AV8_&:PZ%#/4Y&JI6,150@JVT@3% MH3VE@DY$&J^>3+[[DP4-?@>)NX8P734NVY0O.G*LU460@^K M0077FK#G5@TMOTS!NJ2B-T1=,;96Q=A6&B,#T_%B6R@^1_ RO"N!D4#'US.< M,^/L;:>5J6N=N-.+:&$+_)\41V=EJ1>QLM)Q9DX&AN2B#7DB%HJ0*A8I.6Q) MU?YWZKCZ\)5EC-GNZ)DZ+NGH$TIN/-.2O .#PJ"8+4:-5U8&G.BN0YSIP-$U M'=I!2H%Y"7Q?E^7B1_]W[)OT\3V!:5OFT%8BYE!H,IBBO/%J\\^>VU^G,YA7G!)Y28<+(_?+$X:W%-[XZ( >=V5O\7P5O M^D#Z(R"2WQF8]3F#(/'04] =-'$\XH^L9T;N!3I+M8_PW$BGPX4E.YP !]\Q M5GY0.\] <\.>:;U0=8IX(@_#H:[B3?JD&%-&77PUO(--+08-/=]EAD8<&K[0 MF;T?J]$_*C:#%SZI&"#>O=[#;V$PUM16J?.!]"@E;3 \?*;;(-;D/)-K :)] MTN,L,X+#J_VY8^%-C8)#;L \:Z!#;'W"]@3,?:Z R!\X87.N9,X]2&=0IXQ: MKD4&-*"B ;]%4;0J,.@,0\N#(V85G6YE,%M^BOAIH M0-C^,]C8!OB"Z^C!UV>=8"JMX1">8&?]#E+L;69-T+F[@B+TM$7U+1>:5'RW427S7O$(;=@<2FVPT"CL[UHU%-M M*D#+/UYE52FNVF3$ @R2YY&NCI:>I2_4!L5)F6)W;4)4 DY%94-,[_\R6<:PSO%R8!Q/8* LYDPAOMTXG6!T70964!H MGQEGUN#W#[T/Y'.S.;B*W5*4HI0*RH0>Y M_O&2Y!MC&Y[!E13O(1WM0AM,2XT,;6OL<8U/D^T4\$W?^>2MVKA-TP3%3[IT M8F%8W21W,.[M]F017U!L?/S-ZR3.+[[]E2HV5AF@&]7Y4>NEL&"6Y(LR\5X(,:%_2"-XYN0 &=?_ 6LL'G-8HEQD%%LC?D0 MC'%F.%]@M/EZ"&8; I/!F_.X!<"9@AQ :P;I9$^1Q3P3[W%J*(L&/G@5*B@_ M3^>AVQ4D/F ABSJ>'!6&N8;6$=!F0O^[4UT4W?J0'YI3RR MV_G9BV=":!^1$R@7F&JPPU'(>==-@)SC*#9X_YX&084%#2L^8?S)P!1@MO2D MH"'W?@;LH:+;"RK$GRF@Z]28*Z]@T%Y]C07F"VRLW8?AC*RIH0%)H0TE@,I_ MIZ9G8C'J>]R\52\S\\]W0\'T!OI;CQ0_>V^93_Q,)"!JIW,ZPP/&JQ]JFI,3 M<:;/$+\P$=9L$SE3Q[/\F3#A#0)X&=70L^C-;,X#B&Z8'7=D4]^#&L.M MD;.#C/ZFV.J(_6;KY.\HH,O>0\AX&QX$P>D]%W"LSF2FIF,$Y(FNLIX[4MR- MXQ@KKX2]<, ,5*HR4>O/&MU'OHQ,QTUXXNR=77][LG-JT#)P@?QGC).L> M]^83S+MEOVY;PY#%&D:4-0R9VS6,@/(L43(-"Q5'$. +J\OSRY-HO,XRQDTU-'5 ,+\V$X8_4;W%IENDU3:UNF_X7E&X1S M?BF4\R.POI_% 78+:RU<%L251+Q%J,S[\L5;.\JMDS-> G:$FJ#%A7>88K&&E5#&>3@WNTZJFG/W+CYW7M\G4N2T4*JVZZ MTTZYF:<(Y/T64+=-W8=AET+GGB*?'UB3\O7BFA+HB9Z=(@#+ 6#E8M3#-HX# MV'+NNEK/2]*:\C') I875;=[/C430.!=?(%^MKMK<*_7:.&)4/5FFQ8[2>;TAKSF40*NVLO+<[W=2= M$=7(HV5I0J,E+RU*!VNT@*2?D:)Q2 NIE)=K0J4)D,Y 6CY8I<4/4@ET&I=Q M!5YTVMFX:;WI9&(L%?]*X$R]4P9\(AP;R8.0B>.XR(I<.5AA!GB)0PS)^9+, MB66=."R3;O^LV2+RJ<5'8@NY44T-6_"BL<_#"UVJ()J[[ELNV_"UD)J:.:?T M\),8>114D4Y@K,AAYSWOI\!!0D4-UE;SY74',O-W-*+ ?Q;Q'W8 \'Z:^@#\ M2WE9;J0&_QNV)81LG#EE>CY]8?L<0XH9=C[?]<-K(8;4@@RM>;A2#G'U'N;8 MD^T5)\,5\_HBDT%KF_9)U;R=5$&_%HH2KJM0F'"1RD.K5.Y-%[]>Y:R5_4M3 MIJXVY4XX8/RZR#1)['R[4W3[/XHQI?.=;T[X!IBRV/H69>M;B=NM;TAZPFA/ MOE$%*3_V8)R&;7"GJIW%)NF)31(K>S%DF\<5OX0:,!WU]OL^SS?'JY25QG M MH UN^3>]LQNP^L%$T=D-5L]EB$6;9BE^Q1'P .$78PL+7VE/T&_E MD5I3QZ_ 1(+]PK-W+[\(6F4L:;PN%H^!#KK/6)/!?PD6KM:Q+;8OWV4O',^Q MX-6EX8027,&"5:69NB/PSEUO$_CC5/?J8% '>017=K FXW".GY%.;=S4].HA M!LB,OX;>.'ZIALD4=X];Q"O3QZJU86TT_:\I/#)U@LI?C#R++];! MYQK_W MMA0-U.L3-;PR6WA6"/N&F^ OR5?\O+VT@5_7Q.\R;I_'&6:UPX C'*\R")N6 MH%X8J\"!\ATE^.PP$WOQH)+W'W=L7G[;O,7*1\"\FBL]85/-GAA@] ZE5YY0 MG3VNZ<"L+G (JPXR^P;394T?1Z!-;=L"Q:;,"US,7Q)P$'"( AW'BA.[=;[T MMO-3<[%SK"&8$1>M"WMS70*_@,*\*]YXZ8ON8)TY9XI511RO"H@)\SXOE@'T M8-79G/=OJJW9>$ZK[:-->='' %&&4#R&!LMIS"?A_[/WILUM(]?"\/?G5Z"4 MS(U=16FX2QP[KI)EV>,;CZ4KR7?>^RD% DT1,0@P6"0QO_X]YW0W%A($(8HB MFF2G,C,4"?1Z]E5N NM%@E U_V1V8_+9QS&2'P)B7LU,@G$1G2E"OA52?"D! MR#O)ZBQIE296?-7-^6(EZ74*A,*+R&!4"OV":MA(Y#.4 M VNE9$K,#*E^[\YF>DN9-DWV3J1;:NH1GGOVM_1TA-!C7WDW\@2H@'%)$GCO ML)+ 7]9R\Q5-]9V^SLC=]8S<$L9&_H]RM>E5/;2*Y"9J*'M5*"-YS6AI.--P MM@4X:VLXTW"V!3CKJ AG\]$D+VL"^^J"95U1FW"_YU2QNZ1U$1DA)I'M'K73P7DD* MYC\_P1P/%"7TU<..?!A:=>.$/\^?G/!87O%%YH:OX8+_H'*UY='OR][EWNXU MBWUU&H.^DK6^-)PK .=%.94;@/-_)I$:'V?)Q]]EP!Q9MFF4Y+>O%$U$/[3J M094.HDKWK*=11:-*(:J4)/75A2KMVE"E>ZH112-*,:(49?_5C"B=UT.4D?/$ M[./_L,"?QY%C%3%$6VZ?K[9]]@,&VS8LZBIDS?#^'\W YMV X6[W,:%_U52J M49V2NN#E5$?+RH6_&(ZWH(]50X4= MXY8:">I!@I(BV/4@045-2_,#C0H;1H6B6MNUHD)%76HO^8%V>CU?>_J*H<\L MC(S C)@1/II37<;T>?4:MTZ2-E*OL5]2][N<IH]4^CG4:[U6BW=M3'YM%NFPJG9GH:^Q3 OK5C43:/ M?8>EXZY1/UR[#2M6_9ZOZ;.'GL)7*7U<.PU;K_1Q?^W2WYR&%-3O7#="I]'I MU-.V0Y6]/<-#J==4\U,FED MJ@V93LO";%Y;<7PV,JFF0:[?Z&)G7*?[ERQZ('FI>BI]6?L[E;ZL'9IJ!]+S M#]I@FRW1]XE9)+G)*GT=7:5O=X%?3Z4O:W^GTI>U0U/M@ R@BLJM@M-65^G; M$]C74^G+VM^I]&7MT%0[( (&I&E?JJ]/7:&E%T*8D$-XH2 M;&KV83QMK=6&^O:8Z11DQE:C.)@KS9?J#K\=#C1"6 )^./G2U?J:A.H'J MHMR6%T/U%NLT5$",I0PTQ0DE.:E&B7I0HB@_I5:4>&8-!6: MU(H8SRQOL,>\0OO'GJ]UZ8)^AUF@Y:RH*F\E.E9G0;]V7PVZ4SOHUCW_0:-. M417?%Z".+NBGT4ZCW6JT6SM 9,<+^FFFI[&O?NQ;.VQ%%_13I:"?=CWO5/JR=FBJ'9 #5%&[E8A8/L@\T4.S M#KXI,P\.7B4'8QO!7&D"1:M53P.JU>$E'0HO>:OQ9Y?QIQ1]U@[]5R3==;<" MNK13ZW#0KIQMK9TWH$A.K>9\&@651\%2#%P[A4"1Y-W]YWQ<(_XU&OKV#/\R MX8H_&/_/, RYA>]P,X%CB2\+%=*_S:WW;^_2M='2/4O^(P,[C/975L1>@R G;HA!'VO[',<&R8'EPNP%A@NL84 M,,6QW)D!"K+-\-)]ZR<],?3A7Y,XBC$:.O9LN,X'A%';B$.X.P,W W_ *G^R MR)C"P<->'9C40G@4W\-+E@O+<$8./&N&!L&V.$,VR9[=;_#R&.X/#[GU_EI8SQ=V[,:Y9)#I;<(I.Q)^1+U+V\YJ[:%?:Q8FQO!*QO$$S8#"NY<9X M16*\*Q@PD ^(\2_@SF > @^42:'B?OY:,)8%C-NQPP>/E$$>)7#I-%*^Q$A MAK.8&$\79"?$.,QC"J['!T!#',&_)[[-W-#P \-V0LN//;PCPLR1ZS_"'*8[ M"V&0: R "-?N!U.?YO*'0% ?D/ E: = /V&P'B2VL35&X,RO;^8PU\8MX;)P M^33T&P%XF-L:QST0%T*@/C;>"^*O. - OH1F )3* M-P(V?TW1F W3& \2US""8(3$P)PBA88XYTP?V[QAPQD4L:'#N MG+GA +#!(4J &&Q9?(RI.<.OZ)OYJVMDD#\"+!D"S$T!=YY &(QR>&O#/X!C M>,_AV ^B8X#*"0B>40Q LN$'T*$%BD*AQR1"G8EGD81/? ?X7O8)@<@U_%H M+('VF96$!4MQHI"(*%&^/)8,381"&)43Q%4P-W>_5:2_S#W*:RP5"$$694^$ M2?P+X[WM/'#J^O>CZR^?[VZ.Y,JR(&(A%0E2AU"S^9_#3_ MFX7BT/67[S_^*)VE&* E+LR?4CJ;4<(,SC@SD.OZ%1:6;"#S1^[S.'%P79]_ MN3S^>'-Y_H_C\\]WES>_&:;[:,Y"J> AEGDL=S[O#*"WH%[^9K11?Q!^L;\T MZ7_PWH++3/QT]&OAS?S^J?AF4"'9S+W<75U\<[R?R2S _D'*F^$A(D(<#UT0 MOO.4@R;/GK]IC /4!O\"@OI1#L0?Q6$XH# Z2([X)>,3\U\FE"O_]5JT$&@: MX25@\P5JT!ZZVE4RP_//?MW9@.RWY^C6D.4-(W[OH,I/N*='7%C0KO?:38'_2.#@1H^ M13 "*BPN[STIK *8_WZ$CBH ":$()W^'4].2?\_IWP3P!!H.,E_2D=$J]5YH MQ*FO>-X+'/G3=T<%*GW[E*YO&4=+X??BBA*-T3(BE+>[2* M?9AQY->_CXR,FP$@XKH"A(P4AN:V5&+;J-.,\0K<\BOG__QIE,Z#D$C'$%4E M$/ ;60G=<$(4;WUD\2@&Y#A_H9#+A!F./S)R8RL2VL8)B:I.B 2*)-SL1/_U ME[-VZ_1="(> +]Z3M)S) 2>U!$[ O&=XJ_E%CD%=@E7!G3GA&!4!5$GN02_C MRDL<@03V'Y1KUMD'S.40.';@)HF3,HT%Q+&>. M5-!DL,Z(3<*>D>C[^D.$[?!T-8PP'(-_/KS?!&0YTL K$7SQ<#JI1;FJ;#_[HP&Z&C/3: M$-$:4"6<\M?AY' ; 8NRWPD#!5QF: 7.E$QC8KD3%HU]&_^:,!.@G*\OMQQ4 M31RTO/@67QS)&"'J'W0T>$%9NPW\FQPUX8 M/PY2"_$_\.]['Z<'K_IP!M./=C6$]RIG/7 MRXDM77JR/:(^63#F&TV'F().F=YBR'(/(\D7UAV^M!\>8!L24-NX1[Q\ Z)7 M^!;W.W^@4K=<8IRXC> _XB)'=.X!&\-SG&'#/;,3X^L(5H%+L-&F-@%@LL5A M98D)_%XBM'A^Q!6A^;-KYN!W%934HS3-2E&:\-1 MRCO'0A>[CJQS#^W-L]#6ZT31*4K*-R-3]EO=E[+0UMK=4'>4A6X& ?H[QT)? M5P6=MX57V/:$FP_-*(EQLLF%'XT#/[X?EV[F?!HXK@%KZ/&%RCBD,":K)EHL MX Z9![-:3,0\A1$+,-" [!MF$"#0(D#K4),EH28Y'T7>!K[H9>"D/K$_N3.\ M:70FHDLC-=IEHS&.Z76*)H%!>9AQ\E4:6[8*]-%D7P(KOL-\9@8 M=+2X/K?")IN#D)9F!5:N,-8D.[ M^>[VZO,-?6R]XP091@SA6&C'_ P1=TN(=+M(:JFDY\ ]M@;=ULKN*M=4B6P9 MZ?V,*\V.D5#?XW9E\DO4%]:R0']_D1%#^7@[KUPP+^5J[;7U\=(#*WPU_&(Z MWC<_##_.!-.[R7AM:- + +W/ 'GB]UKXWND*OK=24FBO+:#MZ9GV5Y]I;5R9 MKK,VC5HX#H0/CK,&P%S@ NC+!HH'Y)\PW,P258=<:"4S8 X*7X8(T*TD(G0- M>H?$#8SS12F#>EC+"SMLJ\AV<*BG"K<[+8=$ S0N48X5D1(U1$ MWU1.^1WYKDMI!P:/O0WC";Q)UX8'CN$D(8\G8>%;9,+^O4>!)G"9V7"9\J27 MM/Q@)L+D#;WCQR& ;OCVM_J#*UX<'GUK@=P4N^QJ5$KDOGK)*5R-DJ.Y9@$1 M(]"KBV.F3PMCIM<(FA81]R/'HZCTXBCJ\NR'9R0VEX=CIVOYG9FXXF0URE;S MZG?K+>4&IX%&6&)?J])7ZFR)ENQAL-WJ9T6'D:6&JR+J2WZZ&P>,&7\@"PN- M2P^=/<30##RH6--5ESE\P56\_M[6?4]5Y63M3C%D%:D;%F O) MV7<6&:'ILL,HPUQ2)*^W[2)YI<7O^J=SH0E++$);B>#[)T_%2HQ(WWPK??X6 M@>=YUO&,B>J['Y7&>V?M@NPK)-B M64=CV7,+QK;/%B-!:P+#MUKOV:"D ]$(E!0?PJ%Q*Z.R(D*(=@566&L\6 SYT0&50Q M+NR?9>E C%AZJAVZ+*U';,)_\G4QR4D[3'84(_14.W19.R;3J&H&2>B7J/&^ M+0-(H:]_FW;>:C$;RBEWE===J@+V-V!C69*?L"'E3XY^R<%26;VOB\DBBGAD M:L>INN<_:)P^W8!91^.TL)BV>HNURU3%::W(;402NL/,R3WT_[Q*#\;::>1: M/1C[IV?5!)_-ER7:KDC2KDDDT>V&#P?/RIU,@VK2R$XC6BY.I+58L48EC,MY M@G:CP^G<+)M(6:VS_EF<5IF?!BPRG^:S@['T51R%D>G95/A^OO8\[Y<73V*7 MDH)YES8K5V0>AUI=9+1;+<2B'..H-VBNQ#T7_1&?LL4&6%*;@&&UMQLFFT * MQ<"S[\RG-85E%@09>M\BG3_N_N;,5YU/D(2^0$N;W;,B)?Z0_, MOO.!NE2.=RL\N3O_(\L.^2YKI0 "+M=>K!,9?1EX@V MR,D0E8:@/B F#H@=2@'ZJ4N+.TL;KLQUX,"F(+P?"U8G"&S>$H-WS: 6BJ+! MQBUC!C!4MKJQ$/A?&,,O#U1]P[OQ4"&)JK7_#L&VNY$IF@+ MPF\-CSQ@]V9 5')U#](E;4\Y\<4?.?U=5>)B\TSO8+LX#G071]W%<7>[.-YB M__JQ[P*LA1B8%LV0+JYJV7BVV9:-2_VD6^_AN"F[W;''KR2UW^5^968(L![" MYR4/F"X0+%3UPB4/3/V0&$MQD9]5:="]C32*W*?#RN*!J.AL<'S8C=:3VZH3 M]=ZATQJCG'C#IC$HF"8(5]>\@R,_*^>#(HM5ZN2NO%)=_;O_0.I"M=J9[;5K M9YJ>!\*!1?WC0L3PL1\X_S%EL6K3".EN@_1N97=.E+^GJ "4JE1G2TKF A]J M_Y/@)@4; 34\BZKPIS(5*@PBSKX6!Q2[8C8O\M=:1UTZY65 2[4E4=T[9^GP M)Z"[P*7 PG@G/WE^ML^J%;[G/11Y0?>9@14Q'0MTCL"(G E. 7J%4"9FN *Y M>=&R/LI,609P$W/&B^,-L=(;J&Q4P@C&SC3)L[%4/2X"9F8GQ@]4O[(3-#BT ME&XK-Y%<*^EE/LPI^M W1,<,W@N2%\,'(1&5&MN?HK8%;X:X:3R6F]BMHKH- M>TC)FX-W+7ZNHK4-E3"GKL*&#/G'3L,KC&FM0:'T"WKHNHF6[CH(,#CF O;F5H'M6CT7ZR?Z\%.<7.>:!PICTXWA M36&31O8$1ROZ4%:A=0;1* XCM,9[G#[]AJ>$ MA]"ZX_N^AFUG;/)KUQ,]Q;-=06G0F&";P*\6;CCDC2L??#>>R%ZELI$SX[]E MVHY265UY;2!S,4G#\5^E!U4QT4]=.,2V2GA>CWY@A\R;=U]X_A( S)%Z M,Y%L#7N'Z!&ON08"C>M*K J8:8G&S-@-V_<\QF^=.%81PBU53/C7=!M< L9^ M\[QU3N:\\!>XY#!$L98OHMX>4B5/_;7=.^EF)LWH&W@R"R>15^,"-C&I%;?Y M !(#V>20/F7A2(I^O-<[GN*S709S)IXYJT;&@E'@QYYG[758/E,;Y]4(08V! MF(S'1]7FF7WAAU%("/T1$?Y:])4HMH<.-FL/KJ,MA F0),(2V&J;,P3:@)'LP, MR-X(0']!\VT+L4[$T*X(V MQ!LHVL.>!2= WUA(+OD(R&24L,',%\N&RSY"(^-MA4F'MYO;']+3_98;GJ9I MT7K!H<1NY"O7M^?)*R=P&HEW?-&V4:$AY2GV=*;[I#:4<.XE]UCAKIJG97?% M&::\,?: S1M!=0+.Z=&I\IURSINU!ZYBJZ^ JBJ0B*0Y1"B:^Z0D%/X(23&2 M:)7#*J39#XY% B(U>2+QD$D[71Y'&#EHX($D"#+?[HENAWI^ 'N.2-VUC9'I M!,8#*C52G.(#=\;@HDU/DS.90ST!BAEB!4(B[96: O=(2FYNX+:2R-""H'MD-++UW?E:& M,Q)X)%='2D_L1HD-IX)?8<)6-G[=,W)4TM$F7(9S(HXMC2![7F^:5PFMVE0K MFDM!&VXYWJ?J35;&!25=)+I=C6X2 .46#M**BG0@T%5T2QJ%4O05Z&"@6](4 MNAIT2QK=DD9W"]D)5-,M:320Z98TFBXK4Z/J0,IAZ:EVZ+)TQ8YG5.Q86GKQ M0AA%=;^7.@H%E!;:.&U7S!(M*Q>$]WLUJIPZ*VPPS"XVT8@$TS7K 75ZRK2! M.(S:&3L$ZD7%] K"K'8%U-NG/15!7=?[W 3/O&6N"^I(P[AG'@M,E[NA9:1] MP#.M=2G0@RD;>-HN*AOX3$8M@.H+!ZESSS[/P9,@1_53MOYI1PW*5CO$USW_ M06-<40VZ9\H+NX)QIRU%9 E=1E.7T=3E_3941O.T753=[[D%Q%Z5\+0:S78] MI$>7P-0X@CC2:59B\W7A2/?HPV"P.T5B%:U;>; EO##Y6M?PTC6\-E'#*X=& M$L,6GME4#.Q"KI7SX29-V^"9##\H;8/"U3-QSKR"SSE%7_.*/<-557OV(GEI M+AY_+MLGEXNSF%T ;"#&ZJMA/@5 9O+P= .,TR:VCF'@(HD!R^I,@5]1"4V/ MD;\)!\FSB M3>NMBI&$&O;V"/;^)%F=VV9\(:GG$V;W?<8T2:H7HR(8[I1-7&X- M+B5S/S6XU79L :]M8-O-4]$+T'"AHXXV$W4D=:=Y%9UT[4^@[Y-LUFDU#)[9 ML7?.P[I1[9DAC9TE!8G;&)= FFVFF\M*=1B_Y^IPQ<)QQ2G608!% -"H]'&V M4&2*QN?%QS/]O:C=R-W8]*YX39COO@!$K@VL6_VPW>XW.H-Z^GT=K"=1)0_A M"NSI;@E[?MQ^@B?KPB&IU0BEAG0:5&E0H\D7P'PN>@U.^GT5D6NGM*&ZA8'E M$4)Y(4"4@]),OW:R53%E9X?Y/]&H\*O'"[.L7_RXV6AU%0DE5@B>#QAUBE* M7AEU:F'^>01Z-0F@TSWIGZF(7]HRMJ!GW8J9AFM)I!U MBQ#_2U#[4A&BW6N M8# M[18[)MD3+\R@#]%>CS%K7 MMF/UF\5]0/DM+R$$96FES5]X@S/J+(.+I^[=E)$5)MV1@-R$\?!?S(IDYA;O M3D*G15EB26[88M)6MEV);/YM8NM?-T/D9%\GGFU&*6./CNMFVX<,L34+=4:D M7^!/FV$"&;41',Z,"3X[=6>\90HL>8Z$PB.FS"";)A3(P%O'5T:!/RF'RK7\ MM4L ])\W"&STQ!^.YTSBQ2:?9625RX!?Z3C^X/MV,JK,,Z@I%F\H(*9XSZ6' ML98'KL)AF$\U'D:3FFPM8RW[R#X^9CL0I0VH$MHQA^?SK8@XJ0FS/9:2WJ@U M,YX&M9 K[EV4]L^A/IJ2J"5\=.H'4::7:4&B98:W/L(>RQHHG[:V94@I*&A1 MJ9M.PK;XN%11*/L[5LO\[D?_QZ*TUTXZ$G]IGA6NV8VY?[*H[.7ZR\I$9J#O MO-<5O[XA6VA 9AJ/,@_(%'E :8>KYZ>I;N*FMG0WW.C_V0_$5_A/56V\6X&%H@+Y*#A8+OO\M(>U\ Y73R4W\T 8-NXC5%< MB.&+6R=B:E7Q>%XEEM7^M+S=.>TC_M5;T=6U*<0:$X#2R@H>KO\(C.Q/X'Q MC**(&3<.9SQ(!9TDGW\OH\;:3[Y]@! M8EW( M!/V1]#W>.)5/D2V[$DP>8;- 06? >B>&'9B.A^<(DH9I>"A6P#2XOFG@PW%G M7IX&S@/75^&.>%_BN<'PKD+7F9X8YV[HHSVO&G1DNXKBK<*.N> MZ-?B+#^QJ1E$4GC/W]S_@ *.!ROOZ^K3Y?_("\.GISY6&W+@2=>1;4EYAV&Y MD("-00K!TC'YD4$TFH($R!JYMN1<^?^6C'5N1,JS[P!J)!I^0ZQ-8>\+SK):H97MQ*_EN;LS<9 .\(QKF '0=.T0 MZNZBR6B:3H2-M.5,QI1/E:U* (1Y'S"N(B;*'P C;U:,4#ER@-B0 M8,ZI2^'5!@RUKI7HT.I+8BE ?1$<*@\A- F4GC@F"1-29HVF"]?K49'?D/J! MEX]\FL%5W+DP6&%UJQOJU2H2,)T0MQPR%VFG:/%+<\ZHK)/E,J""4TF/RP$[ MT8@BT()\338>^0K5X;7.I^A$4%"Y\Y&FNBQB\EC@A.3)9"^S5Z;@M3H+.A2I M=JA)6V+\%'VIV7T%SCN# \R89!_'/N\/G9(6V;<;(9,,0Q+0X?NQ_\A_$U_Q M9Z2IUY2%.0USX@N$F?@!RA3 T\N@NM4MD_1>@1M@!4T_,3XRRXS# MI .\B_:[C*%\%4^01)?$8$%T1?=P\I[@&$%ZC#GRF>^+#I 1>Z0"8R=R >+4 MHWR"/!4A(OT#V0I,8Z:3<.A >$+:Z@]=R4:( ^'2,\Z*%8(!S RK%-Z)4D#G M<#Z* S1VS753YYOS*%:; /4S<#U0"8&))#7E0\*E(6->VKK;3 K@4?=Y^@R' M,W*PX/PJ6\NV5!BE]"FD2RBMDEL*)5S.VWAA1')?84=Z*F\(I_G@NP!"9C#+ MRQL+:JQ9O"^]AKY*\)XIP MAJ4(-I^STP ;:Q3**-_-* ZX,85X5&CA]BMD,9@KH>?TO(?S<54LY3>>6$0@%V'3(D)AC^#F M)..6<[.5;N56\S03 R./L^J*+61IW%@:,*$_1,G*(L!K)H1.9M,PIO SK)16@3+R-\.()&NRSI[DMPC ::#W M:,K(A>3.EL'HW'O$I&$\.'P8UUZI-L"M2C',04D-O[:<*:Y+: ]XGFGDD0-B MO?E:@IPHD M#=@MIQWBX@3EJ!(WD)]Z=FY906RZ%V808'P5171?<%*WIJ._>;)HDLPY^B4H MIB?-@5#>4E6K!+P?3U#/PINU>20: -"4Q_5E5,<0R6564DYH> H&6>'80/K6 M0/[ G1-9$.*A"0A"#K($4!#N/6?D6%B&=!031>,:K%2>@9"Y<=;U@X.K*L\J M[4W+V6 !A#GA1(6<$UPB(Q]1Z9)'_7_F3V ?PBN&'%!R6B!8P&?AD1E=NAW MKA*WD278\$K_S4"L!S1Z!$-N8#.!MP*A0;<2M_&N(J&%[%J4[Z=P%PY/^8@F MH*-HPU^D67@&N8@H9';S7#64;)4CG@6*:6J_ *XR@WGX$97'8_7F+/9R\95= M>D3;PW@$".3@ZAV/$QIAN.7A\ !WB]*#Z_QDKC/V>="/:;A UI((>F[W,02; MEW:G42),4!0J7+-KYRV0B;&'MJ&1=(F))DNH (M62N#"IDUR0G;JLOC(B0F_ MXXS$2?8W$I7'CYS#8:%8K5C#ESKP!@,+*.("+=PB2,%)=!P/'3=^'!KW"&32 M]3Y%VB=$98!$:DK*>8+HNH+5S]G$"4,>CY^)3@ABSQ^-N%KADWV;Y;SZPDJ> M$\(2TQY?*S>KHK:&@0U\82(VGS9$H[KF(U]?P.YCUQ2) 5GVYLO(7+'F1S_X M"1S30@UVQ*(9O8U?PFAC9KK1N(%A%QY*:,@^26FQK'@JPUQNT]=^I^D4+M<)N7IJPRTB6_1L#-3,"ZL)R0+R MY1 '0G='@,X!$@<<(B0D6>+U%5ZC8)\A6W*$:[-7L3A.QQ+I-+\J:BI4-"^G M=%S[2C=EVFB"!QUQ-$(Y&)4>!.+$(S+U0X=+6R!LQ"YW!J9 U$"F#/+&V!BY M_F/]$:>OV@V+(J?S080\5(;=\P K"[11^.E 2>)G$KB%=(?_7? C4O0-$3?R M2R*J S2Y='Q"61]@?G"@5E^ >236H1OHD<#0R1#!)C%N?"A:A MS I/3BG:YKNL*$4'.+',Q%X?)CD\KS&AJLBI:V6"X87I\SDQ9Z=EJ;[$&;.9 M%VCIO#"G#LBCY\*45YH%15$XQW#H6'NS?\Q3*>Y MX3T1[36-FZV39?%FTK@)DB20?F0L64G7H4-$_C/A=@YN&@I@:&(WDZGO93+Q M/ S4'O1&F+Q1%LK8!&\X$R9@3.1&KRH;CXGH$MTA^2B)9/'133Y.==<$$2[ MN6N61NNY@=:\O.[)8C'T*I!\#LNB1W2(H&71G(?;OP5EQ?AF_H2GX)N&\2,RQ_MN ?@2FU2A7#43P"O5;LCB)$5B4# .QF&R M .5&$$5([Z8P&_C1$1)>A(F *Y"NOQSI5GA_^)Q7HPN:\2J.2*\%,.;4\]7( M8GWIPER87#QL;E"79@CX32!JWGR>R-O;Q\[##2YJZ^ B'5RTF>"B.E**;T!; M]6*&]@WY4H/*"0V?!MF@['OF8@1)FA M]#@4Z&MBU2?&%[G6AL%,6/^2 B1R96'J,K $V> _DL'1--!RZ>8KMJ3Q+@V9 MVP?33]")@3H,"#'A"/8AEU35BI:)PY?Y=$22*%R">U#$-$G,B]R$0=F_Y'V! M5;)&U2F!F8'J9HE1N M22LM H'O8E)8DID3)D94':50L)C;Z^ODRLE24I&Z\+2V?+49\E (A,JGL(OX M0/SO?<#(TCW,9V$M)$I0[@K%'\Z2: 94/R0FBQA'5$RF;HR8GMC':94CAPS/ M%D*'ZV;H&RA]_XXS&R%5I$\Q1'=E;0*+ 4OV.\8D^.(O/[+'V87V* O MYNOPI8?-(490C45?O'2!$6%+%SSFN7@H)UY!G&Q'^0CG4KW41@/B9'%R8A0E@ -/)TPE#T-E=D5Y7*9"&.UMH M"B:6F$U"#'DH-\%R(SLOG(L_$=06!8O,74I++:\O!7^E1M=T#GPGDZR$KEWY M$^*F\((!WL:>3,*U4U8O[X7/1@&Y6*@MC5=MT 3IK0ZYQ=@,N'T2\2G],>5& M FD%;"U]3CC]<.LBBBX'S#8'QJ)#H(@M[CK+N?0$NUOP[$7J)G+5NICO9(V7 M$..D\FD&5U$-S% MX6'Z2K*(R:-$4M8;I>B+CE\4WC*A2X)J=,C[+S\B8N!#Z:O)YV MHMC\*[;O%S)Y"JP:ME\Q9(DL'?GL&AY>L[IT@KINPP*GZ"Q1%+K"^ MN[0;'H"/=.2[KO](\B4!JIV>!LD\G @-9Y)^\#-*M'+,@HTPNLMW1% %11&: M^92M;(CN$-,T;39U$!AE81J>B=H0)*:!H\"2.*R#Q,[=M3SVT(G297%15P9Q M\?!H0GHNHL.*/7_B6.CW)TOC&](E_#C$%*6WO]7A3WR97R,/JU#6$^PMH ,U6[.98.SQNOF-,N;\D7!MOMW5=T&/F(S7(O6,E/=RBI&W]P(?V2A/2D MOY]PG97YSS:V\:+>J$M!)FGRJ'%M?5QK[PBN[1:J)6JG8BBC@6R_@*RC(I!I MNKP^RNS!5+W]W-9^3E7G9>DFW:M-L*N;=%])0\<^MN N:,+ZU]WH_'O6+G(0 M%?05NB,[DG#\!??MZ\"T1:(LF'N4K,W7CI'A4ZSDJ]T/U"AWVGTNHLI9 J@0D5^JXH0 MKBB_O8IZLJJBG=?AGR!2MLV5"Q7<9G7,0 M2OP\:>@ :;#]&+W]<[1!'0VG^II+Z5EG W&UVR-&K18( JU>+=1HGO9TT.5P ML,K^ :-,=P.!UMM#F<&@T1S48PE;!V-*,HT+4TSGD8ER8=Y#NG81LYBJZ5(?Z4@D!YZ$FQG#@&!C&O M'D&68[!X3AKEXS*2JC6#,@9K+99%G>45-4( #"ROLD/?@. MY1RDH)QM))+>G6D_4,8PM9WU[D,C4V8"ZP0D"\'$#$H"UOE'2^J#V,YHQ#"; M&"OC1H],9$[[4^;Q7HLV\ V?$I>'IHNG'JXJIR&QCA=T*+C(+#KR@JU).Y"( M#%#+5C4_8S9['&>3\*!O>\EMIRD@#A4VB2=4$E/2@S1K?/XNGY=.46.'R)_[Y_/C\XO+RN-?N?^QW^F>] MCZWY_ Q1Y#E&.RJ,<'KZ\>.@_;%U?-[L]XZ[K<^MXT%S<''&L@./,M#$V&=);"; MV]K/J71*A]KA(##O1VZ1:AA#!M]ZHO,UKYQV$!$@*KFI5[B?!P5=%#K'K?9: MQ;W()O.=1>O&8[2;C5Y+R>!R#:OUPVJW60"K[=I@M=4X/54DB'C71->LD63. MA+2,@2U-8MB4FVPLAYX5 M]*-:HD-)L[6E=$2 SDT".>M0E>[1A]-FH]]MUAE>M6.P5OL"E 7V:JD%M0$[ ML-!>I]'LUL-!*URU^KJ>FESTHV:2JM.--Z6$XR4Q_.6$0X+&>O2""J'")R < M71"]VRH1CK?*PEGM"U 7T%\2>;\E0.\W!C790\H!?6=4S!<&--3(1ZG=;PU, MM'*4BO+1*+N16;S=O993Q-ZKL7Z"YI>2PWY_L:^%*LBQ90E 8^GA8FG_U>26 MC6!IJ]%3'T_5U^[5\N0R;"%W4#[GZ"0H#62O#F0Z"6J7B? >3*63H'9H*IT$M3NFBVEXK85A[+:%Z LF+]*#-2F MP+QUUNB?UAJRH!.;MI$>K'FDLL2C-(*R=[J!-B6E!&1#*9)I4.6@T>G7VG9! M9SSM =R?;:#7R';AOM5L= =*Y0CK#"B= :5S*W8WMZ*40%9K:KZN6O&"](H/ MM09\JH44:JU&H^A64;1?K=EZ+2C:WPTD5=\ H)8#5^<^'4ZJ1[^UR=RG%[O7 MSAJ]0:WU'W3NTZ$C1'N3N4\O18AVKW$ZZ.X,0JS(?_%5R\ F1ZEP\'8\=VV;>;\E9M(X^@,#\_E=\ M]H/,-EP-6]@,LLKP;7E%-'ZCVDM(LL^2-56=JDM3]9*IL(=@%F=01V/F"(!^ M54?!3=.2HI15;.+[@3(?^;/\.=FW]N7-[[YZ%K#.._/IDQ-BST= [ODN=^U^ MI]EJGLXULA,'\^QTS*+LRTI)D_,J8N1/WQT5\.7V*1WM,L*\<&ESO'F>-J^\ MP_+DB\%)>>J%6+091_Z6%\UOWH"KQX[!N>652!9[)D)D2>4(N^EBCUT\ELA\ M O(&O(X3,200/X#B QN[C8!LAL9G!A!ONL"+ R>T'2+$#2KI;;C.A)X$2CX$ ME@?$$F@C@S7D'@XYZ<$VOCA[B,/F'S@Q4+HU1K!A]F2QJ7@KTQ05.6QIVV+. M&%W?NT<6'P__!

4'A7AI\$=0X6*XXUN($T1\U9#57AFLD.T&-I5[SQSEE'G8%CH"& "Z&A$OM@TV&L$%.0\L M!X8(&"@NE2E212%+I;Z%:Z#T\\S@4DZ?<(4;F/N"*Q) P*^ S?/[3X27XW9E MZ079]>G)HO3R"^%!Z>Z*0BI*S;+U[.[L9#&*XA="%<39$D2-,,&:X^K$IRQK M1EG6=4C(_#8JI!,VL)/SE!^I.\N)G4FSY@J@'>[M 1F/($EF&E\[<#86GL5P M!CJ>!U"$BI.# A2 'I >;'.>=L%>V='Z5_^/X_//=Y0T(=.ZC.0NEF0QU>H_E#NB= M,6;5 ^E$%@YXIJG1CG0"W-"=!N&,,$" &#U]'[ MA]S #C\+ R+%W& 6NX,OW@T ]N0'OW0^,30&4D\UPR-"S,<&Y^!>QN_,_L> M;=4::#70;@=HOY@@V@'0?L516!@9:#$T;A_-J892#:6U0NF='YFNBE"V,P' M=0N^>S!59S^WM9]3ZW05'5>EOJIPCEV6W.^#8SRB5F,XG(Z+3@- M\M4>8-+-TO2XI2D&G;I3#-9K:';66UY^\9\4_X26L,M_QTXTNTAL_^=/3GB< ML7%_8B/'8_9'YL&'Z!I@*4S-:'\0/)6'!-]&OO5S[+NPH9!/]O).:*U!1XWB M>(4*PG:J>&BDJ@6I^B5(]0G6\F#R0"O,&$ 4N7'"GX13POQW^<3=;L+XQS&H M.CJB708-BM]9A(87M+N0V>7:#.K#1XV,&AE?: CKX(O0 -"7H!&A+T G8;$K3U?[7U/_FG=984TI !O,<# MTIFN"D*[1;BV2&\-&(7V.B,X-\H1W$.OP:JIMJZ75]?>54KF.:IKG/(7[#*!Y M[EL.S[*+KAE6%]\\U4N]A?4$OQRT^_V@,;"[1_IN[S:\+;#X-:.\&LQ-=]BS0];%2M5EAT.PI]70AWIG9PZM>?,V? M6VT10ZL$^X9W15 W_PY)P?8VR^X:R%<.O%%?B:^*O:K29 MT_SU,)!UT*P8'[8=OWPM*%?0-TU5E-LQI_W^%?0YD-I!>BI]6?L[E;ZL'9I* MEU!3VW">*Z%&G;5D_;3N/MK 7Z-'>^V:P_(UE[D !\W6\C[(NUY![;2>T)?5 M1K/.819M.B2T:I>@U4[8N3>/D:J64-/8N ?86(J,G761L7X+]J9*/WUHG];C M0BK"MH.Q2A\8$I:SQ.XF),WZRZAE6=J@J4A^9#E34]_DO+PFRU:MT:N7L0VS MR_\FD-\Q])P5* M)>KB@9J!_[16KF;;S0@75_NRXZT>!+2)9L!*7J%:J]$ M:Q7ZB8;_"IY]6JM M1@/BJS3M5?*NU5J-AKS"1KSJW96V[>V;*J3&*A15R/0JZEZ%!@R]"@T8>A4[ M#QCJ1P9O1A)>%E^<#0!>$C3\_$V4-6-N;RN8^ 7JUVN&P&Q'H:DM<&2[VRR/ M-1D4Q)JT]Z(O=*]3:T&_4I3:1@REQNW]Q^TRU&XU2U#[H"*K/PQJK3.@%@*J MM1I-#K9&#HKRERJ1@WV)[09"T.\.-"50A4[#Q@[XX!:TZN4_,-;KVW*Q?3< M)M]OL$O;V]I[?5?I^*[@ K:D0!: V K#3U&;MDY:]+*SWPW"V[5VK=@Q&*Y] M 74B4;G-I*C56@$6[81C97L(V,VZ9&NMJS$/AUMVP6HDW 02%G5,>RX2UN_. MV";_2]&O5[>!5*/?KJ-?41>TETB2N]+6/$6B;JT=?I<@T"/HH9NM=H :N_V7#=VU;!1/U51 M-^9HVU^CL%4U$ZB8B[:*&?759G.HB!6?J M9J\\SP!5?WS&%@U0[=-7-T !K!D6!SYC2M!7:&W*17=HLY.FWUO3+=LMU6TUJA)@A;) CM/3(VU41+M(5)T=5H6K)EY;!B8*OB%J9:R$@F*N_T M3%F"H@U-FI9LB994#._=3FA3S12A?:HZ15 _XJF@M41AP%T=M:TKQ"+NWP(Z M^B+T C0DZ 5H2- +V&U(T.ZV5Z['^X<96&-9C+=3G\NLLW>:J()MG+>\SW(U MM%=0F6O[7K)7*S>/^PN1>Y^"7+OA,=K8W4X6ZVZJS(H MA(-JK493A"U2A--U*4+];JN-T8+N:4O3 C57HVG!-F7_LTW(_FI5Y1THS.=S MKJ1?HZ%OS_ O]*1],/Z?81ARY=^!] :.);Z<%AE+_C:WS+^]2Y=$*Z(_'\S M,3TX/3Q)]YU83I-B>25N3\4T,#5[LMS8%HLQWMO.@VRN?OWE\]U-:;M1>:C- MYB]'8H#<"./1<> _)C_-_V8QUS6NOWS_\VL.OS+Y?''V\NS_]Q?/[Y[O+F-\-T'\U9*+'T-P-N ME.4.Z)TQ9AS;VP@EPH3VER;]#]Y;L*Z)GXY^+;R:WS\57PU2C\U(HN*/['0Q?P.$\X:?+L!9C&.$ R\!? ^:,<2#^*PW" 4C@ MIN*6\8GY+R5 SWU= 8,78>?HPQVBGN&/J$4VTK;WOYK/@@-"V!S69-%(8MC" M,X48/0^\%? Y<]YH;'%&LSR*WXT9[-H%40M(DT&$QI@&_H-CPTQ(L) \FB[0 MTLAT7,,<^G%4J90$?<79@1&-S4JW)VKN+H M:E2!71(LWL%D'Q&7CCBC;O<[S1:VU6' %:>(WD',)%*]YQ?*JS'\'THB"SEM^9B2L^4M>Y(,ZG M>[:%8K4EY7F3QM_][33^YHB2"*%1U02C=NJ_*-D9 MJ5E4#=K?WA':OUNHA]K^@9!P#60U EGG0(!L-^2$9T+;CHD3.;/KWD@4BECJ M]F"J;33FVN\3U)>U0U,-UNP 5W_"9[UJT35J0[YGN(XY=%PGFAEF$OC]6VWZ MT!Y,I5%ZAZ;2EU47_55%UJR%_B;_I-49>55&QX(/G#!;?J@)L<;M YE*7Y86 MA.LDQ-0$ZNC#+0L>'(L1\=UV,F_.JK;-$/YU+6@U1N.OO^32P/IN41'QQ=#! M?ZX;*T@A^.N^_-S$G1?G]EX $ER-OOB^'9Y[MD"-\-9W[=WLJ+0(-,68M\T< M7XWT]2-]Q=+3&NDUTF]I,:\L,BH36C/G]UKN]$*HQ(2#$ !0.KT6'5Z[87'8 M&HW?)CO9C3*BK\5!BLH+'ZS8^)U%:1%2S30T%N\*%E(/+V!P%/]AMG%O M.IYH=&B (#CB=?-$DT1KAE]@Y3R2"%%H";4O7E.$PYA*7Y;VQ==-OH\^?,D3 M:,L,Q\;(]1^-,58?#+?EG5?(7KMUN\HJ@\EI-;/G^@5K=\+4\O("F3?L@7DQ MPR[A%T+<^-.)QA=Q".C. EB6&Z.IX#P,&?S?OC.?7FJ1J:+,H_*';505U:PQ6T7;20COI/KC'59 ]J42$%CH59%B]BA&: MFF&M8%C7@3\%%)^A:S Z]VR<<8I3?PE@W&O*1H&U!(NU45QK-Z.OW6I#%JB;."Q"G!T# ] MVV 2!G?<2Z^"^ E*HF\Y5)[2(1*#T0_&D,?R'$Q:TKX'HY6R2AU1FN%WLM#Z MT^439D=E#LU&E/RD;WZE!L/96^+)7BYE51K>MW'E5*>T+I$1L/ ML# R A"_V*P:":[VTGNNQ#>Z &^SOD^O6' M31$JAHYJBK EBM#1%$&[^FN/,%7%NJJ, 4,SG,VD*O0W$6!ZV/QF Y%E'P;U M)#-4#2G5:+]O:+^)L%*-]B]%^U:K'NE2.;Q_X8H.6,1\<32I*B;9_0NET'$O M>BI]63I(21'W$\Q[YT>F:P1S,E:((HL!@I5H5;^'84JKQ>@.B-&V'P]=MCM= M49>ON53V'RA?@>3U)>^SOJ)FWI0ND]>4$'"'?"/$F?SQ3FJ9HZO>V\_ !EV#P9_ES^"5]RKU0A4?. M8\6E&7APD5BH\79L!NP.WO_H^M;/(X[][7ZG"13@R&" ,%-X,0IB=B1.A8Y- MD)>_'R&!8*XK0"/Y.YR:EOQ[#B*;S5_FDH2:Q$O>BWM)I>-YN3?RI^^."H"\ M?4KGNDQ:7;BQ.0B;!["5%_A^6 9VK=:)@+GAAS(1U8PC?\NK1B.,\/6!"&W0 MW<\MLP1'MH(.2Z:9FZ7*)!EVBV6@G-$L/^]',P3L\>!(G/1(0CP2PPD!JR;3 M&&/>AC,#$,]!Z";=(_,"_(3?/#)DYLP^-@%@S7MX)$;&1-W"<;@0/\$+$V"N M80189OAQ%$:F1V/:<2"'YFK-B?')<6GJ*FN[A[7!ZVPT8E8$&&*8K@L+A@& M3QI3/P(,^CR_8#M<'QW#BL#IX&";B*Y8+8; 1M#?2(%,?" G\()8+7\!9H+E]_M'L M//(VOGKB8PB<)QH;)MT+M@5JT&&O.F/:)7O"8X:=C )_0E/Q2R2!!]^P,W>. M8V=NW.3+="9 4R/CT8]=&Z\$0-V1)W:R GTVCZ7 @\2>^!?$LPP2Y/Y^=/WE M\]U-0OBS0-\P'TT M9Z$4V-$DXK'< ;TSQD1A@-&AP"4,17]ITO_@O04;DOCIZ-?"J_G]4_'5H 2W MF8NYN[KXYG@_DUEL)YRZY@Q/T74\H H:N3U(9H\>P&F,0Y0HOD+H-!1#J0? MQ6$X(/8[:#OBMXQ/S'^9F)GR7U<00HLTT#L2? !7L;\*4H_WOYK/@@,2]7)8 MDT4CB6$+S[P21G_/)D3?6F-FQRZ[&LV+TR19 MG'NVX.,$-\4B=KM0Q%Y#QA88.'(\FJU8Z"XGA\]0R MRFA_F($U-CJMAM#CRI2YUXTL6 8RB1])X]KZN-;>$5S;+51#AJDBRF@@VR\@ MZZ@(9#L3RU0W$=Z#J7K[N:W]G*K.R]J9H!].%.H*^DGM$3JPIUI006\W@PK. MBEH^%]E;7MNQWVL OFG?OD:%^E"A*,9M,;[F]5&AW>CTU6@74 45M)BM);<= MW]9^3J7%;.7%;![V4NK;"[/.O3T4QE=-M75AHEQ(&%0K!IH1$L@+.2\F_"FN M_)S?^'<*4KH:T;/A57KA!"#KYH7<26&0,44IB:"K5KN)VWK3>OO^ M5WBK-*17US>KGR!MI.[$H/UZ+%=$!2T0K[1;[;I5&A2O"JB;2A\$ZA35"MT0 MRW\]U.F>[@SJ:#VWDCSPJ4H4Z[YKNM6MU(J3HO7,ZX.B*J4;TYR74:-U:5"S MT>SV=L8&KU%D/U"D]YH:^BN@R%D]G%J[J7;0'7$@G@\]U0Y=EA;?GQD-1MEB M6:%=MPG=4=#74^W09>V4\)*(9Y$_Y1F)R3%7J++BW&TO1OJA9(%:E6L^#JHX",^FVZU*.R;LIJ!5*OB;9Q-$NW[/G1[Q0(J\P2MW#5Q6^7"AVBH7ES.DT\)\ GR/FSHS2:N75F@2N M\F6?9S9ZRZP8]N.P\%)4\/P<^).+= N+U=_.J:3=NK2JWP!2ND"L#-GYHN3 M(RQDQ8]\XE,U*T;5K$I>X96NZ!V!2\N?E>6PRL9+:O^<& !,>'_XK]($V&>S MC:U?V7'(++RV1Z!_(?/F8Q(\?_&VBE!E9VZ0%]8Y4:@F=!TETF_9/341E+6# M/SFAY?IAO*Q8>D<72U^K6'I;V6+I @*,KQXG!H#9!ULK'44#']BR266T0WXR MH:BLC87(F>L_4J%K7MW;YZS>,Z,X8$EQ[<"W8PM>"WW7IDJS^"VL,!X!X>1% MQ>$9BX6A$8>\O#D^@:3;]&;T!DZ!WR5+$&/+9Y#*/HX=:PQ/3$U8+S-&CF=Z M%M;G=M*;Q#+JYH/IN(2?.'+Z9KI1H-NQ&_$ZY0&[CUTS !&$/9AN;$8+"_RO MOYRU6Z?O0L,:.VR4&0891HB33LR?+&@8#@QY0<](DZ4*6E^ MS" Z&.'I.[ M"),7L\7/DVN\#Z@8>>"/G(BX>G+4ME]1 )0KA8E<%\ZC8=PS#\[&;?"UVA/' M<\((#^N!R0;D(9:FYWU;&X:/'6"P,/9Q>JA"5H1;$V_ ;MD$7D,^:S[Q7[]-P"!%2%@: M0/P].[8=X(T10N<8U(/CJ7P[I,&F, 9FS!GA+,0K(%2*\4(\$.#A-42\P,2^ MO#0J2O2N[.G6$$B'*#8-0*X*X%R2NO]PA3;0A9^\R#0.)>8@4 PS-(6*2;NA MSRD'KF \LP.?N,ZS+-F'$ Y]&47 M34T!D(GC7PT#CH]P-DR7@PL C@T7%"#EF;HF(I@S)?(IC@G'!I2/3 <[!?## M@6?S$^'88]""\F02/L$24<8U)!6 0:Z!&,-$=L.X FKE>^^,PX@B_Y@O!%P-&/-%B6+'4LP) \LQK:6^0PN< [1NXK+'O(KD>^D^&%;LH MA\)?#R9R3HY *" X5A@'O%]&D^F!H!@!+N0-,!W7(G?G&W[ 8[H -=QB3$ M)T(-,,QB)/,>G,#W\'00;>![EAXDR!BQ0"%Y\E71Z!,P+!-F^MV'NT7\EO - M6J;O.7Z"$?@]8-H$*(#I1L8W9-L7<,3B#8DO7Y@/1+1A_(C,\2L@@6[34:A8 MG.HV';I-1^UM.EZ*S\A)>"\-:FQ$6X-[,N_O@<.3]!ZP!^;%G)%DA?6\)C;/ MC;CF1L,EJE2N5\=N=^28M]YD=/B/,_%CL1VG>U@=.8H#7S:9R+?':4NZ:T=Y M1D>E*N]E_3<,5YPHI0XZ*2-8O6H7]>^!Z)763V^8INE?,G)SR^DBYD80<*_V 8XOC/V\B, MR#7^$=N9P_7+W^FM%$((0"1\('CP]\M[--QP*QV/1/,BW-:?3C2^0 _#A 5? MI:?EG!SWV#/V::"XT^\T>ETEZY>K M(AT"L\].T->.0BJ150[ MG4:[64^;-5V96B-M!FFK55?02(M(VVOT>JV=05I5Q*,#,YZ(',L['P/P/&DO MKDT"ZFR9F.I&EBEMK5:BX9FT515JV&J!#-.JIS;W:G*X;;"O>WZ-=@G:M:JE MS^XHV@T&C>9 $5-F!:A710C9NHUF_QR!!^)SU%/MT&6I0EX.0\>!>;]DHNEU M#,R.8HV>:H+AT#HY2"N$+QJ]:@5"D_/O'3:V*G:[=I;+2[]93; MU+$MZN-$MX83IXW3,R510A5F?ACZB@Y9T=[OJPM[OE]/*7N-L MH BMK!T7ZI[_H'&Q6M/5O<;%L\;I0%6/JKH!)@=FF<@%F&2KF^@8DP-T=EHH MIPZ+/[?3GA)O\,MQ!XP8VP^ ) SYI77W^85 M,.W,N6%!Y8#.V9T93AC&S#;,],##"([<#.Q<[5VHQF?H%56F,8G^&N5G;;:#5QT.;@W3]$ MUPWV9#%0:60?D*2JXZJ2L.H"ZP+=<3YDL%<0=> V*;6I?9?/*R9:(4PH)_I) ME#WZ\+44-46%.X0HK'$'T($0D4)OYA1O)4H:'WWXC_$&H:K=?/?Y_/8C?6R] M>RLQN?"U'U/$C>2]\]L?R6LE*_SNGU1K*H-[$(#>Y&VN##'3-V:&<,AO[ORI M8ZTL4 S IQ*EYP/V[]BA M8O>XXC$VIW FT\!_D(0H#'VX%B0PCTXTQ@96N#Y+K,_E^QS"&:]N <97:TZ0 MI_TG[2#A8J0T,V!*3ASBD(UB%ZMD)]TSEBQ.-'^86Q-:CJ:P<,/UD8^&V4G$ M,Z&<2$X0 TD-W!DQ7G@P@B]AE/NQ8?*YB2"7;;&=VR*'15&+']MX&1'<8SB" M'0Y9](C,"S; BV_3U/-[2*;'4ON(650&'?:+UQ4!^QKQ.MN/8^8ULANLP!/Q M6&C&:D>1;WQ!K _1[;G Q^?VRTG#?YM>; 8S2B X)LE.(G;4]X67@O-L$#A;PM%N?VR<2YTVE3"P5F1$;'6S6(#HDR$X2F39(C4S/ M%4EOF3?&%D!YX9OW( KAAIT1:+TPBAPM[==#R@#\'^@7;\= #7R<"75^X"U1 M3!>H1CQT'2LA_B?/IJ.BLO^C X,-13<9AKTL@):'J*AXH+ZOY"8PTI0@)VB5Z^ GX M1QWT<)"GAU]Y7ZT[:J%5D12>=I>2PG2X39+ 01$)%'(QE^9(V)R: 6_CE* _ M>L5%4QI$I< <.M04AY-*7&D$*\U1/FQ1YA+,.QZ,CJUI> NVB-KO4)9C0]@3 M',21J4/]:'C7,\2.I)5;PQACFSPA^::TY]$/7/O1L5D&X41_'M$'"Q85..%/ M_BW^A1VE/&DD2]Z"3TB9T :/G2YMXPN/X.8 MVRXB#@1C%^G]+N)8@E0,>:1X%.ERBZAN&S.)?2],F$GRJC"Q7@?. \JAMPQD+RZM M?H/_W',Q]H:AB<(XY[)7:S#H\9:*_%3X^MJM2SE89I#+)XO\3NF[G6Z#[,\3 M.@FT%)M1OE6UD/Z$LBSU7>G4%/H""+'_DI?"K2%^'!A#$6E+C3#GX6+(0/P= MB?>!@<:3*7]_8H*H/YQEWCDQ_O316Q/&V LWE"?,5Q0VY'F*KP%F'Q]P/<%,46+PXS-B/77O^6ROW)9X, M86$"[70"CW08^&/H #:;U.094ZOX\0?,X/OD+8(=C-0 ;.7O+H=*V30XS#B9 M Y+$C7O %CA5QIW;0A7*-L3F]JP'WP55)=7$,(B%&O@2["6093O8S1L0'%<' MZ[8=B_L0 H1K!@!A1:BO !2A5B9U/4X2)N:,!@#8)_TRP5WF$#@N+<8L5 M,F#9K7KAC'A0F ;['8$)#?8?!"@;$^=)0[.&9L6WN J:APY)2RCU.0_H8B'E M%BV@QL2WR8LL9'[TF8 <[?*_->AKT%=\BZM '_068>FP1%%4#O@BIAFT;@!> M4!@UJ&M05WR+%646M-F%UIC9L:O!6H.U\EM<#=:.L/F9#Z;C9J)$ O,QL5=I M2->0KOH65T$Z9B6%)(2'8S3^WI,#/$/6+1/-G-%,P[J&=<6WN K6*4;7(S43 MTQD"],)-?=>Q9L(!'(V$]AF3JY)\>=S[S;U^_%?V ME'Z6L:<\!I)2>F.-&!HQ5-_B2HG'\CU_XE@9Y_U,1FC(/,\HP" *Q)V):05^ M\HHE@WAR&?)3'Z,%'?)M6SQ( 7\>N2+'1B;>D1M>QJR,_9C"C+E;2^.5QBO% MMUA)NF)AQ/,+,$:&YUFD?$AX<',/+I2:D"'W'KEWI0$USY*$5UC[@#42[1D2 M(3A+:U,NR$ID++DLXK%O :HP/.H=TV<(/W[%#$OKW['#,_D(Y[C'#8:Z#_S' M7,BBQA:-+8IO\9G8DB2387$CP)%[XD0BF',.,>#Q+#+DT^A$UI\UQO#87-:S M:4\ Z<(H(*S+OP4(:?G UL*9QV"1,G?0L@)&EC28,DWM$E&0&@DU$BJ^Q97Z ME"SY-<*L!8S#GQG#@ 'VX#S(M&+,0WAP@CB4P?36; @RG7P:*_TAHZN,#1KP M*\XIX'&;H!CQX IZRY+)[)W1%,C[780OK:6C&K[% \2VNP@+39O^.38O"(A#.'2^, M TJ6LK"0G7G/-)!K(%=\BZN /(RG4U G06IQ//RWZS(T9VK(UI"M^!970;9K M#C-1/QJB-43OU!9][]XG_RF:_\Q@AK[9D>M85.L*L[#--)O^Q\\ R#*#Q0/4MKC2+R]XLZ!D=NFP2&B8O5P$3QIBF'P>4 MH)+:NU,?[ BKB#8P$LCUPS32@ M0:!Q2>/23FTQ*9(*@C M8)+>O0SOH^CSDQ)2()M\46FF3*.O.BL-;JM^^.V*TE[A%.0* VJ8BS#C*GY M#YP_+Y$-W\RH0AE6H!.5F.$9GVJ@43W,R/R)>O+, ,5!5N.#.X]Y%R'\8>D* MN*0SPX@EV%L.R/>8H$BUN["06V@F-E24(3XRO([%4L10< MV@\"1K&B].?$#UC)^30R];L3G24T>)4Z.@ 0[:C$&"]=!K-1E>H)G8C-X[X! M!?G\868!I$%1P6E0G:C>/@[-,,0HF/O>%QA34J1NR_7-=G'OC+:S_O6NGGE?>_ MJGKS2NEC$4:7L@,\RU9Z E#; M,YNGZ$BK&59R 3Z$9H+C)#_.&P5F& 6QQ8N&BF2$1B8X5*3A/?J&Z)H#OUYZ ML @&;,(V;B/&@))A24\<@18BY;/;Z^N<)';-BWT:7_.SDMB5&7$68J?F9!3Q MEASI!'FL8;/(=%Q*IPBMP)EF"@Y3E=1DJ=A4#5MO"J;<;LSW3OJ:=A3*B*W( MY=?IV"E%9CY=5FYNY>3F1&PN&B2WCDH2QIX"^%",4L$7]6 %YC'.J;6\V4&+*#&:@J#7A+Y.@B39A_F?$ MK+$'O.Q^EN;N&&,@_9<+:".519WU& T-$-X*+!\6-@3J?94:R9ZU#K0?X,(:R7=EP4!^1CD5I24M#& MD3\&XU^^PYO,.A%:_P3:H[0'\.C\A_&T#1B5Z@_?8N XNT<#!DCILN42KV(\ M82RB+ U<=.&QS5$:N"3LU/M(I_& W6, KV(<\)B7MI:'1&JA:5"#&>JEB1OA MR5BR]R*5Y(9O?MR>-XPOS&,/)J=#&9K3,*X9@IS_$T#YM/N.;W4) <4S@@U? M@8YH8[DK+ C,S DU6T&M,(KXKD-SQ*)9PQ 7WQ"%ECW_@>L>CU2 V&83N-A( M>#4H,0R%_0?3C1EO1\R[[@F;:T/,@91 I%_"W(]^\//$^).1 C0&VBY*I',E M_7^!A/CQ SHW_C3#, W0%!/^8X 2W"I_Y79-I71:1?AS[LN1S+LDO[;0T M=&QB+2-FXX -KD3Q*YO$'E5(=PU3&!FIU1V6G'=GQ_XCXAQ?+_6!\N@!XHG4 M+!L50T0:PN.18\GJ[R'!CZB;3LL*39>)S<5#U'(C7LC:#K#;%):NAC$\$B,P M@3X8FAXA>32F=7IP"87G1FJC*9IU\WQDV.LCM?3-CECXWF/5"]A%6I@_\K%=54(74OF%MD>4%(D>[!KIL6T'W"^24,C@V';,"9!3 MF -I.'PQE:),0BVI%92H^-@02,UOE=/Y!<(.],E!2P8(R \+K"2$"R.??\@> ML5D"YTC[RL%1$(>CNA!="BYE,OJE]^ $OL?[I:@AH&_+%/8IGP LA>*41H09 M,H.9^!3;097DQ?=&04Y_$B\B<_,!GP/$A*D_%95A!.XV%I*825#A=J%1FOM_ M0NU@ Y[[M.#626_AD;DVA+)V0>8(A'B4WPCO M2@ D4K1D0'3&IM%PXH#[@?]$M?QAN>W\C%/F3UTR)^.J9,,!KH&@P@3R&=(- M--I-4=3"P6'[48"-K?,U%.#X3'0.P3H#NG;CCCV9W-CW(S+'P@:*M!I'%ML8 M4?,Y%++"5/R2PI$@D?FMFO-7FNUDVS8^ K"-'.92DQ=&!_[> 3$\1-.&-.!+ M=8;2!_[+G$S?&1>F9]JF\4?"N?XD>G<51V@D_ VVP/W)%^?7E_^?>.<*/WY. M&G#0 H[;S4X3.P[GZT[09O@)9%%FN3@#QT0=#'G/%)9V27'9 ^]3Q_FN,8JQ M5@:!G6CWX&/_XY@["]@$N.EBQGX>85>0[GK:A=:[%B3YH/PGD@==B#^*0*B@ MWH^BL_H$A6UT]_"P-_L![>S4\.91=I,4]NPDU56(%M@#_1@@3#AVQG[@_ <0 M$@=-G 7YV4,?V#SM&Q$-$:C7Y*ZF8>RX]C$VQ:%&,R?&)0H_T9@:"L-"D#0$ M#J?!)@^[XVFZ$]]&O'-1[!+2!\YGR.K1G"YTN#""EE!0&FF)>#1CV&7 4%" M8258)'P [6:9R#"XG.6# (CPCV2P% M50TX=$02\J,E16)$U*+% B^9?ACX)BID-O:%B;!/,O&I&>EY:9M**8(Z$7=[ MN,Y//$Y3'FA"?V%8Q$_2*47/S2'U>28GXG!&DWYTB'*"6#5O5_K$ ,&E%>GK MU_\^SQFC\-VODMR;^\RPR.;>JK^3((=,3IX/_ M[0]#G/4WXPX4B)_2Q'$K!.6&\3\MT32*6CD['QIS7.FOXO>A8$NP(.(!=D8_ MQNT3S&6O@:$?-')-QY:'^5F0Q2\8(>1)QYA-JHG+S ?B+S[9%>CYO_9Z^;D3 M\7X*6\&"C '<'-DO.'+G@94INB=1"WN61J"9#,"@! ]=)R,HH"62@EAULQ" MC5J09Y3B?1XI2(B'^,UU=S7(H$HD^5IDKTK#6#2;"DL.Z%@@#/(&2SFXZO1^ MH3K@XKY)6Q1&!5*5I*D*?L^*K*)!$]R8?(RY+@_HI.XGW"P&-#9F[["G,".[ MQ8./F B7"_(N]EI*BH#P2:108V&7=MX9.%L"X82(F-3!.<5/5X2'R>O%F2 R M/3'[F-?(I=[N?$?)](O3I?N9VPAQ)L\G&&3"H4K FC3&1:63U^!U2?8EE149 M%AXGUT[%M7!KD\E3S_@$Q%+F;NT1,/BO@\$IMO>":3R)%R,G"''X@#' 3R\: MDRB/!(/8*>\7S:5;V>.>3T7/P8C=[(@45X&G\M=6HW4Z_U-;8]?"6BX+ZK(5 M%X<*YPLQIUDLF;IKR&FD(8)TN*1(&T7H4/.S3+TV*H[HA$$\3="&0X7T+23P M3#(NV01-DKC(N,D$0GES.(6-IF&[S$OH?=I3FFLYDN,G"BG9NL/YH3C[MAF2 M=/Q-E#41!BOAJ>&"&V P]QVP=5:!(5$&[J:,*=%3!04<5+.F:K(8% M\Q7LM\@"1K[KH=A&#Z9'-?:-P[5RT/3L\*VH>@I\$*9&PB:JOW./@,A'D3\IBE'?5/RT).1=.+ 5(>J;GK*U?$8X M(NRH_O>C_FJ.O(D5+8HE)9I/Y3L+.4_;"GFK *;DB MFI_^:55=U+;1+H-DFSEM(6\<S8>#_WW(LXEY4D4K3Y1BT M W>DY*(.%W ZNP X+R;,S2YLMG.F!F%64$QIUR6F5 /;W%84$V;^NC7919* MS&$I+OUJL%H;K,AA]YU%QBT:/S2,:1C3I$N#U4Z U<&""K6^6K]L3GRO6$!M@S,N*@Q'J,:53@^PGQ/%%L$:B'55U[R::%QY^9U.H]T\JQ/?5;EP199Q('#7 M'IQT--0ILXP#@;I.K]'KU2K=J'+ABBSC8.#N9+ +4*<-G2^3MH\^W.7SG_;? MM'D@&-QJ@:#S4(&PP:S<$V;?P:Q X-Q':& MB&G+\G-E79CW(EN,2L<2[FO BYY17Z2>45_D'LVHRD5J$]O:)C8=2ZAVX$BO M<=K?IH7L(/5(=>^_=U9WX)"B=W$8MX_8W]7WK\2,==Q_O]Z #FWAT;&#.JIA MNS%7-H(';6/FEK -, ]HH UNBU M=R*V2X/8KH)89ZM69!T\N#5A%^;]$OAAB-U"1TZD8P?W-Y;D64<"MAMU4&J@4X#';JT M&J>#6K/B5+EO199Q*&"G*PX>@J0MHP;O,[Y5;<>L395M-QNMCLZ"5&/&.NR8 MZMDRU+B+P[C]?J-WJALHJ3%C+?=?=P,E;, C-R'IC!GJ;,"[?M4]9*UE:5K%:KT>W6*NZI M-?J#6LL.*'L9!W']I\H9,M2XBH.X_&[CM*4K>:HQ8QW7KYP+0QLQGRM8H3 5 MC5D@!"GCC3!'OM4B57T\53&L4N,B#N+JC_75*S%C#5?_IEVK[>+HPUOE;N$@ M[ETUE-?&J35DJ*]>Q (61C5Y<[5)^;5,RF]:C>ZIBH[;O:;6AP-=]?9"T+"U MS[#5Z/15=(=IZ-H+Z#I1,5?I[=J"K#8&+GA9OW*3X)"-_(!) V%D/AU M6E5 M\1-+8+3;JO5/4N,R#N+Z^RL M#VV/7+!'?F?1H>1[K,:&#F"#[?__[3UI5]M*EM_G5]2ADVDRQQ@OK$E>SG$( M]*,["320>3.?YLA2&:N1)3\M@/O7SUVJ2B5YP2: ':,YKR?&EFJY=?>MLFX@ MR^3P9M4)>?K2=VM@'RZ13[>K>Z,>/*-?0UA,7__.\N\:+'B9NO/S5K+C0?-P.V_PFW*\Q7J.#'TDD *LV=>NLM0NQ-L]FNMWC)L++ CT)X3*1]*7I^G*3B MS\R)4QGC9=@$;M<"]YO#PWIS[G?;]36%_.7YN0@G +FU6S]D(!\TZHW'PGBO M7=^='\;"B_U;&8KN2#AB=^>M60Z]%874GM3+7!@\EDD64*'_,/9A0P =T8NC M@7#[3GA-.\&'_R7=5*3^@)IMP;)2WPG@R:C72V#/.$\HF@=OA2?SB1)NSH4# MNU(,87DPM36-ETG<&R\E%0/_OBX^^\3MA..F_JV?CFH"K?<@NN;.7NI9W'\@ M;V60 ,,<"3BID4C@9/P>6/!AJK< 4_H1P4]].SZ=T&P79@*CDA9%E M23BJ[WW(\52?ER?VZGN,INV?8 7MW?K>_&A:@^F3H9]*P-)6NXBE?#0BZ?O# MH?1J&EG@P9T96)98F%]$8(-B:\I^F/';][KFO-_^UN9,S?HN'WFK4>;@F]@^ M]2T>E,&5=PO@07.OC >;V)%Q@0'76DY<3SZ0@W:]H>3Q3ID&\P,I")I%#@4& M*(_90@5@H3';XPP\WX B6N34CZ*^]>.TA9/.F6W;G#1H!^,'S80RQJT7.>R# ML<-N[3QJW D'OAJ(O MCG=R=6$&M U35V(=6GXY*$RB0P3V /W>5AS=Y< \NB"QQ_K?O/[[-G&.R M.U];F66DW?C$ M.,&=,TJTJ8SQ@U 6=OY!]"6#L86.$!5<^4N#_N^#&(^[J)\VMB>!_/(W)NB&X*F-H.*CXX T[+WV\9? MTLC=*"#YG0*$'_JH&NO#PR?*7YIX3/'K.;P'DQP_5VCC(ZD>P4^ .,G';>?3 MO.=O?9H_J8QP< ,HCMN7 *(A;O$9< V'3+ 8"CNG 3TZ(4,_$VPF25;I+=V]8< G"*2;NV#@OZN=/@+3-&>8XH#4 K> MU<45#"$!"@/XWIO^2@($'\_8DIX7T$9:..;#!EP<&,PRD");GB0K'CD76.9P M8(!?PO-AUE@"LB5SKT> N:_4D9(#P)-P+N1*B!A L0P(;]&BQ'7F$UMC6FM M:.8":5>F=Q)L5G92 M@%J5 )! I9)." /WL@#/V $)EOAIQGM88Z+[ZO^9^9Z?CHC-'CE#'R_5N9!) ME,4N%D:MN>_VDO=)N_^1P >4[4[2U\QG33=_EL7(,$+7'\)QJ\/&O0<&'Y3\ M17X2ND'F 1F:+J5@T/1%#^05 PXI\0A8)AA=G>M8R@$Q&"+$OV>AY#VV&Q0. M:()NF?;%'R#F$W$":XK$9R>\J8GO1&NPFDZ21*[/4F_S/_]RT&HU/EB/TS?- M#^] ,4C*>H$#BTYK9DT!\"09)^R>!-9 HI?^19_J")^)91K5U YQ9_B:TA0Q M.4N/42LL>!.?4BO[RG,45S60% ?ITA0HOV*""6X.?[+@<^:F45?&#*)6BT'$ MO.U2NA%L)'\#%C\%RATXRT"-<4ACM'(H7/7]>+YA\L-2HX!(2Z-KB7#B-:E- M=]0&R^-H*-3%R1C( <> BX?76R#!!H!!S&E"*3UV*W,W?1K M#>:X!J'@HEOA#G"6\0(1#1YV7!@^H26A?MX'E0&$WA (J0\*:<+@IY6"[G[K MN[*.]_\B=1)BQ_+:B5E@PNHM>M(2/Z6PVH##:C(/JREBTI$XAR2_3-"(]5!R MX7!@G'BH)GGXB5(,Z7@O4_@'C\EP.7%"I0X8933 .9 &3W+*_^"A-IL? MQ"F\S-\TZQH13OP0#@B))1]<(0'.D?9!NN(Z^;U_-L4)0$ -TL '&X1\8BVZ6X :Z$E:XKO*W0P^C+PG:X? $*B-<+Z<;-=MH6*RNW^7KU=_-VA%7V1KAP8KJ3CN'5&&7(W MX@C9DM2X8K01.+.8^ MF*.:JF##:YS9^'02X)WAK(PBC:(#N8P=#NC&&9X%QQB-T,-G;$7;Z+\FN%>C MN,^ 1*;207TV8T:!&#EL. M0'__ _C::(AYO\",^PY*;&4IX)&* ""!XA<8;#I@6V&<*=,R+)X^!-F!3--, M4X-QNE',&XB(GUA+XV4I,\Y(^M2Y9JGAZ/ KB(.^CQ:3,V*62? D9@W' B8% MZ!7(LO*%Q("UL ^,>Z*1UD/%I"]-%!4-#4\&\ 30'Y@R8AC%M"*8%8>- 9!A M)GE4&"L"^^K?\'ITBZ%0[$17"JY/0&*0R,(?G >@TV M.:@QI=+*ADBF!OB1"WQ#)%DW 3)66L%=7X9Z&;A::Q%:EX"S&B);IO5H3)KT M7NRIM^A'6@7_PB!"0[);,"(!(@FLQ^TS[U-@%^[(#6A0IV1Q)OV(;&$?O;? MAF!Y#DN_'&?Y;4"$(.T;I8)-0R.= M4)6JT63M\>>-81)0G-H2A7QD;_8GO-4CW46.OT.H.%4,YAO?W2D[\9YQXX>- M;A?L68)N^"M(P9\4I0E/B9),K()7DWL M,L\A(_7J/(YN?64\;OY(2"=_)_(+0CJ_>#=<^RK M>5#VQS]Z8U7X?$7"YZTJ?%Z%SZOP^72-0"D!XI3LXM>I RBQKWP#$Z3^FS%= M?$'1LE-VEM4;M(8?QDC16!@:Y;KJ9 M'W ^>TH+N 3#7WQU;J0XHN3V'ZD#^H'CHKDS,N/@,GDUVLL1RXU_'=I9^ MA,('GG!BSZ@^L02F[)+;FYQ;RF:#QQ$EW'1BH &W2!N!<^Y*X0Q!@;JGN#6\ M]Z99@CVIHT7+;^RD2T.,VXF/.AMRRJM8'#ES &X!FF_H^%7NPM+,I;-L\X68^)@B3;K>PM:HLJ0M+PLFX"[R@G] M3J?7H Z(+[@<@&69T]Y=5&A,6.^BEC.L]R(/>]*:H@$\ 8<+&JI>V:(296== MB?0/S-=/?0Q5IQCD5?Q/WOM);L)."K'5[" Q2Q<^M:Z.0:B,+V4.4UB:4R=- MX-P@%;)%8*[ 6C-BGG@6TV+Z5A@%_7] &W"&)+@\6![M(A*]#!\:CUG6"B'P MVB1Y"*P9=LD)$FK)8]'T/ \NPEBW)#.BE^'K=7$5L5__'BT*D!$8#@$Q17Y: M=.([01()S*),>B-+'N23FIP#&U1.>%-PV"8R],F7DZ)!03D,ZG.2=2DIC0Z MO;44)E!>5@)?T4\++_D]"G9@L$YG(,&6G5O'#]A&"M62@2E%('-Q0@Z@4=AL M/*-% IYD2E"3/(?IV"&K?X%58,@I"YG%(4CM) 9Z#\X%CAC^K(M...(EIC%\ MY;@*I?P>B?-L0(EV-8(PP]S'#( 9,,24#<8C*]\($0=^?#7>WK.P%%;8T5$% MI)ZD+X,>YH:HE"9BHRJO E$BSYZX5,D3;;%Y83_^/:JK<$6[K1YI[>_N'38Q ML?56QCK':1@AM6#LD\F(TICQ0+(A>]IV)SC:,IUS@[BR#<>IB!O47L:I"*-O M@R[2 J$4!2*C7HWDJ2?=@$1-GIRI$J0NCX_0T>@G,P&@U5ZERFD%G2*(G,O:+*'GW$8Q_4'\ .&=_PXO.T%0 MYH &99X8SJ://CU#@)A]:/ LJD0VI'WAW[%#&U0K+" M\X,L9A:5E05*2(+D;016$Z6]J/8_[>3FXUEQ8"S'IR!Q;C:D_E6 M(;)J*:@)'D;'!\Q*>D",0^JL!W,^!>.J$&$ QT'V )Z8A27XII?ZDU MI$IM3+)DR/I5Q.EM2D![1+8P!PKQNOAAU#'UODHM-"F2>B;.]8,AT8=Y(]-B M#BNK,\!K4*Q[T9!RZK,8LREI4Q=9(#4*=G<5$C8UU1[?JV!/!U,>HI@K#T$1 M)2,_E-=1RBX!6S,PJ;B8WD)Z*$"]&T\J4 MC+O/R5\&1KL-?#P'PX?LLR_,CHPW#%"<1/!3KM5.V2F\2Z!"$.&T\AX8C,J@ MU/A9\*K=8;I+X,M;]F;XQ TII56GF=HGH)@R>R\ JI82Q-K9K0SQ*-#Z"GQ2 M$WG)..(T1=Q.:#))7T$0N4P@<$*1%L-\CMTL 3,1ZR8P0W8>2(#, \JE,@FM M!S3&73J>XU,"3EE)I\1NU>1!"3.5MR;Y-RON3RFN>FKJ6*$(M4B\V]<%>S7 Q&X2:CM)1Q!$2$K)-<7OPWHGX@TY1XL'&" M*:[B7%]C: 66)G M.C&O4[-UT0U>9)KD(OB78F*TU81DEF+3TZ#"JLE4F)&!P+:,FQ14 M'GH8+/8,'X9-C%5Z'!"O125C2.[&PMN\M40[ZY$OQ)* @;"!)P4H(F#QC&QE MIK!K9PARSB4S!=0K9/>V T:;#)/RP1]V4#U5)F(Y1[WT[AC"S>->0ZVU&")I M%UVT51[*JN2AM*L\E"H/I'DX2 .NN:8:#S+H M:EJ(*&E*[OY<3BC+=TX)61/21W/HO=CT5=CJ,\KC"Y3^F^1R[.FRMEGCO ,; M(./BBDXNJ+X1+#[ V'KPCL[JO$+W/^GB6,()BD.(B*R"JWI^I5M6?Y5^-BI^(9GV?VYRUZNW=M[5B M9P!5G&B5)')4Y2O8U;%S39#SH\76K!TN!NNXV0*CEXON@!!++]6/M(AI"@$U M P#EAW9&\7!>WS<62 3^>H.0O,,PHN\ UFF=+;7RE9 M?[^^TWS[@%ZI%#->H"[#(>^;:Y1CT9/$/G4%4*/>;KREDVC4=QIOL8UDPAYV MTLB-9LR^%/++C&O,KN%D$9.%*,:^$>QL^;W/DQ MZ/4QA]LH+(<11*5:LUL*-63;ERYEHNK"T%F IZ",$I7#8KPR&., ILQ8.QJN M;3^7*RJ_+YMH!:-BJLK/TH(JTJ+X1A77-_<_%!OB^&&2Q8@5=:(L@VTA63E* M=&#((X[1Z\217D>%J>$1 SCW.@TP*PF-&EU@F)<$&DY0 MFF:=#W4JWU!%Y#8=@"7)I>E.'F&^(T"I"B6KHM2\Y/1Z/E7)WS*5A&C, 3Z'K%=849X,SDC@,Z\I?GYXUU%J V J!T M1X5OV L,4$("JW&[FER+TL,B0QUR!YLY>3X[-F"?&.P(1MHQHY.D'&R.DSL #A8#.\/LD%Q2N#B(8D'<^// MIU=?.H_3XE!TII3WD6**UN0,R1Z[OD.,>B0R3;PAY'O;V1:+$&$#-9&O<8=R8,9 Z,0'"9Q@> MJ1%3U.&UNY"Z6W,Y$#!4[,N!*$=UQH9(L#_6K=(G%.7"KK- -\8V/CP7C$^5 MQJ0IUG9M/:R"D>RFY#,_M,,LY,S#%><8G1/]5)%4T\DQ>23"I-=TRU.H/82H M V*8?EVE 0:5%CL44J829391MW3%$U1X?Y1KL]AJ.NNBLJ!ZGY-WDY%-"W%\ MP/=\6+4T*@*WQEA7D*O(@8IK?0$Q\PJB!F2[^0-QHC)CQIH?9=?PJIU-T!KO M,76L<]:UD5[#MDSUO,'4R?')Q!Y.?W= ?L'"=I.*"LU6?M6#@&'6^:H M!6 ^![_@O7TD]:@[/*5!DBL]&Z(T\[D]$S6YX(YRR,F'J3;>.%!*\/?R!3UH M]!9LOMP4I-Y:)QU.UA[;LXGPHNPWDS[.\@[7@]9_,F;^DS>FHW0?\@"T0+MY^^P6?V/_;;XT MH^AI:]?8,BB=73?.^'#5RN$ KV,6C9-Y-"6:&<1"?1#HJ"Z.38;?E&2?M+P> M5CR7H3H6IYVH1K+Z-TGM@ST\JX97*3'/+U$O".;46S0+*4G[/(XX$6W L8&U M%:^ YS%1/3+AXJO7DAJN@1_?<&V M5=%PO&$=CT?<:$H;O4D][Y;3.&_I&3-5-'E:-'FGBB97T>0JFER4M$>8NHA* MC\66CY5$6&,S:RWJE5$BK602TW12=:IDU?$Z MBKP[\EKXUG42*FL4GE%U0%8RO0:CRS4)F+(>&,K#G$AN$JFJ+BG@DDH[Y9=):0OT9N=@.U8T#@];!Y+%/J>20L5PP\"GG:$[_VV\>>?WH9( M_11?H,]*'80'0.M"H?5Q&P=EK_A",[3KXI]'G"T-K1>^EXLH8 MFX5IE5O6Q1)358&F'II115/05/;S"I3'G^03U:N\S#G_LMCT*.)WAX;V\>/3 MD?Y.G8RW. I8AZ***@_Q8_WI&B!US!J8(NJ<.J8#936@\5+]]RV(N#9$A@8B MY> UAPFVBOIZ)K#W4W)08?FKE?X+M>9K0H_NPX7SZ5YV-XIQ";M>VCLAW4 M\1UIZES4J?(653Z/I:ZCODIY=*S;^X5+2LCP3WY$\7@L MULWW4MB U1B^IKO6XT>NL,0N\S5E\2H["06(KA2E.WO4A5UX!P3'\M2O,<): M"Y*!R1HOU4J:Q5#&:6Z)TZZIT8F]=>PX[X+QD@563Y7!( LQMXPAPK(O=*ZE MOCI!VRED5O9]V8-)=;CGK ?Z,,!%!YR/CL],/A%=O47/YU;GV/,G9\7X-)85 M@5"%U5!X%BN![PA0=!V;J_+>\I0U&^$[M1!3,)N5I2/Y3W,_:8&'2F\[>CT M+C49.BN2A#=86BS;D9B"P!XJI,[:K)CFG ND**K9>87W8VM!]VQNJ5/.#29S M* 6 ;R')N9,)I#VL";Q&8+)+A'!NMC?$UW!V;3CGSN#8!"RY51QG4Q8:#SS( M5/A5G;T>C)13$N4M6G2QI0V,1.#?H AYV;IA=IB*UY"92N'W_C[>6(KCU"F M?]Z&079MK!C^HV#'H)W[:#OF]-1^=?[WE"FM7U[H77%V]?OQA3C]?G)V\:US M=7KV_5783(N??)!;K\&36J_-NO@*>EZ@&X%@]M?ZGX$JSE)7>6(Z(@X@N>H^ M('B8WD0QZ$VDF!L=A%LVXF4TP-6XC4K>+^<\P(PPO]=+D.4Z"55Y8<\;*6_$ MD#HHWG(R_+T<#*DILN<,\ XQBKBH&B+=,"BW,'AG;.; 6JBF,(](4"*^NA7- M%!OQ9+*0EF8S78I5% O6\"JWX%;YN2G0<>-CR[RHNA]I9 M3!=L4O=,_LL%B'##.8(!=K\84$4 6KQXIPDU@##W#NG BKIKS4KEUN&O.MAG M=N[.ODG=R2L"68L[LL,SZYJK4S5Z>+'4G-TJ-:=*S:E2=,NY&GNPCO[6KF]KO\NL+M%#'2[X^-/M'I<,:;X4HZUJGUP MU3ZX:A]^?;!KXDI7U%Y(\:?B7V0R64JEXOY! $K#2IZ;AU!^=Z@Q1-! M;08UD> 52WSIHV%XL)?@MXW&AD!S>XB:7WAM_DZ&I![RWVR8@^I%UNMDS\UL M[\>,@R^;J'2DV+(F)'_/O3;H/Z;=R!MI\SB-K67]+@GSS<+&/1GQ=7>SM8MU M\>K_O?L@L'(M;06Q=NLM[FIQ(GEP@H=)AI3) M<\I<,;K:Q^W4>X%M-]]:R%B<$8X)U8D7C?D:FARU& GAL>"_( M:TNHTZ@)_.]=<2LO=X"38#%VJ%<12M#OU L'V=-6O,2&Y3PX M4&'=KXAUNH'$.2D]YPZL';@+(Y_8;+ZKL*["NI?G=9B@A1Y%\E!DW&/>:5]\B?"N8O'?3I!)"V.OT*S\YHS$_\I4 M?)86!N>NDU\)6^%C_.D_UD=)7Q5R7)\9=U[#)E_#C-5!KLF,U4&NR8RKZU:?0+N59.E]^($^FDS^ 2\N;$?"\ MH(!3.9=OUD]9&@=UIN'%2ZLQ(P5+UBE MTWB%O&"_MK-S4#LXV%LQA%A,"5LQM\NRE+ 3V8W+6ICY3MU,6JEARZ.VO6:M M5;'>E=WU8O )I?&B%6]_@KAK#2NUX&0]BM[>TT:COMQHK!YU?SBNG@ M7QH-.1'/?&.*,:WO]-;O;97J?KI:5TCCG*RK+;Z)C4^4B&EK;_S%DCQH&CH$ M"_I?LPR@)1#STQSL?.'Y%>$3+[OE_5J[M5]AV>HNZN?P8)UPFA3HPX,*+U9W M416?KOCT*UU4Q:7XQ0\?\[_!IC1[*AEZZ:=-> M%[Y1EA^P,>%%&5;-O1J9.7W/S1:(S?W="M-6=U&5V"R8-^V7S-589;Q8R455 MO+KBU:]X416O7OX9+(88EGD#'TU3 OB,W1%>LI/#[ [3_CV,$7[/Z+I!ZHX- M&'"!7:*\_\-8R%:C"?^IC^VM=G-#A,X UBQ=[_VW- ZN9#Q(SGI7L=>)XRMX M^3.V7-S@BV]:>^U&L[FW(63B.D.L#HPSJ5LUK'2?P,@WW;/PX]/U"?PH!_:^ ML6-D'V!/*8/UC]MR\$F<4;>;T[P%R82V62^$/S/L]"J4YG G_Y'=1Q)+;&6(7.KXCQ32I MJ@F\; ROAJ&^4WAOO1_R_2U6%Y\9>&,W^&$,TEU^G#C&YD/82(FZYF.[UZTG M'-/J=S-C+&J%PX,4^N',>(4CLO3.@TMM-VL\^(QG.*P+#]&M'-35&N&X1E?R&N\<@=(E=^\'+MM[<7H%1BZO*=K2+0D M^MD>R+-Z\KY0%V0]V\PCWF,LT NS^N1.:YJ[Y%;)/]LK>>&#^?ENR;]J\NCN_[?M=/5ZVO[#. 'A4-[%@HU8Y52VI0 M9H:J@\U\S;5)X0FP8ZF'O3VCN_>KWEAPG ?KA MK(*A)P#&%^K*/F1C?1PBI6#WXG#:?Q!./PWHN2#X4!A_CG'3:%C<5K-1GU:; M,>O=Q7=DOXW;F>9TT+I-/TV'[[>W[^[NZHETZ]?1[78'K%+_5B;;TKMVXFW/ M29UM8#3-]L'N-FCVS9WV_O[.86NGT6P<[.UOR_O_VVNVVNU6O9\.#"LCAP), M'3MN^EXQ] ]T4SGU]#Z7,7E^L$$R=\C[$19;(OLAB,0A2D7N.@VKE7@%N=3W M,'"SZ9'I[G^DFP(7;OP4!]I,):N8)8JYH'..BVCAO\XP]@/5TU9G3SN?_NMI M,>31I_SS./)L*-]:'!CD9 MJS#. DA^(\D^K=#F(;295K?WXFBS_S1H\T6ZUDT@7"W>G =SOOG CV0@_HB= M484Z#V[HF93]=A.UU?D-GJ<&U0MZ>VP":#<.#AKS$, "#IPCW"S>,$W7+)Q; M-R$T#\2/^F7]"*_;Y"OMF^W=!LGLCKK9Q7YZX"^M1J-E?$7.$YAI/T=& ]_S OD3Z%$:X%9-=O(*U0LR50,ROG<^O&#%SGOG5Z.F_BW@FY,ZXL0/ MI-CD*LJ4DZ5MY,68.A:\.E3\Y8XS"M,W5?^5$1)>"3- M4DQ#$S"CHXHM$5<1O[&2TXT&0V"X3AK%(S$,G)#*._/*S/KJHNZSEE$]5'A8 MF&31*D3&H-:^@F)>$K34*L*JCFSY=62SB\)^M0(D12QCI5]O':3X"MPU!]T$^\+!@)U\GP;FB,)MZ /M'R"R$EV@\D'#]*(;]>O4U/8XOF%GYGJ[(;ED]W%=?'UN!JK8' MHO4[,VZXGG#]^P.CM9_1%/A^=G'U^Q_'EU?B_/3\6!R=?3OO?/_?G[ [P%=H?VQZ*K4,6]:J54HT\C;Y'Y6'HRCGJ^[(' MFA9H7>0".N,V2Q7T%T3>S6'LAZX_= (A#3!5SZI9'K%?')HKR^4J&3Q#!G>< M&*RA/_S@Q@_7F-&N+'*N+!=[)8BQ# E\*4,_BL5_@T"P93#+WQ,_=$!Z@/!0 M\E<)9UV]C5Z16*9./*H.Y2D/Q9+:/7,$"'G'=:,L3+%-XQQ"?,FQ@6?P%W$7 MXSD#$E\[EU=;N0]_8H@!.R@NYCM_OKZ(RHLN6@<+^J?AX\=M.NG_^+C=3P?! MI_\'4$L! A0#% @ IX"B6 K[V3'7!P 1#8 T ( ! M &5X7S8S,#@X,"YH=&U02P$"% ,4 " "G@*)8'/DW\/4' !>-@ M#0 @ $"" 97A?-C,P.#@Q+FAT;5!+ 0(4 Q0 ( *> MHEBT,OOU;@0 )82 - " 2(0 !E>%\V,S X.#(N:'1M M4$L! A0#% @ IX"B6&:.'HN-! @Q( T ( !NQ0 M &5X7S8S,#@X,RYH=&U02P$"% ,4 " "G@*)8P4<6U3@J "/V@ #0 M @ %S&0 97A?-C4Y,C0V+FAT;5!+ 0(4 Q0 ( *> HEC[ M\W+44"H "CR - " =9# !E>%\V-3DR-#'-D4$L! A0#% @ IX"B6/Z_7,< "P %I, !4 M ( !,WX &YW<'@M,C R-# S,S%?8V%L+GAM;%!+ 0(4 Q0 M ( *> HEB!$&NR)#< (F^! 5 " 6:) !N=W!X+3(P M,C0P,S,Q7V1E9BYX;6Q02P$"% ,4 " "G@*)8X[F.NUI+ !O!00 %0 M @ &]P ;G=P>"TR,#(T,#,S,5]L86(N>&UL4$L! A0#% M @ IX"B6-%EMWF\.@ 6RX% !4 ( !2@P! &YW<'@M,C R M-# S,S%?<')E+GAM;%!+ 0(4 Q0 ( *> HEA_L8D4/@$! &YV#P 4 M " 3E' 0!N=W!X,C R-# S,S%?,3!Q+FAT;5!+!08 # , + .\" "I2 ( ! end XML 77 nwpx20240331_10q_htm.xml IDEA: XBRL DOCUMENT 0001001385 2024-01-01 2024-03-31 0001001385 2024-04-23 0001001385 2023-01-01 2023-03-31 0001001385 us-gaap:PensionPlansDefinedBenefitMember 2024-01-01 2024-03-31 0001001385 us-gaap:PensionPlansDefinedBenefitMember 2023-01-01 2023-03-31 0001001385 us-gaap:ForeignExchangeForwardMember 2024-01-01 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember 2023-01-01 2023-03-31 0001001385 us-gaap:InterestRateSwapMember 2024-01-01 2024-03-31 0001001385 us-gaap:InterestRateSwapMember 2023-01-01 2023-03-31 0001001385 2024-03-31 0001001385 2023-12-31 0001001385 us-gaap:CommonStockMember 2023-12-31 0001001385 us-gaap:AdditionalPaidInCapitalMember 2023-12-31 0001001385 us-gaap:RetainedEarningsMember 2023-12-31 0001001385 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-12-31 0001001385 us-gaap:CommonStockMember 2024-01-01 2024-03-31 0001001385 us-gaap:AdditionalPaidInCapitalMember 2024-01-01 2024-03-31 0001001385 us-gaap:RetainedEarningsMember 2024-01-01 2024-03-31 0001001385 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-01-01 2024-03-31 0001001385 us-gaap:PensionPlansDefinedBenefitMember us-gaap:CommonStockMember 2024-01-01 2024-03-31 0001001385 us-gaap:PensionPlansDefinedBenefitMember us-gaap:AdditionalPaidInCapitalMember 2024-01-01 2024-03-31 0001001385 us-gaap:PensionPlansDefinedBenefitMember us-gaap:RetainedEarningsMember 2024-01-01 2024-03-31 0001001385 us-gaap:PensionPlansDefinedBenefitMember us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-01-01 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:CommonStockMember 2024-01-01 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:AdditionalPaidInCapitalMember 2024-01-01 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:RetainedEarningsMember 2024-01-01 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-01-01 2024-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:CommonStockMember 2024-01-01 2024-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:AdditionalPaidInCapitalMember 2024-01-01 2024-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:RetainedEarningsMember 2024-01-01 2024-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-01-01 2024-03-31 0001001385 us-gaap:CommonStockMember 2024-03-31 0001001385 us-gaap:AdditionalPaidInCapitalMember 2024-03-31 0001001385 us-gaap:RetainedEarningsMember 2024-03-31 0001001385 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-03-31 0001001385 us-gaap:CommonStockMember 2022-12-31 0001001385 us-gaap:AdditionalPaidInCapitalMember 2022-12-31 0001001385 us-gaap:RetainedEarningsMember 2022-12-31 0001001385 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-12-31 0001001385 2022-12-31 0001001385 us-gaap:CommonStockMember 2023-01-01 2023-03-31 0001001385 us-gaap:AdditionalPaidInCapitalMember 2023-01-01 2023-03-31 0001001385 us-gaap:RetainedEarningsMember 2023-01-01 2023-03-31 0001001385 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-01-01 2023-03-31 0001001385 us-gaap:PensionPlansDefinedBenefitMember us-gaap:CommonStockMember 2023-01-01 2023-03-31 0001001385 us-gaap:PensionPlansDefinedBenefitMember us-gaap:AdditionalPaidInCapitalMember 2023-01-01 2023-03-31 0001001385 us-gaap:PensionPlansDefinedBenefitMember us-gaap:RetainedEarningsMember 2023-01-01 2023-03-31 0001001385 us-gaap:PensionPlansDefinedBenefitMember us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-01-01 2023-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:CommonStockMember 2023-01-01 2023-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:AdditionalPaidInCapitalMember 2023-01-01 2023-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:RetainedEarningsMember 2023-01-01 2023-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-01-01 2023-03-31 0001001385 us-gaap:CommonStockMember 2023-03-31 0001001385 us-gaap:AdditionalPaidInCapitalMember 2023-03-31 0001001385 us-gaap:RetainedEarningsMember 2023-03-31 0001001385 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-03-31 0001001385 2023-03-31 0001001385 nwpx:DeferredCompensationPlanMember 2024-03-31 0001001385 nwpx:DeferredCompensationPlanMember us-gaap:FairValueInputsLevel1Member 2024-03-31 0001001385 nwpx:DeferredCompensationPlanMember us-gaap:FairValueInputsLevel2Member 2024-03-31 0001001385 nwpx:DeferredCompensationPlanMember us-gaap:FairValueInputsLevel3Member 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:FairValueInputsLevel1Member 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:FairValueInputsLevel2Member 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:FairValueInputsLevel3Member 2024-03-31 0001001385 us-gaap:InterestRateSwapMember 2024-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:FairValueInputsLevel1Member 2024-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:FairValueInputsLevel2Member 2024-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:FairValueInputsLevel3Member 2024-03-31 0001001385 us-gaap:FairValueInputsLevel1Member 2024-03-31 0001001385 us-gaap:FairValueInputsLevel2Member 2024-03-31 0001001385 us-gaap:FairValueInputsLevel3Member 2024-03-31 0001001385 nwpx:DeferredCompensationPlanMember 2023-12-31 0001001385 nwpx:DeferredCompensationPlanMember us-gaap:FairValueInputsLevel1Member 2023-12-31 0001001385 nwpx:DeferredCompensationPlanMember us-gaap:FairValueInputsLevel2Member 2023-12-31 0001001385 nwpx:DeferredCompensationPlanMember us-gaap:FairValueInputsLevel3Member 2023-12-31 0001001385 us-gaap:ForeignExchangeForwardMember 2023-12-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:FairValueInputsLevel1Member 2023-12-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:FairValueInputsLevel2Member 2023-12-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:FairValueInputsLevel3Member 2023-12-31 0001001385 us-gaap:InterestRateSwapMember 2023-12-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:FairValueInputsLevel1Member 2023-12-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:FairValueInputsLevel2Member 2023-12-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:FairValueInputsLevel3Member 2023-12-31 0001001385 us-gaap:FairValueInputsLevel1Member 2023-12-31 0001001385 us-gaap:FairValueInputsLevel2Member 2023-12-31 0001001385 us-gaap:FairValueInputsLevel3Member 2023-12-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:DesignatedAsHedgingInstrumentMember 2024-03-31 0001001385 nwpx:ForeignExchangeForward1Member us-gaap:DesignatedAsHedgingInstrumentMember 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:NondesignatedMember 2024-03-31 0001001385 nwpx:ForeignExchangeForward1Member us-gaap:NondesignatedMember 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:DesignatedAsHedgingInstrumentMember 2023-12-31 0001001385 nwpx:ForeignExchangeForward1Member us-gaap:DesignatedAsHedgingInstrumentMember 2023-12-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:NondesignatedMember 2023-12-31 0001001385 nwpx:ForeignExchangeForward1Member us-gaap:NondesignatedMember 2023-12-31 0001001385 nwpx:The1941InterestRateSwapMember 2024-03-31 0001001385 nwpx:The1941InterestRateSwapMember us-gaap:CashFlowHedgingMember 2024-03-31 0001001385 nwpx:The1941InterestRateSwapMember us-gaap:CashFlowHedgingMember 2023-12-31 0001001385 nwpx:The296InterestRateSwapMember us-gaap:CashFlowHedgingMember 2023-04-03 0001001385 nwpx:The296InterestRateSwapMember us-gaap:CashFlowHedgingMember 2024-03-31 0001001385 nwpx:The296InterestRateSwapMember us-gaap:CashFlowHedgingMember 2023-12-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:NondesignatedMember us-gaap:SalesMember 2024-01-01 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:NondesignatedMember us-gaap:SalesMember 2023-01-01 2023-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:NondesignatedMember nwpx:PropertyAndEquipmentMember 2024-01-01 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:NondesignatedMember nwpx:PropertyAndEquipmentMember 2023-01-01 2023-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:NondesignatedMember us-gaap:InterestExpenseMember 2024-01-01 2024-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:NondesignatedMember us-gaap:InterestExpenseMember 2023-01-01 2023-03-31 0001001385 us-gaap:NondesignatedMember 2024-01-01 2024-03-31 0001001385 us-gaap:NondesignatedMember 2023-01-01 2023-03-31 0001001385 nwpx:ReclassifiedToNetSalesMember 2024-01-01 2024-03-31 0001001385 nwpx:ReclassifiedToInterestExpenseMember 2024-01-01 2024-03-31 0001001385 nwpx:ShareRepurchaseProgramMember 2023-11-02 0001001385 nwpx:ShareRepurchaseProgramMember 2023-12-01 0001001385 nwpx:ShareRepurchaseProgramMember 2024-01-01 2024-03-31 0001001385 nwpx:ShareRepurchaseProgramMember 2023-01-01 2023-03-31 0001001385 us-gaap:CostOfSalesMember 2024-01-01 2024-03-31 0001001385 us-gaap:CostOfSalesMember 2023-01-01 2023-03-31 0001001385 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2024-01-01 2024-03-31 0001001385 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2023-01-01 2023-03-31 0001001385 nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember 2023-12-31 0001001385 nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember 2024-01-01 2024-03-31 0001001385 nwpx:RestrictedStockUnitsMember 2024-01-01 2024-03-31 0001001385 nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember 2024-03-31 0001001385 us-gaap:PerformanceSharesMember 2024-03-31 0001001385 srt:MinimumMember us-gaap:PerformanceSharesMember 2024-01-01 2024-03-31 0001001385 srt:MaximumMember us-gaap:PerformanceSharesMember 2024-01-01 2024-03-31 0001001385 nwpx:LowerWillametteGroupMember 2017-01-31 0001001385 nwpx:PortlandHarborSuperfundSiteMember 2017-01-01 2017-01-31 0001001385 nwpx:PortlandHarborSuperfundSiteMember 2017-01-31 0001001385 nwpx:PortlandHarborNaturalreSourcesTrusteeCouncilMember 2014-06-30 0001001385 us-gaap:CapitalAdditionsMember 2024-03-31 0001001385 us-gaap:TransferredOverTimeMember 2024-01-01 2024-03-31 0001001385 us-gaap:TransferredOverTimeMember 2023-01-01 2023-03-31 0001001385 us-gaap:TransferredAtPointInTimeMember 2024-01-01 2024-03-31 0001001385 us-gaap:TransferredAtPointInTimeMember 2023-01-01 2023-03-31 0001001385 2024-04-01 2024-03-31 0001001385 2025-01-01 2024-03-31 0001001385 us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember 2023-12-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2023-12-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2023-12-31 0001001385 us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember 2024-01-01 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2024-01-01 2024-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2024-01-01 2024-03-31 0001001385 us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2024-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2024-03-31 0001001385 us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember 2022-12-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2022-12-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2022-12-31 0001001385 us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember 2023-01-01 2023-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2023-01-01 2023-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2023-01-01 2023-03-31 0001001385 us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember 2023-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2023-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2023-03-31 0001001385 us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember 2024-01-01 2024-03-31 0001001385 us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember 2023-01-01 2023-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2024-01-01 2024-03-31 0001001385 us-gaap:ForeignExchangeForwardMember us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2023-01-01 2023-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2024-01-01 2024-03-31 0001001385 us-gaap:InterestRateSwapMember us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember 2023-01-01 2023-03-31 0001001385 us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember 2024-01-01 2024-03-31 0001001385 us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember 2023-01-01 2023-03-31 0001001385 us-gaap:OperatingSegmentsMember nwpx:EngineeredSteelPressurePipeMember 2024-01-01 2024-03-31 0001001385 us-gaap:OperatingSegmentsMember nwpx:EngineeredSteelPressurePipeMember 2023-01-01 2023-03-31 0001001385 us-gaap:OperatingSegmentsMember nwpx:PrecastInfrastructureAndEngineeredSystemsMember 2024-01-01 2024-03-31 0001001385 us-gaap:OperatingSegmentsMember nwpx:PrecastInfrastructureAndEngineeredSystemsMember 2023-01-01 2023-03-31 0001001385 us-gaap:OperatingSegmentsMember 2024-01-01 2024-03-31 0001001385 us-gaap:OperatingSegmentsMember 2023-01-01 2023-03-31 shares iso4217:USD iso4217:USD shares pure iso4217:CAD iso4217:EUR utr:Y thunderdome:item 0001001385 Northwest Pipe Co. false --12-31 Q1 2024 159000 121000 129510 126359 0.01 0.01 10000000 10000000 0 0 0 0 0.01 0.01 15000000 15000000 9872897 9872897 9985580 9985580 -0 -11000 -8000 -0 -5000 -58000 6600000 1100000 6400000 1100000 6700000 1100000 6400000 1100000 1 0.64 P0Y9M 0.28 P1Y 2019 2020 2021 2022 2023 2024 false false false false 10-Q true 2024-03-31 false 0-27140 OR 93-0557988 201 NE Park Plaza Drive, Suite 100 Vancouver WA 98684 360 397‑6250 Common Stock, par value $0.01 per share NWPX NASDAQ Yes Yes Accelerated Filer false false false 9915489 113215000 99097000 93081000 82520000 20134000 16577000 11444000 11866000 8690000 4711000 7000 -29000 1474000 1369000 7223000 3313000 1985000 951000 5238000 2362000 0.53 0.24 0.52 0.23 9916000 9940000 10045000 10087000 5238000 2362000 -21000 -29000 10000 22000 24000 -178000 55000 -127000 5293000 2235000 4262000 4068000 52396000 47645000 135715000 120516000 96481000 91229000 7840000 9026000 296694000 272484000 145323000 143955000 86978000 88155000 55504000 55504000 30066000 31074000 6735000 6709000 621300000 597881000 10756000 10756000 26365000 31142000 22489000 27913000 18596000 21450000 5067000 4933000 83273000 96194000 89863000 54485000 84211000 85283000 10863000 10942000 10476000 10617000 278686000 257521000 0 0 99000 100000 126057000 129095000 217363000 212125000 -905000 -960000 342614000 340360000 621300000 597881000 9985580 100000 129095000 212125000 -960000 340360000 0 0 5238000 0 5238000 -0 -0 -0 -21000 -21000 0 0 0 10000 10000 0 0 0 24000 24000 14692 320000 320000 127375 1000 3743000 -0 -0 3744000 0 1025000 0 0 1025000 9872897 99000 126057000 217363000 -905000 342614000 9927360 99000 127911000 191053000 -789000 318274000 0 0 2362000 0 2362000 -0 -0 -0 -29000 -29000 0 0 0 22000 22000 0 0 0 -178000 -178000 70932 -1000 423000 422000 0 990000 0 0 990000 9998292 100000 128478000 193415000 -916000 321077000 5238000 2362000 3405000 2799000 1008000 1061000 -80000 635000 1025000 990000 -159000 -473000 4965000 -11026000 18054000 -13775000 5252000 -59000 -2616000 -2359000 -4777000 -1518000 -6412000 -7739000 -26089000 26282000 4570000 4382000 -48000 -0 -4522000 -4382000 64664000 34602000 29286000 55682000 381000 145000 320000 422000 3872000 -0 30805000 -21647000 194000 253000 4068000 3681000 4262000 3934000 783000 750000 303000 0 233000 394000 <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b><em style="font: inherit;">1.</em></b></p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b>Organization and Basis of Presentation</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">Northwest Pipe Company (collectively with its subsidiaries, the “Company”) is a leading manufacturer of water-related infrastructure products, and operates in two segments, Engineered Steel Pressure Pipe (“SPP”) and Precast Infrastructure and Engineered Systems (“Precast”). This segment presentation is consistent with how the Company’s chief operating decision maker, its Chief Executive Officer, evaluates the performance of the Company and makes decisions regarding the allocation of resources. See Note <em style="font: inherit;">12,</em> “Segment Information” for detailed descriptions of these segments.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">In addition to being the largest manufacturer of engineered steel water pipeline systems in North America, the Company manufactures stormwater and wastewater technology products; high-quality precast and reinforced concrete products; pump lift stations; steel casing pipe, bar-wrapped concrete cylinder pipe, and <em style="font: inherit;">one</em> of the largest offerings of pipeline system joints, fittings, and specialized components. Strategically positioned to meet growing water and wastewater infrastructure needs, the Company provides solution-based products for a wide range of markets under the ParkUSA, Geneva Pipe and Precast, Permalok®, and Northwest Pipe Company lines. The Company is headquartered in Vancouver, Washington, and has 13 manufacturing facilities across North America.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The Condensed Consolidated Financial Statements are expressed in United States Dollars and include the accounts of the Company and its subsidiaries over which the Company exercises control as of the financial statement date. Intercompany accounts and transactions have been eliminated.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The accompanying unaudited interim Condensed Consolidated Financial Statements have been prepared in conformity with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial information. The financial information as of <em style="font: inherit;"> December </em><em style="font: inherit;">31,</em> <em style="font: inherit;">2023</em> is derived from the audited Consolidated Financial Statements presented in the Company’s Annual Report on Form <em style="font: inherit;">10‑K</em> for the year ended <em style="font: inherit;"> December </em><em style="font: inherit;">31,</em> <em style="font: inherit;">2023</em> (“<em style="font: inherit;">2023</em> Form <em style="font: inherit;">10‑K”</em>). Certain information and footnote disclosures normally included in consolidated financial statements prepared in accordance with U.S. GAAP have been condensed or omitted, pursuant to the rules and regulations of the Securities and Exchange Commission and the accounting standards for interim financial statements. In the opinion of management, the accompanying Condensed Consolidated Financial Statements include all adjustments necessary (which are of a normal and recurring nature) for the fair statement of the results of the interim periods presented. The Condensed Consolidated Financial Statements should be read in conjunction with the Consolidated Financial Statements and Notes thereto together with management’s discussion and analysis of financial condition and results of operations contained in the Company’s <em style="font: inherit;">2023</em> Form <em style="font: inherit;">10‑K.</em></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">Operating results for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em> are <em style="font: inherit;">not</em> necessarily indicative of the results that <em style="font: inherit;"> may </em>be expected for the entire fiscal year ending <em style="font: inherit;"> December </em><em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em>.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> 2 13 <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b><em style="font: inherit;">2.</em></b></p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b>Inventories</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">Inventories consist of the following (in thousands):</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>March 31, 2024</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>December 31, 2023</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Raw materials</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">71,801</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">68,110</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Work-in-process</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,084</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8,912</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Finished goods</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">13,274</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">11,911</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Supplies</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,322</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,296</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">96,481</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">91,229</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>March 31, 2024</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>December 31, 2023</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Raw materials</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">71,801</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">68,110</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Work-in-process</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,084</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8,912</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Finished goods</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">13,274</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">11,911</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Supplies</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,322</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,296</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">96,481</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">91,229</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> </tbody></table> 71801000 68110000 9084000 8912000 13274000 11911000 2322000 2296000 96481000 91229000 <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b><em style="font: inherit;">3.</em></b></p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b>Fair Value Measurements</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability, in the principal or most advantageous market for the asset or liability, in an orderly transaction between market participants at the measurement date.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The authoritative guidance establishes a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into <em style="font: inherit;">three</em> broad levels. These levels are: Level <em style="font: inherit;">1</em> (inputs are quoted prices in active markets for identical assets or liabilities); Level <em style="font: inherit;">2</em> (inputs are other than quoted prices that are observable, either directly or indirectly through corroboration with observable market data); and Level <em style="font: inherit;">3</em> (inputs are unobservable, with little or <em style="font: inherit;">no</em> market data that exists, such as internal financial forecasts). The Company is required to maximize the use of observable inputs and minimize the use of unobservable inputs when measuring fair value.</p> <p style="text-align: justify; font-size: 10pt; font-family: &quot;Times New Roman&quot;; margin: 0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The following table summarizes information regarding the Company’s financial assets and liabilities that are measured at fair value on a recurring basis (in thousands):</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Total</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Level 1</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Level 2</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Level 3</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>As of March 31, 2024</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Financial assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Deferred compensation plan</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,960</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,485</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">475</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">14</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">14</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Interest rate swaps</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">358</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">358</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total financial assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,332</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">3,485</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">847</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>As of December 31, 2023</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Financial assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Deferred compensation plan</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,912</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,391</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">521</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">42</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">42</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Interest rate swaps</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">326</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">326</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total financial assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,280</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">3,391</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">889</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Financial liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(115</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(115</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The deferred compensation plan assets consist of cash and several publicly traded stock and bond mutual funds, valued using quoted market prices in active markets, classified as Level <em style="font: inherit;">1</em> within the fair value hierarchy, as well as guaranteed investment contracts, valued at principal plus interest credited at contract rates, classified as Level <em style="font: inherit;">2</em> within the fair value hierarchy. Deferred compensation plan assets are included within Other assets in the Condensed Consolidated Balance Sheets.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The foreign currency forward contracts and interest rate swaps are derivatives valued using various pricing models or discounted cash flow analyses that incorporate observable market parameters, such as interest rate yield curves and currency rates, and are classified as Level <em style="font: inherit;">2</em> within the fair value hierarchy. Derivative valuations incorporate credit risk adjustments that are necessary to reflect the probability of default by the counterparty or the Company. The foreign currency forward contracts and interest rate swaps are presented at their gross fair values. Foreign currency forward contract and interest rate swap assets are included within Prepaid expenses and other and foreign currency forward contract liabilities are included within Accrued liabilities in the Condensed Consolidated Balance Sheets.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The net carrying amounts of cash and cash equivalents, trade and other receivables, accounts payable, accrued liabilities, and current debt approximate fair value due to the short-term nature of these instruments. The net carrying amount of the borrowings on the line of credit approximates fair value due to its variable interest rate based on market.</p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Total</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Level 1</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Level 2</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Level 3</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>As of March 31, 2024</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Financial assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Deferred compensation plan</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,960</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,485</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">475</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">14</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">14</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Interest rate swaps</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">358</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">358</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total financial assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,332</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">3,485</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">847</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>As of December 31, 2023</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Financial assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Deferred compensation plan</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,912</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,391</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">521</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">42</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">42</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Interest rate swaps</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">326</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">326</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total financial assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,280</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">3,391</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">889</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Financial liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(115</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(115</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> </tbody></table> 3960000 3485000 475000 0 14000 0 14000 0 358000 0 358000 0 4332000 3485000 847000 0 3912000 3391000 521000 0 -42000 -0 -42000 -0 326000 0 326000 0 4280000 3391000 889000 0 -115000 0 -115000 0 <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;text-align:justify;margin:0pt;"><b><em style="font: inherit;">4.</em></b></p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;text-align:justify;margin:0pt;"><b>Derivative Instruments and Hedging Activities</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">In the normal course of business, the Company is exposed to interest rate and foreign currency exchange rate fluctuations. Consistent with the Company’s strategy for financial risk management, the Company has established a program that utilizes foreign currency forward contracts and interest rate swaps to offset the risks associated with the effects of these exposures.</p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">For each derivative entered into in which the Company seeks to obtain cash flow hedge accounting treatment, the Company formally documents all relationships between hedging instruments and hedged items, as well as its risk management objective and strategy for undertaking the hedge transaction, the nature of the risk being hedged, how the hedging instrument’s effectiveness in offsetting the hedged risk will be assessed prospectively and retrospectively, and a description of the method of measuring ineffectiveness. This process includes linking all derivatives to specific firm commitments or forecasted transactions and designating the derivatives as cash flow hedges. The Company also formally assesses, both at the hedge’s inception and on an ongoing basis, whether the derivatives that are used in hedging transactions are highly effective in offsetting changes in cash flows of hedged items. The effective portion of these hedged items is reflected in Unrealized gain (loss) on cash flow hedges on the Condensed Consolidated Statements of Comprehensive Income. If it is determined that a derivative is <em style="font: inherit;">not</em> highly effective, or that it has ceased to be a highly effective hedge, the Company is required to discontinue hedge accounting with respect to that derivative prospectively.</p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em>, the total notional amount of the foreign currency forward contracts was $4.9 million (<span style="-sec-ix-hidden:c111756599">CAD$6.6</span> million) and $1.1 million (<span style="-sec-ix-hidden:c111756601">EUR€1.1</span> million), which included $4.8 million (<span style="-sec-ix-hidden:c111756603">CAD$6.4</span> million) and $1.1 million (<span style="-sec-ix-hidden:c111756605">EUR€1.1</span> million) of foreign currency forward contracts <em style="font: inherit;">not</em> designated as cash flow hedges. As of <em style="font: inherit;"> December</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2023</em>, the total notional amount of the foreign currency forward contracts was $5.1 million (<span style="-sec-ix-hidden:c111756610">CAD$6.7</span> million) and $1.2 million (<span style="-sec-ix-hidden:c111756612">EUR€1.1</span> million), which included $4.9 million (<span style="-sec-ix-hidden:c111756614">CAD$6.4</span> million) and $1.2 million (<span style="-sec-ix-hidden:c111756616">EUR€1.1</span> million) of foreign currency forward contracts <em style="font: inherit;">not</em> designated as cash flow hedges. As of <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em>, the Company’s foreign currency forward contracts mature at various dates through <em style="font: inherit;"> April 2025</em> and are subject to an enforceable master netting arrangement.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The Company has entered into interest rate swaps which effectively convert a portion of its variable-rate debt to fixed-rate debt, and are designated as cash flow hedges. For <em style="font: inherit;">one</em> cash flow hedge, the Company receives floating interest payments monthly based on Secured Overnight Finance Rate (“SOFR”) and pays a fixed rate of 1.941% to the counterparty on the total notional amount of $1.7 million and $6.7 million as of <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em> and <em style="font: inherit;"> December</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2023</em>, respectively, which amortizes ratably on a monthly basis to <em style="font: inherit;">zero</em> by the <em style="font: inherit;"> April 2024 </em>maturity date. For a <em style="font: inherit;">second</em> cash flow hedge, beginning <em style="font: inherit;"> April </em><em style="font: inherit;">3,</em> <em style="font: inherit;">2023,</em> the Company receives floating interest payments monthly based on the SOFR Average <em style="font: inherit;">30</em> day and pays a fixed rate of 2.96% to the counterparty on the total notional amount of $12.3 million and $13.0 million as of <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em> and <em style="font: inherit;"> December</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2023</em>, respectively, which amortizes ratably on a monthly basis to <em style="font: inherit;">zero</em> by the <em style="font: inherit;"> April 2028 </em>maturity date.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The following table summarizes the gains (losses) recognized on derivatives in the Condensed Consolidated Financial Statements (in thousands):</p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Foreign currency forward contracts:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">100</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(282</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(87</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Interest rate swaps:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Interest expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">120</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">158</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">220</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(211</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">)</td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">As of <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em>, unrealized pretax gains (losses) on outstanding cash flow hedges in Accumulated other comprehensive loss was $0.4 million, of which approximately $0 and $0.2 million are expected to be reclassified to Net sales and Interest expense, respectively, within the next <em style="font: inherit;">twelve</em> months as a result of underlying hedged transactions also being recorded in these line items. See Note <em style="font: inherit;">10,</em> “Accumulated Other Comprehensive Loss” for additional quantitative information regarding foreign currency forward contract and interest rate swap gains and losses.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> 4900000 1100000 4800000 1100000 5100000 1200000 4900000 1200000 0.01941 1700000 6700000 0.0296 12300000 13000000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Foreign currency forward contracts:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">100</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(282</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(87</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Interest rate swaps:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Interest expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">120</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">158</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">220</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(211</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">)</td></tr> </tbody></table> 100000 -282000 0 -87000 120000 158000 220000 -211000 400000 0 200000 <table border="0" cellpadding="0" cellspacing="0" style="font-size: 10pt; width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; margin: 0pt;"><b><em style="font: inherit;">5.</em></b></p> </td><td style="width: auto;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; margin: 0pt;"><b>Stockholders’ Equity</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"><i><b>Share Repurchase Program</b></i></p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">On <em style="font: inherit;"> November </em><em style="font: inherit;">2,</em> <em style="font: inherit;">2023,</em> the Company announced its authorization of a share repurchase program of up to $30 million of its outstanding common stock. The program does <em style="font: inherit;">not</em> commit to any particular timing or quantity of purchases, and the program <em style="font: inherit;"> may </em>be suspended or discontinued at any time. Under the program, shares <em style="font: inherit;"> may </em>be purchased in open market, including through plans adopted pursuant to Rule <em style="font: inherit;">10b5‑1</em> of the Securities Exchange Act of <em style="font: inherit;">1934,</em> as amended, or in privately negotiated transactions administered by its broker, D.A. Davidson Companies. At this time, the Company has elected to limit its share repurchase transactions to only those under the Rule <em style="font: inherit;">10b5‑1</em> trading plan it executed in <em style="font: inherit;"> November 2023, </em>which designates up to $10 million for daily share repurchases with volumes that fluctuate with changes in the trading price of its common stock.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">During the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em>, the Company repurchased approximately 127,000 shares of the Company’s common stock for an aggregate amount of $3.7 million. There were no share repurchases authorized during the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2023</em>. All shares reacquired in connection with the Company’s share repurchase program are retired and treated as authorized and unissued shares. As of <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em>, <em style="font: inherit;">$25.4</em> million of the share repurchase authorization remained available for repurchases under this program.</p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"> </p> 30000000 10000000 127000 3700000 0 <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b><em style="font: inherit;">6.</em></b></p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b>Share-based Compensation</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The Company has one active stock incentive plan for employees and directors, the <em style="font: inherit;">2022</em> Stock Incentive Plan, which provides for awards of stock options to purchase shares of common stock, stock appreciation rights, restricted and unrestricted shares of common stock, restricted stock units (“RSUs”), and performance share awards (“PSAs”). In addition, the Company has <span style="-sec-ix-hidden:c111756705">one</span> inactive stock incentive plan, the <em style="font: inherit;">2007</em> Stock Incentive Plan, under which previously granted awards remain outstanding.</p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The Company recognizes the compensation cost of employee and director services received in exchange for awards of equity instruments based on the grant date estimated fair value of the awards. The Company estimates the fair value of RSUs and PSAs using the value of the Company’s stock on the date of grant. Share-based compensation cost is recognized over the period during which the employee or director is required to provide service in exchange for the award and, as forfeitures occur, the associated compensation cost recognized to date is reversed. For awards with performance-based payout conditions, the Company recognizes compensation cost based on the probability of achieving the performance conditions, with changes in expectations recognized as an adjustment to earnings in the period of change. Any recognized compensation cost is reversed if the conditions are ultimately <em style="font: inherit;">not</em> met.</p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The following table summarizes share-based compensation expense recorded (in thousands):</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Cost of sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">352</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">275</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Selling, general, and administrative expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">673</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">715</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1,025</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">990</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b><i>Restricted Stock Units and Performance Share Awards</i></b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The Company’s stock incentive plan provides for equity instruments, such as RSUs and PSAs, which grant the right to receive a specified number of shares at specified times. RSUs and PSAs are service-based awards that vest according to the terms of the grant. PSAs have performance-based payout conditions.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The following table summarizes the Company’s RSU and PSA activity:</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Number of RSUs and PSAs (1)</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Weighted-Average Grant Date Fair Value</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Unvested RSUs and PSAs as of December 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">226,391</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">29.66</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">RSUs and PSAs granted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">120,143</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">34.68</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">RSUs vested</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(25,819</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">30.35</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Unvested RSUs and PSAs as of March 31, 2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">320,715</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">31.49</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;">(<em style="font: inherit;">1</em>)</p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;text-align:justify;margin:0pt;">The number of PSAs disclosed in this table are at the target level of 100%.</p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The unvested balance of RSUs and PSAs as of <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em> includes approximately 260,000 PSAs at the target level of <em style="font: inherit;">100%.</em> The vesting of these awards is subject to the achievement of specified performance-based conditions, and the actual number of common shares that will ultimately be issued will be determined by multiplying this number of PSAs by a payout percentage ranging from 0% to 200%.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">Based on the estimated level of achievement of the performance targets associated with the PSAs as of <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em>, unrecognized compensation expense related to the unvested portion of the Company’s RSUs and PSAs was $6.9 million, which is expected to be recognized over a weighted-average period of 2.0 years.</p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"> </p> 1 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Cost of sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">352</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">275</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Selling, general, and administrative expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">673</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">715</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1,025</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">990</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> </tbody></table> 352000 275000 673000 715000 1025000 990000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Number of RSUs and PSAs (1)</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Weighted-Average Grant Date Fair Value</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Unvested RSUs and PSAs as of December 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">226,391</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">29.66</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">RSUs and PSAs granted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">120,143</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">34.68</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">RSUs vested</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(25,819</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">30.35</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Unvested RSUs and PSAs as of March 31, 2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">320,715</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">31.49</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> </tbody></table> 226391 29.66 120143 34.68 25819 30.35 320715 31.49 1 260000 0 2 6900000 P2Y <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b><em style="font: inherit;">7.</em></b></p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b>Commitments and Contingencies</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"><b><i>Portland Harbor Superfund Site</i></b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">In <em style="font: inherit;">2000,</em> a section of the lower Willamette River known as the Portland Harbor Superfund Site was included on the National Priorities List at the request of the United States Environmental Protection Agency (“EPA”). While the Company’s Portland, Oregon manufacturing facility does <em style="font: inherit;">not</em> border the Willamette River, an outfall from the facility’s stormwater system drains into a neighboring property’s privately owned stormwater system and slip. Also in <em style="font: inherit;">2000,</em> the Company was notified by the EPA and the Oregon Department of Environmental Quality (“ODEQ”) of potential liability under the Comprehensive Environmental Response, Compensation, and Liability Act (“CERCLA”). A remedial investigation and feasibility study of the Portland Harbor Superfund Site was directed by a group of 14 potentially responsible parties known as the Lower Willamette Group under agreement with the EPA. The EPA finalized the remedial investigation report in <em style="font: inherit;">2016,</em> and the feasibility study in <em style="font: inherit;">2016,</em> which identified multiple remedial alternatives. In <em style="font: inherit;">2017,</em> the EPA issued its Record of Decision selecting the remedy for cleanup at the Portland Harbor Superfund Site, which it believes will cost approximately $1 billion at net present value and 13 years to complete. The EPA has <em style="font: inherit;">not</em> yet determined who is responsible for the costs of cleanup or how the cleanup costs will be allocated among the more than 150 potentially responsible parties. Because of the large number of potentially responsible parties and the variability in the range of remediation alternatives, the Company is unable to estimate an amount or an amount within a range of costs for its obligation with respect to the Portland Harbor Superfund Site matters, and <em style="font: inherit;">no</em> further adjustment to the Consolidated Financial Statements has been recorded as of the date of this filing.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The ODEQ is separately providing oversight of voluntary investigations and source control activities by the Company involving the Company’s site, which are focused on controlling any current “uplands” releases of contaminants into the Willamette River. <em style="font: inherit;">No</em> liabilities have been established in connection with these investigations because the extent of contamination and the Company’s responsibility for the contamination have <em style="font: inherit;">not</em> yet been determined.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">Concurrent with the activities of the EPA and the ODEQ, the Portland Harbor Natural Resources Trustee Council (“Trustees”) sent some or all of the same parties, including the Company, a notice of intent to perform a Natural Resource Damage Assessment (“NRDA”) for the Portland Harbor Superfund Site to determine the nature and extent of natural resource damages under CERCLA Section <em style="font: inherit;">107.</em> The Trustees for the Portland Harbor Superfund Site consist of representatives from several Northwest Indian Tribes, <em style="font: inherit;">three</em> federal agencies, and <em style="font: inherit;">one</em> state agency. The Trustees act independently of the EPA and the ODEQ. The Trustees have encouraged potentially responsible parties to voluntarily participate in the funding of their injury assessments and several of those parties have agreed to do so. In <em style="font: inherit;">2014,</em> the Company agreed to participate in the injury assessment process, which included funding $0.4 million of the assessment. The Company has <em style="font: inherit;">not</em> assumed any additional payment obligations or liabilities with the participation with the NRDA, nor does the Company expect to incur significant future costs in the resolution of the NRDA.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">In <em style="font: inherit;">2017,</em> the Confederated Tribes and Bands of the Yakama Nation, a Trustee until they withdrew from the council in <em style="font: inherit;">2009,</em> filed a complaint against the potentially responsible parties including the Company to recover costs related to their own injury assessment and compensation for natural resources damages. The case has been stayed until <em style="font: inherit;">2025,</em> and the Company does <em style="font: inherit;">not</em> have sufficient information at this time to determine the likelihood of a loss in this matter or the amount of damages that could be allocated to the Company.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The Company has insurance policies for defense costs, as well as indemnification policies it believes will provide reimbursement for the remediation assessed. However, the Company can provide <em style="font: inherit;">no</em> assurance that those policies will cover all of the costs which the Company <em style="font: inherit;"> may </em>incur.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"><b><i>All Sites</i></b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The Company operates its facilities under numerous governmental permits and licenses relating to air emissions, stormwater runoff, and other environmental matters. The Company’s operations are also governed by many other laws and regulations, including those relating to workplace safety and worker health, principally the Occupational Safety and Health Act and regulations thereunder which, among other requirements, establish noise and dust standards. The Company believes it is in material compliance with its permits and licenses and these laws and regulations, and the Company does <em style="font: inherit;">not</em> believe that future compliance with such laws and regulations will have a material adverse effect on its financial position, results of operations, or cash flows.</p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b><i>Other Contingencies and Legal Proceedings</i></b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">From time to time, the Company is party to a variety of legal actions, including claims, suits, complaints, and investigations arising out of the ordinary course of its business. The Company maintains insurance coverage against potential claims in amounts that are believed to be adequate. To the extent that insurance does <em style="font: inherit;">not</em> cover legal, defense, and indemnification costs associated with a loss contingency, the Company records accruals when such losses are considered probable and reasonably estimable. The Company believes that it is <em style="font: inherit;">not</em> presently a party to legal actions, the outcomes of which would have a material adverse effect on its business, financial condition, results of operations, or cash flows.</p> <p style="text-align: justify; font-size: 10pt; font-family: &quot;Times New Roman&quot;; margin: 0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"><b><i>Commitments</i></b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em>, the Company’s commitments include approximately $1.1 million remaining relating to its investment in the primary component of the new reinforced concrete pipe mill for which the Company has <em style="font: inherit;">not</em> yet received the equipment and approximately $4.6 million remaining relating to the construction of a building for the new mill at the Company’s facility in Salt Lake City, Utah.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"><b><i>Guarantees</i></b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The Company has entered into certain letters of credit that total $1.1 million as of <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em>. The letters of credit relate to workers’ compensation insurance.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> 14 1000000000 P13Y 150 400000 1100000 4600000 1100000 <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b><em style="font: inherit;">8.</em></b></p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b>Revenue</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The Company manufactures water infrastructure steel pipe products, which are generally made to custom specifications for installation contractors serving projects funded by public water agencies, as well as precast and reinforced concrete products. Generally, each of the Company’s contracts with its customers contains a single performance obligation, as the promise to transfer products is <em style="font: inherit;">not</em> separately identifiable from other promises in the contract and, therefore, is <em style="font: inherit;">not</em> distinct. The Company generally does <em style="font: inherit;">not</em> recognize revenue on a contract until the contract has approval and commitment from both parties, the contract rights and payment terms can be identified, the contract has commercial substance, and its collectability is probable.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">SPP revenue for water infrastructure steel pipe products is recognized over time as the manufacturing process progresses because of the Company’s right to payment for work performed to date plus a reasonable profit on cancellations for unique products that have <em style="font: inherit;">no</em> alternative use to the Company. Revenue is measured by the costs incurred to date relative to the estimated total direct costs to fulfill each contract (cost-to-cost method). Contract costs include all material, labor, and other direct costs incurred in satisfying the performance obligations. The cost of steel material is recognized as a contract cost when the steel is introduced into the manufacturing process. Changes in job performance, job conditions, and estimated profitability, including those arising from contract change orders, contract penalty provisions, foreign currency exchange rate movements, changes in raw materials costs, and final contract settlements <em style="font: inherit;"> may </em>result in revisions to estimates of revenue, costs, and income, and are recognized in the period in which the revisions are determined. Provisions for losses on uncompleted contracts, included in Accrued liabilities, are estimated by comparing total estimated contract revenue to the total estimated contract costs and a loss is recognized during the period in which it becomes probable and can be reasonably estimated.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">Net revisions in contract estimates resulted in an increase in SPP net sales of $1.9 million and $0.4 million for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em> and <em style="font: inherit;">2023</em>, respectively.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">Precast revenue for water infrastructure concrete pipe and precast concrete products is recognized at the time control is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for the products. All variable consideration that <em style="font: inherit;"> may </em>affect the total transaction price, including contractual discounts, returns, and credits, is included in net sales. Estimates for variable consideration are based on historical experience, anticipated performance, and management’s judgment. The Company’s contracts do <em style="font: inherit;">not</em> contain significant financing.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b><i>Disaggregation of Revenue</i></b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The following table disaggregates revenue by recognition over time or at a point in time, as the Company believes it best depicts how the nature, amount, timing, and uncertainty of its revenue and cash flows are affected by economic factors (in thousands):</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Over time</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">80,007</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">63,546</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Point in time</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">33,208</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">35,551</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">113,215</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">99,097</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"><b><i>Contract Assets and Contract Liabilities</i></b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">Contract assets primarily represent revenue earned over time but <em style="font: inherit;">not</em> yet billable based on the terms of the contracts. These amounts will be billed based on the terms of the contracts, which can include certain milestones, partial shipments, or completion of the contracts. Payment terms of amounts billed vary based on the customer, but are typically due within <em style="font: inherit;">30</em> days of invoicing. Contract liabilities represent advance billings on contracts, typically for steel.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The difference between the opening and closing balances of the Company’s contract assets and contract liabilities primarily results from the timing difference between the Company’s performance and billings.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The following is a summary of the changes in contract assets (in thousands):</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td colspan="6" rowspan="1" style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; text-align: center; border-bottom: 1px solid rgb(0, 0, 0);"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Balance, beginning of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">120,516</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">121,778</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 64%;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Revenue recognized in advance of billings</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">70,640</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">53,048</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 64%;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Billings</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(54,772</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(56,916</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; width: 64%;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(669</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(1,569</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Balance, end of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">135,715</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">116,341</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">The following is a summary of the changes in contract liabilities (in thousands):</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td colspan="6" rowspan="1" style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; text-align: center; border-bottom: 1px solid rgb(0, 0, 0);"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Balance, beginning of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">21,450</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">17,456</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 64%;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Billings</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">6,512</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">18,675</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 64%;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Revenue recognized</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(9,367</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(10,498</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; width: 64%;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">1</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">161</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Balance, end of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">18,596</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">25,794</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"><b><i>Backlog</i></b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">Backlog represents the balance of remaining performance obligations under signed contracts for SPP water infrastructure steel pipe products for which revenue is recognized over time. As of <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em>, backlog was $255 million. The Company expects to recognize approximately <span style="-sec-ix-hidden:c111756811">64%</span> of the remaining performance obligations in <span style="-sec-ix-hidden:c111756812">2024</span>, <span style="-sec-ix-hidden:c111756813">28%</span> in <span style="-sec-ix-hidden:c111756814">2025</span>, and the balance thereafter.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> 1900000 400000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Over time</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">80,007</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">63,546</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Point in time</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">33,208</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">35,551</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">113,215</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">99,097</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> </tbody></table> 80007000 63546000 33208000 35551000 113215000 99097000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td colspan="6" rowspan="1" style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; text-align: center; border-bottom: 1px solid rgb(0, 0, 0);"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Balance, beginning of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">120,516</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">121,778</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 64%;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Revenue recognized in advance of billings</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">70,640</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">53,048</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 64%;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Billings</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(54,772</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(56,916</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; width: 64%;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(669</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(1,569</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Balance, end of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">135,715</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">116,341</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> </tbody></table> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td colspan="6" rowspan="1" style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; text-align: center; border-bottom: 1px solid rgb(0, 0, 0);"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Balance, beginning of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">21,450</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">17,456</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 64%;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Billings</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">6,512</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">18,675</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 64%;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Revenue recognized</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(9,367</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(10,498</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; width: 64%;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">1</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">161</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Balance, end of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">18,596</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">25,794</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> </tbody></table> 120516000 121778000 70640000 53048000 -54772000 -56916000 -669000 -1569000 135715000 116341000 21450000 17456000 6512000 18675000 -9367000 -10498000 1000 161000 18596000 25794000 255000000 <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b><em style="font: inherit;">9.</em></b></p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b>Income Taxes</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The Company files income tax returns in the United States Federal jurisdiction, in a limited number of foreign jurisdictions, and in many state jurisdictions. With few exceptions, the Company is <em style="font: inherit;">no</em> longer subject to United States Federal, state, or foreign income tax examinations for years before <span style="-sec-ix-hidden:c111756865">2019.</span></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The Company recorded income tax expense at an estimated effective income tax rate of 27.5% and 28.7% for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em> and <em style="font: inherit;">2023</em>, respectively. The Company’s estimated effective income tax rates for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em> and <em style="font: inherit;">2023</em> were primarily impacted by non-deductible permanent differences.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> 0.275 0.287 <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b><em style="font: inherit;">10.</em></b></p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b>Accumulated Other Comprehensive Loss</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The following tables summarize changes in the components of Accumulated other comprehensive loss (in thousands). All amounts are net of income tax:</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Pension Liability Adjustment</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Unrealized Loss on Foreign Currency Forward Contracts Designated as Cash Flow Hedges</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Unrealized Gain on Interest Rate Swaps Designated as Cash Flow Hedges</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Total</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Balances, December 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(1,193</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(13</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">246</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(960</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Other comprehensive income before reclassifications</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">18</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">115</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">141</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Amounts reclassified from Accumulated other comprehensive loss</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(91</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(86</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 27pt; text-indent: -9pt;">Net current period other comprehensive income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">21</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">10</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">24</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">55</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Balances, March 31, 2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,172</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">270</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(905</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"><b><em style="font: inherit;">Pension Liability Adjustment</em></b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"><b><em style="font: inherit;">Unrealized Gain on Foreign Currency Forward Contracts Designated as Cash Flow Hedges</em></b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"><b><em style="font: inherit;">Unrealized Gain on Interest Rate Swaps Designated as Cash Flow Hedges</em></b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"><b><em style="font: inherit;">Total</em></b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; width: 36%;"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Balances, December 31, 2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(1,532</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">94</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">649</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(789</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 36%;"> <p style="margin: 0pt 0pt 0pt 18pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: -9pt;">Other comprehensive income (loss) before reclassifications</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">26</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(10</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(59</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(43</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; width: 36%;"> <p style="margin: 0pt 0pt 0pt 18pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: -9pt;">Amounts reclassified from Accumulated other comprehensive loss</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">32</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(119</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(84</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; width: 36%;"> <p style="margin: 0pt 0pt 0pt 27pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: -9pt;">Net current period other comprehensive income (loss)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">29</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">22</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(178</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(127</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; width: 36%;"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Balances, March 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">(1,503</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">116</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">471</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">(916</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;">)</td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The following table provides additional detail about Accumulated other comprehensive loss components that were reclassified to the Condensed Consolidated Statements of Operations (in thousands):</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Amount reclassified from Accumulated Other Comprehensive Loss</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Affected line item in the Condensed Consolidated</em></b></p> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Details about Accumulated Other</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Statements</em></b></p> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Comprehensive Loss Components</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">of Operations</em></b></p> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Pension liability adjustment:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Net periodic pension cost:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Service cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Cost of sales</em></p> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Net of tax</em></p> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Unrealized gain (loss) on foreign currency forward contracts:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Gain (loss) on cash flow hedges</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(2</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">44</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Net sales</em></p> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Loss on cash flow hedges</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(87</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Property and equipment</em></p> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Associated income tax benefit</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">11</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Income tax expense</em></p> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(2</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(32</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Net of tax</em></p> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Unrealized gain on interest rate swaps:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Gain on cash flow hedges</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">120</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">158</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Interest expense</em></p> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Associated income tax expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(29</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(39</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Income tax expense</em></p> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">91</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">119</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Net of tax</em></p> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Total reclassifications for the period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">86</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">84</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"><em style="font: inherit;"> </em></td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Pension Liability Adjustment</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Unrealized Loss on Foreign Currency Forward Contracts Designated as Cash Flow Hedges</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Unrealized Gain on Interest Rate Swaps Designated as Cash Flow Hedges</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Total</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Balances, December 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(1,193</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(13</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">246</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(960</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Other comprehensive income before reclassifications</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">18</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">115</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">141</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Amounts reclassified from Accumulated other comprehensive loss</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(91</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(86</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 27pt; text-indent: -9pt;">Net current period other comprehensive income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">21</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">10</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">24</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">55</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Balances, March 31, 2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,172</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">270</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(905</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"><b><em style="font: inherit;">Pension Liability Adjustment</em></b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"><b><em style="font: inherit;">Unrealized Gain on Foreign Currency Forward Contracts Designated as Cash Flow Hedges</em></b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"><b><em style="font: inherit;">Unrealized Gain on Interest Rate Swaps Designated as Cash Flow Hedges</em></b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"><b><em style="font: inherit;">Total</em></b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0px 0px 1px; margin: 0px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; width: 36%;"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Balances, December 31, 2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(1,532</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">94</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">649</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(789</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 36%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px; width: 36%;"> <p style="margin: 0pt 0pt 0pt 18pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: -9pt;">Other comprehensive income (loss) before reclassifications</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">26</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(10</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(59</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px; margin: 0px;">(43</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; width: 36%;"> <p style="margin: 0pt 0pt 0pt 18pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: -9pt;">Amounts reclassified from Accumulated other comprehensive loss</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">32</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(119</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(84</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; width: 36%;"> <p style="margin: 0pt 0pt 0pt 27pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: -9pt;">Net current period other comprehensive income (loss)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">29</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">22</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(178</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(127</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 36%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; padding: 0px; margin: 0px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; width: 36%;"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Balances, March 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">(1,503</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">116</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">471</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">(916</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;">)</td></tr> </tbody></table> -1193000 -13000 246000 -960000 18000 8000 115000 141000 -3000 -2000 91000 86000 21000 10000 24000 55000 -1172000 -3000 270000 -905000 -1532000 94000 649000 -789000 26000 -10000 -59000 -43000 -3000 -32000 119000 84000 29000 22000 -178000 -127000 -1503000 116000 471000 -916000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Amount reclassified from Accumulated Other Comprehensive Loss</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Affected line item in the Condensed Consolidated</em></b></p> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Details about Accumulated Other</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Statements</em></b></p> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Comprehensive Loss Components</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">of Operations</em></b></p> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Pension liability adjustment:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Net periodic pension cost:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Service cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Cost of sales</em></p> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Net of tax</em></p> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Unrealized gain (loss) on foreign currency forward contracts:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Gain (loss) on cash flow hedges</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(2</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">44</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Net sales</em></p> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Loss on cash flow hedges</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(87</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Property and equipment</em></p> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Associated income tax benefit</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">11</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Income tax expense</em></p> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(2</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(32</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Net of tax</em></p> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Unrealized gain on interest rate swaps:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Gain on cash flow hedges</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">120</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">158</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Interest expense</em></p> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Associated income tax expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(29</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(39</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Income tax expense</em></p> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">91</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">119</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Net of tax</em></p> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 48%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Total reclassifications for the period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">86</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">84</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 19%;"><em style="font: inherit;"> </em></td></tr> </tbody></table> -3000 -3000 -3000 -3000 -2000 44000 0 -87000 -0 -11000 -2000 -32000 120000 158000 29000 39000 91000 119000 86000 84000 <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b><em style="font: inherit;">11.</em></b></p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b>Net Income per Share</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">Basic net income per share is computed by dividing the net income by the weighted-average number of shares of common stock outstanding during the period. Diluted net income per share is computed by giving effect to all dilutive potential shares of common stock, including RSUs and PSAs, assumed to be outstanding during the period using the treasury stock method. Performance-based PSAs are considered dilutive when the related performance conditions have been met assuming the end of the reporting period represents the end of the performance period. In periods with a net loss, all potential shares of common stock are excluded from the computation of diluted net loss per share as the impact would be antidilutive.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">Net income per basic and diluted weighted-average common share outstanding was calculated as follows (in thousands, except per share amounts):</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Net income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5,238</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2,362</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Basic weighted-average common shares outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,916</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,940</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Effect of potentially dilutive common shares <sup style="vertical-align:top;line-height:120%;">(1)</sup></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">129</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">147</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Diluted weighted-average common shares outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">10,045</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">10,087</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Net income per common share:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Basic</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">0.53</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">0.24</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Diluted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">0.52</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">0.23</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 9pt;"> </td><td style="width: 18pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;">(<em style="font: inherit;">1</em>)</p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;text-align:justify;margin:0pt;">The weighted-average number of antidilutive shares <em style="font: inherit;">not</em> included in the computation of diluted net income per share was approximately 6,000 for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em>. There were no antidilutive shares for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2023</em>.</p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended March 31,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Net income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5,238</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2,362</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Basic weighted-average common shares outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,916</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,940</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Effect of potentially dilutive common shares <sup style="vertical-align:top;line-height:120%;">(1)</sup></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">129</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">147</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Diluted weighted-average common shares outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">10,045</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">10,087</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Net income per common share:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Basic</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">0.53</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">0.24</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt 0pt 0pt 9pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Diluted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">0.52</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">0.23</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td></tr> </tbody></table> 5238000 2362000 9916000 9940000 129000 147000 10045000 10087000 0.53 0.24 0.52 0.23 6000 0 <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b><em style="font: inherit;">12.</em></b></p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b>Segment Information</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The operating segments reported below are based on the nature of the products sold and the manufacturing process used by the Company and are the segments of the Company for which separate financial information is available and for which operating results are regularly evaluated by the Company’s chief operating decision maker, its Chief Executive Officer, to make decisions about resources to be allocated to the segment and assess its performance. Management evaluates segment performance based on gross profit. The Company does <em style="font: inherit;">not</em> allocate selling, general, and administrative expenses, interest, other non-operating income or expense items, or taxes to segments.</p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The Company’s Engineered Steel Pressure Pipe (SPP) segment manufactures large-diameter, high-pressure steel pipeline systems for use in water infrastructure applications, which are primarily related to drinking water systems. These products are also used for hydroelectric power systems, wastewater systems, seismic resiliency, and other applications. In addition, SPP makes products for industrial plant piping systems and certain structural applications. SPP has manufacturing facilities located in Portland, Oregon; Adelanto and Tracy, California; Parkersburg, West Virginia; Saginaw, Texas; St. Louis, Missouri; and San Luis Río Colorado, Mexico.</p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">The Company’s Precast Infrastructure and Engineered Systems (Precast) segment manufactures stormwater and wastewater technology products, high-quality precast and reinforced concrete products, including reinforced concrete pipe, manholes, box culverts, vaults, and catch basins, pump lift stations, oil water separators, biofiltration units, and other environmental and engineered solutions. Precast has manufacturing facilities located in Dallas, Houston, and San Antonio, Texas; and Orem, Salt Lake City, and St. George, Utah.</p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;">The following table disaggregates revenue and gross profit based on the Company’s reportable segments (in thousands):</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>Three Months Ended March 31, </b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>2024</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>2023</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Net sales:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Engineered Steel Pressure Pipe</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">80,007</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">63,546</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Precast Infrastructure and Engineered Systems</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">33,208</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">35,551</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Total net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">113,215</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">99,097</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Gross profit:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Engineered Steel Pressure Pipe</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">14,242</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7,782</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Precast Infrastructure and Engineered Systems</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">5,892</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">8,795</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Total gross profit</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">20,134</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">16,577</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 19%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>Three Months Ended March 31, </b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr class="finHeading" style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>2024</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b>2023</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Net sales:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Engineered Steel Pressure Pipe</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">80,007</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">63,546</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Precast Infrastructure and Engineered Systems</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">33,208</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">35,551</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Total net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">113,215</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">99,097</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Gross profit:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 15%;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Engineered Steel Pressure Pipe</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">14,242</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7,782</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Precast Infrastructure and Engineered Systems</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">5,892</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">8,795</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Total gross profit</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">20,134</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">16,577</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> </td></tr> </tbody></table> 80007000 63546000 33208000 35551000 113215000 99097000 14242000 7782000 5892000 8795000 20134000 16577000 <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 27pt;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b><em style="font: inherit;">13.</em></b></p> </td><td style="width: auto;"> <p style="font-family: 'Times New Roman', Times, serif;font-size: 10pt;font-variant:normal;margin:0pt;"><b>Recent Accounting and Reporting Developments</b></p> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;">There have been <em style="font: inherit;">no</em> developments to recently issued accounting standards, including the expected dates of adoption and estimated effects on the Company’s Condensed Consolidated Financial Statements and disclosures in Notes to Condensed Consolidated Financial Statements, from those disclosed in the Company’s <em style="font: inherit;">2023</em> Form <em style="font: inherit;">10‑K,</em> except for the following.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><b><i>Accounting Changes</i></b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> March 2023, </em>the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) <em style="font: inherit;">No.</em> <em style="font: inherit;">2023‑01</em> “Leases (Topic <em style="font: inherit;">842</em>): Common Control Arrangements” (“ASU <em style="font: inherit;">2023‑01”</em>) which requires leasehold improvements associated with common control leases be (<em style="font: inherit;">1</em>) amortized by the lessee over the useful life of the leasehold improvements to the common control group as long as the lessee controls the use of the underlying asset through a lease and (<em style="font: inherit;">2</em>) accounted for as a transfer between entities under common control through an adjustment to equity if, and when, the lessee <em style="font: inherit;">no</em> longer controls the use of the underlying asset. The Company adopted ASU <em style="font: inherit;">2023‑01</em> on <em style="font: inherit;"> January </em><em style="font: inherit;">1,</em> <em style="font: inherit;">2024</em> and the impact was <em style="font: inherit;">not</em> material to its financial position, results of operations, or cash flows.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"><b><i>Recent Accounting Standards</i></b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> November 2023, </em>the FASB issued ASU <em style="font: inherit;">No.</em> <em style="font: inherit;">2023‑07,</em> “Segment Reporting (Topic <em style="font: inherit;">280</em>): Improvements to Reportable Segment Disclosures” (“ASU <em style="font: inherit;">2023‑07”</em>) which requires disclosure of incremental segment information, primarily through enhanced disclosures about significant segment expenses, on an annual and interim basis for all public entities. ASU <em style="font: inherit;">2023‑07</em> will be applied retrospectively, and will be effective for the Company’s <em style="font: inherit;">2024</em> annual reporting, and for interim periods beginning in <em style="font: inherit;">2025,</em> with early adoption permitted. The Company does <em style="font: inherit;">not</em> expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> December 2023, </em>the FASB issued ASU <em style="font: inherit;">No.</em> <em style="font: inherit;">2023‑09,</em> “Income Taxes (Topic <em style="font: inherit;">740</em>): Improvements to Income Tax Disclosures” (“ASU <em style="font: inherit;">2023‑09”</em>) which improves the transparency, effectiveness, and comparability of income tax disclosures and allows investors to better assess, in their capital allocation decisions, how an entity’s worldwide operations and related tax risks and tax planning and operation opportunities affect its income tax rate and prospects for future cash flows. ASU <em style="font: inherit;">2023‑09</em> will be applied prospectively, and will be effective for the Company’s <em style="font: inherit;">2025</em> annual reporting, with early adoption permitted. The Company is currently assessing the impact of ASU <em style="font: inherit;">2023‑09</em> on its disclosures in the notes to the consolidated financial statements.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt;"><b><span style="text-decoration: underline; "><a href="#" id="oi" title="oi"></a>Item</span></b><b><span style="text-decoration: underline; "><em style="font: inherit;">5.</em> Other Information</span></b></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"><span style="-sec-ix-hidden:c111757050"><span style="-sec-ix-hidden:c111757058"><span style="-sec-ix-hidden:c111757059"><span style="-sec-ix-hidden:c111757060">None</span></span></span></span> of our directors or officers adopted, modified, or terminated a Rule <em style="font: inherit;">10b5‑1</em> trading arrangement or a non-Rule <em style="font: inherit;">10b5‑1</em> trading arrangement during the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March</em> <em style="font: inherit;">31,</em> <em style="font: inherit;">2024</em>, as such terms are defined under Item <em style="font: inherit;">408</em>(a) of Regulation S‑K.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> The number of PSAs disclosed in this table are at the target level of 100%. The weighted-average number of antidilutive shares not included in the computation of diluted net income per share was approximately 6,000 for the three months ended March 31, 2024. There were no antidilutive shares for the three months ended March 31, 2023.