0001171843-23-003130.txt : 20230510 0001171843-23-003130.hdr.sgml : 20230510 20230510091549 ACCESSION NUMBER: 0001171843-23-003130 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 85 CONFORMED PERIOD OF REPORT: 20230331 FILED AS OF DATE: 20230510 DATE AS OF CHANGE: 20230510 FILER: COMPANY DATA: COMPANY CONFORMED NAME: UFP TECHNOLOGIES INC CENTRAL INDEX KEY: 0000914156 STANDARD INDUSTRIAL CLASSIFICATION: SURGICAL & MEDICAL INSTRUMENTS & APPARATUS [3841] IRS NUMBER: 042314970 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-12648 FILM NUMBER: 23904592 BUSINESS ADDRESS: STREET 1: 100 HALE STREET CITY: NEWBURYPORT STATE: MA ZIP: 01950 BUSINESS PHONE: 978-352-2200 MAIL ADDRESS: STREET 1: 100 HALE STREET CITY: NEWBURYPORT STATE: MA ZIP: 01950 10-Q 1 ufpt20230331_10q.htm FORM 10-Q ufpt20230331_10q.htm
0000914156 UFP TECHNOLOGIES INC false --12-31 Q1 2023 0.01 0.01 1,000,000 1,000,000 0 0 0.01 0.01 20,000,000 20,000,000 7,642,529 7,612,970 7,611,244 7,581,685 29,559 29,559 19.0 20 10 0 1 1 1 1 1 18 0.25 Certain amounts for the three and nine months ended September 30, 2021, were reclassified between markets to conform to the current period presentation. 00009141562023-01-012023-03-31 xbrli:shares 00009141562023-05-02 iso4217:USD 00009141562023-03-31 00009141562022-12-31 iso4217:USDxbrli:shares 00009141562022-01-012022-03-31 0000914156ufpt:CommonStockOutstandingMember2022-12-31 0000914156us-gaap:AdditionalPaidInCapitalMember2022-12-31 0000914156us-gaap:RetainedEarningsMember2022-12-31 0000914156us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-12-31 0000914156us-gaap:TreasuryStockCommonMember2022-12-31 0000914156ufpt:CommonStockOutstandingMember2023-01-012023-03-31 0000914156us-gaap:AdditionalPaidInCapitalMember2023-01-012023-03-31 0000914156us-gaap:RetainedEarningsMember2023-01-012023-03-31 0000914156us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-01-012023-03-31 0000914156us-gaap:TreasuryStockCommonMember2023-01-012023-03-31 0000914156ufpt:CommonStockOutstandingMember2023-03-31 0000914156us-gaap:AdditionalPaidInCapitalMember2023-03-31 0000914156us-gaap:RetainedEarningsMember2023-03-31 0000914156us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-03-31 0000914156us-gaap:TreasuryStockCommonMember2023-03-31 0000914156ufpt:CommonStockOutstandingMember2021-12-31 0000914156us-gaap:AdditionalPaidInCapitalMember2021-12-31 0000914156us-gaap:RetainedEarningsMember2021-12-31 0000914156us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-12-31 0000914156us-gaap:TreasuryStockCommonMember2021-12-31 00009141562021-12-31 0000914156ufpt:CommonStockOutstandingMember2022-01-012022-03-31 0000914156us-gaap:AdditionalPaidInCapitalMember2022-01-012022-03-31 0000914156us-gaap:RetainedEarningsMember2022-01-012022-03-31 0000914156us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-01-012022-03-31 0000914156us-gaap:TreasuryStockCommonMember2022-01-012022-03-31 0000914156ufpt:CommonStockOutstandingMember2022-03-31 0000914156us-gaap:AdditionalPaidInCapitalMember2022-03-31 0000914156us-gaap:RetainedEarningsMember2022-03-31 0000914156us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-03-31 0000914156us-gaap:TreasuryStockCommonMember2022-03-31 00009141562022-03-31 0000914156ufpt:AdvantMedicalMember2023-01-012023-03-31 0000914156ufpt:AdvantMedicalMember2022-01-012022-03-31 0000914156ufpt:DasMedicalMember2023-01-012023-03-31 0000914156ufpt:DasMedicalMember2022-01-012022-03-31 0000914156ufpt:MoldedFiberBusinessMFTAndRelatedRealEstateInIowaMember2022-07-26 0000914156ufpt:MoldedFiberBusinessMFTAndRelatedRealEstateInIowaMemberus-gaap:ScenarioAdjustmentMember2022-07-26 0000914156ufpt:MoldedFiberBusinessMFTAndRelatedRealEstateInIowaMember2022-01-012022-12-31 xbrli:pure 0000914156ufpt:AdvantMedicalMember2022-03-16 iso4217:EUR 0000914156ufpt:AdvantMedicalMember2022-03-162022-03-16 0000914156ufpt:AdvantMedicalMember2022-03-172022-03-17 0000914156ufpt:AdvantMedicalMember2022-03-17 0000914156ufpt:AdvantMedicalMemberufpt:CustomerContractsAndRelationshipsMember2022-03-17 0000914156ufpt:AdvantMedicalMemberus-gaap:IntellectualPropertyMember2022-03-17 0000914156ufpt:AdvantMedicalMemberus-gaap:NoncompeteAgreementsMember2022-03-17 0000914156ufpt:AdvantMedicalMember2021-01-012022-03-31 0000914156ufpt:AdvantMedicalMember2021-01-012021-12-31 0000914156us-gaap:ProductMember2023-01-012023-03-31 0000914156us-gaap:ProductMember2022-01-012022-03-31 0000914156ufpt:ToolingAndMachineryMember2023-01-012023-03-31 0000914156ufpt:ToolingAndMachineryMember2022-01-012022-03-31 0000914156ufpt:EngineeringAndDevelopmentMember2023-01-012023-03-31 0000914156ufpt:EngineeringAndDevelopmentMember2022-01-012022-03-31 0000914156ufpt:DeferredRevenueMember2023-01-012023-03-31 0000914156ufpt:DeferredRevenueMember2022-01-012022-03-31 0000914156us-gaap:FairValueInputsLevel3Memberus-gaap:FairValueMeasurementsRecurringMember2023-03-31 0000914156us-gaap:FairValueInputsLevel3Memberus-gaap:FairValueMeasurementsRecurringMember2022-12-31 0000914156ufpt:ContechMedicalIncAndDasMedicalMember2021-01-012021-12-31 0000914156ufpt:ContechMedicalIncAndDasMedicalMember2022-12-312022-12-31 0000914156ufpt:ContechMedicalIncAndDasMedicalMember2023-03-312023-03-31 0000914156ufpt:ContechMedicalIncAndDasMedicalMember2023-03-31 0000914156ufpt:DasMedicalMemberufpt:NoncompetitionAgreementsMember2021-12-222021-12-22 utr:Y 0000914156ufpt:DasMedicalMember2023-03-31 0000914156us-gaap:CommonStockMemberus-gaap:SellingGeneralAndAdministrativeExpensesMember2023-01-012023-03-31 0000914156us-gaap:CommonStockMemberus-gaap:SellingGeneralAndAdministrativeExpensesMember2022-01-012022-03-31 0000914156ufpt:EmployeeAndNonemployeeStockOptionMemberus-gaap:SellingGeneralAndAdministrativeExpensesMember2023-01-012023-03-31 0000914156ufpt:EmployeeAndNonemployeeStockOptionMemberus-gaap:SellingGeneralAndAdministrativeExpensesMember2022-01-012022-03-31 0000914156us-gaap:RestrictedStockUnitsRSUMemberus-gaap:SellingGeneralAndAdministrativeExpensesMember2023-01-012023-03-31 0000914156us-gaap:RestrictedStockUnitsRSUMemberus-gaap:SellingGeneralAndAdministrativeExpensesMember2022-01-012022-03-31 0000914156us-gaap:SellingGeneralAndAdministrativeExpensesMember2023-01-012023-03-31 0000914156us-gaap:SellingGeneralAndAdministrativeExpensesMember2022-01-012022-03-31 0000914156us-gaap:StockCompensationPlanMember2023-01-012023-03-31 0000914156us-gaap:StockCompensationPlanMember2022-01-012022-03-31 0000914156ufpt:EmployeeAndNonemployeeStockOptionMember2022-12-31 0000914156ufpt:EmployeeAndNonemployeeStockOptionMember2023-01-012023-03-31 0000914156ufpt:EmployeeAndNonemployeeStockOptionMember2023-03-31 0000914156ufpt:EmployeeAndNonemployeeStockOptionMember2022-01-012022-03-31 0000914156us-gaap:RestrictedStockUnitsRSUMember2022-12-31 0000914156us-gaap:RestrictedStockUnitsRSUMember2023-01-012023-03-31 0000914156us-gaap:RestrictedStockUnitsRSUMember2023-03-31 0000914156us-gaap:RestrictedStockUnitsRSUMember2022-01-012022-03-31 0000914156us-gaap:LandAndLandImprovementsMember2023-03-31 0000914156us-gaap:LandAndLandImprovementsMember2022-12-31 0000914156us-gaap:BuildingAndBuildingImprovementsMember2023-03-31 0000914156us-gaap:BuildingAndBuildingImprovementsMember2022-12-31 0000914156us-gaap:LeaseholdImprovementsMember2023-03-31 0000914156us-gaap:LeaseholdImprovementsMember2022-12-31 0000914156us-gaap:MachineryAndEquipmentMember2023-03-31 0000914156us-gaap:MachineryAndEquipmentMember2022-12-31 0000914156ufpt:FurnitureFixturesAndComputersMember2023-03-31 0000914156ufpt:FurnitureFixturesAndComputersMember2022-12-31 0000914156us-gaap:ConstructionInProgressMember2023-03-31 0000914156us-gaap:ConstructionInProgressMember2022-12-31 0000914156ufpt:RightOfUseAssetsMember2023-03-31 0000914156ufpt:RightOfUseAssetsMember2022-12-31 0000914156ufpt:LeaseLiabilitiesCurrentMember2023-03-31 0000914156ufpt:LeaseLiabilitiesCurrentMember2022-12-31 0000914156ufpt:LeaseLiabilitiesNoncurrentMember2023-03-31 0000914156ufpt:LeaseLiabilitiesNoncurrentMember2022-12-31 0000914156us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMemberus-gaap:GeographicDistributionForeignMember2023-01-012023-03-31 0000914156us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMemberus-gaap:GeographicDistributionForeignMember2022-01-012022-03-31 0000914156us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-03-31 0000914156us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-03-31 0000914156us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMemberufpt:OneCustomerMember2023-01-012023-03-31 0000914156us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMemberufpt:OneCustomerMember2022-01-012022-03-31 0000914156us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-31 0000914156us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-03-31 0000914156us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMemberufpt:OneCustomerMember2023-01-012023-03-31 0000914156us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMemberufpt:OneCustomerMember2022-01-012022-12-31 0000914156ufpt:LonglivedAssetsMemberus-gaap:CustomerConcentrationRiskMemberus-gaap:GeographicDistributionForeignMember2023-01-012023-03-31 0000914156ufpt:LonglivedAssetsMemberus-gaap:CustomerConcentrationRiskMemberus-gaap:GeographicDistributionForeignMember2022-01-012022-12-31 0000914156ufpt:MedicalMember2023-01-012023-03-31 0000914156ufpt:MedicalMember2022-01-012022-03-31 0000914156ufpt:AutomotiveMember2023-01-012023-03-31 0000914156ufpt:AutomotiveMember2022-01-012022-03-31 0000914156ufpt:AerospaceDefenseMember2023-01-012023-03-31 0000914156ufpt:AerospaceDefenseMember2022-01-012022-03-31 0000914156ufpt:IndustrialMember2023-01-012023-03-31 0000914156ufpt:IndustrialMember2022-01-012022-03-31 0000914156ufpt:IntellectualPropertyTradenameAndBrandMember2023-03-31 0000914156us-gaap:NoncompeteAgreementsMember2023-03-31 0000914156us-gaap:CustomerListsMember2023-03-31 0000914156ufpt:SecondAmendedAndRestatedCreditAgreementMemberufpt:SubsidiaryGuarantorsMember2021-12-22 0000914156ufpt:SecondAmendedAndRestatedCreditAgreementMemberufpt:SubsidiaryGuarantorsMemberufpt:SecuredTermLoanMember2021-12-22 0000914156ufpt:SecuredRevolvingCreditFacilityMemberufpt:SecondAmendedAndRestatedCreditAgreementMemberufpt:SubsidiaryGuarantorsMember2021-12-22 0000914156ufpt:SecuredRevolvingCreditFacilityMemberufpt:SecondAmendedAndRestatedCreditAgreementMemberufpt:SubsidiaryGuarantorsMember2021-12-222021-12-22 0000914156ufpt:SecondAmendedAndRestatedCreditAgreementMemberufpt:SubsidiaryGuarantorsMembersrt:MinimumMemberufpt:BloombergShorttermBankYieldIndexRateMember2021-12-222021-12-22 0000914156ufpt:SecondAmendedAndRestatedCreditAgreementMemberufpt:SubsidiaryGuarantorsMembersrt:MaximumMemberufpt:BloombergShorttermBankYieldIndexRateMember2021-12-222021-12-22 0000914156ufpt:SecondAmendedAndRestatedCreditAgreementMemberufpt:SubsidiaryGuarantorsMembersrt:MaximumMemberus-gaap:PrimeRateMember2021-12-222021-12-22 0000914156ufpt:SecondAmendedAndRestatedCreditAgreementMemberufpt:SubsidiaryGuarantorsMember2023-03-31 0000914156us-gaap:RevolvingCreditFacilityMemberus-gaap:LineOfCreditMember2023-03-31 0000914156ufpt:TermLoanMember2023-03-31
 

UNITED STATES SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

FORM 10-Q

(Mark one)         

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

For the quarterly period ended     MARCH 31, 2023  

 

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: 001-12648

UFP Technologies, Inc.

(Exact name of registrant as specified in its charter)

 

Delaware

04-2314970

(State or other jurisdiction of incorporation or organization)

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

 

100 Hale Street, Newburyport, MA 01950, USA

(Address of principal executive offices) (Zip Code)

 

(978) 352-2200

(Registrant's telephone number, including area code)

 

_________________________________________

(Former name, former address, and former fiscal year, if changed since last report)

 

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

UFPT

The NASDAQ Stock Market L.L.C.

 

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, 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 ☒

 

7,614,197 shares of registrant’s Common Stock, $0.01 par value, were outstanding as of May 2, 2023.

 

 

 

 

UFP Technologies, Inc.

 

Index

 

Page

PART I - FINANCIAL INFORMATION  
Item 1. Financial Statements 3
Condensed Consolidated Balance Sheets as of March 31, 2023 and December 31, 2022 (unaudited) 3
Condensed Consolidated Statements of Income and Comprehensive Income for the Three Months Ended March 31, 2023 and March 31, 2022 (unaudited) 4
Condensed Consolidated Statements of Stockholders’ Equity for the Three Months Ended March 31, 2023 and March 31, 2022 (unaudited) 5
Condensed Consolidated Statements of Cash Flows for the Three Months Ended March 31, 2023 and March 31, 2022 (unaudited) 6
Notes to Interim Condensed Consolidated Financial Statements 7
Item 2. Management's Discussion and Analysis of Financial Condition and Results of Operations 19
Item 3. Quantitative and Qualitative Disclosures About Market Risk 23
Item 4. Controls and Procedures 23
PART II - OTHER INFORMATION  
Item 1. Legal Proceedings 24
Item 1A. Risk Factors 24
Item 2. Unregistered Sales of Equity Securities and Use of Proceeds 24
Item 3. Defaults upon Senior Securities 24
Item 4. Mine Safety Disclosures 24
Item 5. Other Information 24
Item 6. Exhibits 25
Signatures 25

 

 

 

 

PART I:          FINANCIAL INFORMATION

ITEM 1:         FINANCIAL STATEMENTS

UFP Technologies, Inc.

Condensed Consolidated Balance Sheets

 

(In thousands, except share data)

(Unaudited)

 

  

March 31,
2023

  

December 31,

2022

 

Assets

        

Current assets:

        

Cash and cash equivalents

 $6,503  $4,451 

Receivables, net

  60,142   55,117 

Inventories

  56,649   53,536 

Prepaid expenses and other current assets

  3,622   3,242 

Total current assets

  126,916   116,346 

Property, plant and equipment, net

  59,027   58,072 

Goodwill

  113,159   113,028 

Intangible assets, net

  67,346   68,361 

Non-qualified deferred compensation plan

  4,706   4,148 

Right of use assets

  14,514   13,153 

Deferred income taxes

  1,547   1,448 

Other assets

  3,567   3,636 

Total assets

 $390,782  $378,192 
         

Liabilities and Stockholders Equity

        

Current liabilities:

        

Accounts payable

 $20,454  $19,961 

Accrued expenses

  16,768   23,122 

Deferred revenue

  3,582   4,679 

Lease liabilities

  2,938   2,517 

Income taxes payable

  4,450   1,682 

Current portion of long-term debt

  4,000   4,000 

Total current liabilities

  52,192   55,961 

Long-term debt, excluding current installments

  56,000   51,000 

Deferred income taxes

  -   448 

Non-qualified deferred compensation plan

  4,750   4,167 

Lease liabilities

  11,873   10,851 

Other liabilities

  19,483   18,220 

Total liabilities

  144,298   140,647 

Commitments and contingencies

          

Stockholders’ equity:

        

Preferred stock, $.01 par value, 1,000,000 shares authorized; no shares issued

  -   - 

Common stock, $.01 par value, 20,000,000 shares authorized; 7,642,529 and 7,612,970 shares issued and outstanding, respectively,  at March 31, 2023; 7,611,244 and 7,581,685 shares issued and  outstanding, respectively, at December 31, 2022

  76   76 

Additional paid-in capital

  34,777   36,070 

Retained earnings

  212,335   202,596 

Accumulated other comprehensive loss

  (117)  (610)

Treasury stock at cost, 29,559 shares at March 31, 2023 and 29,559 shares at December 31, 2022

  (587)  (587)

Total stockholders’ equity

  246,484   237,545 

Total liabilities and stockholders' equity

 $390,782  $378,192 

 

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

 

3

 

 

UFP Technologies, Inc.

Condensed Consolidated Statements of Income

and Comprehensive Income

(In thousands, except per share data)

(Unaudited)

 

   

Three Months Ended

 
   

March 31,

 
   

2023

   

2022

 

Net sales

  $ 97,753     $ 71,242  

Cost of sales

    69,052       54,108  

Gross profit

    28,701       17,134  

Selling, general & administrative expenses

    13,006       10,011  

Acquisition costs

    -       775  

Change in fair value of contingent consideration

    2,853       -  

Loss (Gain) on disposal of property, plant & equipment

    1       (12 )

Operating income

    12,841       6,360  

Interest expense, net

    869       327  

Other expense (income)

    77       (52 )

Income before income tax expense

    11,895       6,085  

Income tax expense

    2,156       1,227  

Net income

  $ 9,739     $ 4,858  
                 

Net income per share:

               

Basic

  $ 1.28     $ 0.64  

Diluted

  $ 1.27     $ 0.64  

Weighted average common shares outstanding:

               

Basic

    7,592       7,544  

Diluted

    7,681       7,630  
                 
                 

Comprehensive Income

               

Net Income

  $ 9,739     $ 4,858  

Other comprehensive income:

               

Foreign currency translation gain

    493       381  

Other comprehensive gain

    493       381  

Comprehensive income

  $ 10,232     $ 5,239  

 

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

 

4

 

 

UFP TECHNOLOGIES, INC.

Condensed Consolidated Statements of Stockholders Equity

(In thousands)

(Unaudited)

 

Three Months Ended March 31, 2023

 
                                   

Accumulated

                         
                   

Additional

           

other

                   

Total

 
   

Common Stock

   

Paid-in

   

Retained

   

comprehensive

   

Treasury Stock

   

Stockholders'

 
   

Shares

   

Amount

   

Capital

   

Earnings

   

income (loss)

   

Shares

   

Amount

   

Equity

 

Balance at December 31, 2022

    7,582     $ 76     $ 36,070     $ 202,596     $ (610 )     30     $ (587 )   $ 237,545  

Share-based compensation

    48       -       1,056       -       -       -       -       1,056  

Exercise of stock options net of shares presented for exercise

    4       -       109       -       -       -       -       109  

Net share settlement of RSU's

    (21 )     -       (2,522 )     -       -             -       (2,522 )

Issuance of common stock

    -       -       64       -       -       -       -       64  

Other comprehensive income

    -       -       -       -       493       -       -       493  

Net income

    -       -       -       9,739       -       -       -       9,739  

Balance at March 31, 2023

    7,613     $ 76     $ 34,777     $ 212,335     $ (117 )     30     $ (587 )   $ 246,484  

 

Three Months Ended March 31, 2022

 
                                   

Accumulated

                         
                   

Additional

           

other

                   

Total

 
   

Common Stock

   

Paid-in

   

Retained

   

comprehensive

   

Treasury Stock

   

Stockholders'

 
   

Shares

   

Amount

   

Capital

   

Earnings

   

income

   

Shares

   

Amount

   

Equity

 

Balance at December 31, 2021

    7,535     $ 75     $ 34,151     $ 160,807     $ -       30     $ (587 )   $ 194,446  

Share-based compensation

    46       1       691       -       -       -       -       692  

Net share settlement of RSU's

    (20 )     -       (1,299 )     -       -       -       -       (1,299 )

Other comprehensive income

    -       -       -       -       381       -       -       381  

Net income

    -       -       -       4,858       -       -       -       4,858  

Balance at March 31, 2022

    7,561     $ 76     $ 33,543     $ 165,665     $ 381       30     $ (587 )   $ 199,078  

 

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

 

5

 

 

UFP Technologies, Inc.

Condensed Consolidated Statements of Cash Flows

(In thousands)

(Unaudited)

 

   

Three Months Ended

 
   

March 31,

 
   

2023

   

2022

 

Cash flows from operating activities:

               

Net income

  $ 9,739     $ 4,858  

Adjustments to reconcile net income to net cash provided by operating activities:

               

Depreciation and amortization

    2,777       3,016  

Loss (Gain) on disposal of property, plant & equipment

    1       (12 )

Share-based compensation

    1,056       692  

Change in fair value of contingent consideration

    2,853       -  

Deferred income taxes

    (545 )     (440 )

Changes in operating assets and liabilities:

               

Receivables, net

    (4,863 )     (4,467 )

Inventories

    (3,054 )     (7,826 )

Prepaid expenses and other current assets

    (377 )     (1,712 )

Other assets

    (1,850 )     308  

Accounts payable

    65       4,105  

Accrued expenses

    (6,197 )     (3,365 )

Deferred revenue

    (1,098 )     793  

Income taxes payable

    2,765       1,130  

Non-qualified deferred compensation plan and other liabilities

    451       (296 )

Net cash provided by (used in) operating activities

    1,723       (3,216 )

Cash flows from investing activities:

               

Additions to property, plant, and equipment

    (2,179 )     (2,334 )

Acquisition of Advant, net of cash acquired

    -       (20,768 )

Acquisition of DAS Medical, working capital adjustment

    -       115  

Proceeds from sale of fixed assets

    2       12  

Net cash used in investing activities

    (2,177 )     (22,975 )

Cash flows from financing activities:

               

Proceeds from advances on revolving line of credit

    6,000       28,000  

Payments on revolving line of credit

    -       (7,000 )

Principal payments of long-term debt

    (1,000 )     (1,000 )

Principal payments on finance lease obligations

    (16 )     (16 )

Proceeds from the exercise of stock options

    109       -  

Payment of statutory withholdings for restricted stock units vested

    (2,522 )     (1,299 )

Net cash provided by financing activities

    2,571       18,685  

Effect of foreign currency exchange rates on cash and cash equivalents

    (65 )     41  

Net increase (decrease) in cash and cash equivalents

    2,052       (7,465 )

Cash and cash equivalents at beginning of period

    4,451       11,117  

Cash and cash equivalents at end of period

  $ 6,503     $ 3,652  

 

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

 

6

 

Notes to Interim Condensed Consolidated Financial Statements

 

 

(1)

Basis of Presentation

 

The interim condensed consolidated financial statements of UFP Technologies, Inc. (the “Company”) presented herein, have been prepared pursuant to the rules of the Securities and Exchange Commission for quarterly reports on Form 10-Q and do not include all the information and note disclosures required by accounting principles generally accepted in the United States of America. These statements should be read in conjunction with the consolidated financial statements and notes thereto for the year ended December 31, 2022, included in the Company's 2022 Annual Report on Form 10-K, as filed with the Securities and Exchange Commission.

 

The condensed consolidated balance sheets as of March 31, 2023 and December 31, 2022, the condensed consolidated statements of income and comprehensive income for the three months ended March 31, 2023 and 2022, the condensed consolidated statements of stockholders’ equity for the three months ended March 31, 2023 and 2022, and the condensed consolidated statements of cash flows for the three months ended March 31, 2023 and 2022 are unaudited but, in the opinion of management, include all adjustments (consisting of normal, recurring adjustments) necessary for a fair presentation of results for these interim periods. The condensed consolidated balance sheet as of December 31, 2022 has been derived from the Company’s annual financial statements that were audited by an independent registered public accounting firm but does not include all of the information and footnotes required for complete annual financial statements.

 

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period.

 

The results of operations for the three-month period ended March 31, 2023 are not necessarily indicative of the results to be expected for the entire fiscal year ending December 31, 2023.

 

Recent Accounting Pronouncements

 

There are no newly issued accounting pronouncements that the Company expects to have a material effect on the financial statements.

 

 

(2)

Acquisition and Divestiture

 

Molded Fiber

 

On July 26, 2022, pursuant to a share purchase agreement and related agreements, the Company sold its former wholly owned subsidiary Moulded Fiber Technology, Inc. (“MFT”) and related real estate in Iowa to CKF USA INCORPORATED (“CKF”) (a Delaware Corporation) for approximately $31.5 million (including a working capital adjustment of approximately $0.1 million that decreased the total consideration). The net book value of the assets sold were approximately $15.4 million and the Company recorded a net gain on sale of approximately $15.7 million, which was recorded in the year ended December 31, 2022. $2.6 million of the purchase price is being held in escrow to indemnify CKF against certain claims, losses, and liabilities. The Securities Purchase Agreement contains customary representations, warranties, and covenants customary for transactions of this type. Proceeds from the sale were used to pay down debt on the Company’s revolving credit facility, as well as income tax obligations on the related gain.

 

Advant Medical

 

On March 16, 2022 the Company purchased 100% of the outstanding shares of common stock of Advant Medical, Ltd., Advant Medical Inc. and Advant Medical Costa Rica, Limitada, (together Advant), pursuant to a Stock Purchase Agreement and related agreements, for an aggregate purchase price of €19.0 million in cash along with a working capital adjustment at closing. Total consideration in U.S. Dollars amounted to approximately $21.2 million. The purchase price was subject to additional adjustment based upon Advant’s final working capital at closing. A portion of the purchase price is being held in escrow to indemnify the Company against certain claims, losses, and liabilities. The Stock Purchase Agreement contains customary representations, warranties, and covenants customary for transactions of this type.

 

7

 

Founded in 1993, Advant is headquartered in Galway, Ireland, with operations in Costa Rica and partner manufacturing in Mexico. Advant is a developer and manufacturer of Class I, II, and III medical devices and packaging, primarily for catheters and guide wires.

 

The following table summarizes the allocation of consideration paid to the acquisition date fair value of the assets acquired and liabilities assumed based on management’s estimates of fair value (in thousands):

 

Fair value of considerations transferred

    

Cash paid at closing

 $23,608 

Other liability

  395 

Cash from Advant

  (2,840)

Total consideration

 $21,163 
     

Purchase price allocation

    

Accounts receivable

 $2,299 

Inventory

  2,410 

Other current assets

  213 

Property, plant, and equipment

  5,704 

Customer contracts & relationships

  2,925 

Intellectual property

  2,127 

Non-compete agreement

  259 

Lease right of use assets

  289 

Other assets

  41 

Goodwill

  7,140 

Total identifiable assets

 $23,407 

Accounts payable

  (772)

Accrued expenses

  (668)

Income taxes

  (66)

Deferred taxes

  (449)

Lease liabilities

  (289)

Net assets acquired

 $21,163 

 

Acquisition costs associated with the transaction through the first quarter of 2022 were approximately $669 thousand, of which $639 thousand was charged to expense in the quarter ended March 31, 2022 and $30 thousand was charged to expense in the year ended December 31, 2021. These costs were primarily for legal services, valuation services and stamp duty filings and are reflected on the face of the condensed consolidated statements of income and comprehensive income.

 

The amount of revenue and earnings of Advant recognized since the acquisition date through the first quarter of 2022 was approximately $824 thousand and $63 thousand, respectively, and is included in the condensed consolidated statements of income and comprehensive income for the period ended March 31, 2022.

 

Pro-forma statements

 

The following table contains an unaudited pro forma condensed consolidated statement of operations for the three-month period ended March 31, 2022, as if the Advant acquisition had occurred at the beginning of 2022 (in thousands):

 

8

 

 

  

Three-month Period Ended

 
  

March 31, 2022

 
  

(Unaudited)

 

Sales

 $75,469 

Operating income

 $7,023 

Net income

 $5,346 

Earnings per share:

    

Basic

 $0.71 

Diluted

 $0.70 

 

 

The above unaudited pro forma information is presented for illustrative purposes only and may not be indica‐tive of the results of operations that would have occurred had both acquisitions occurred as presented. In addition, future results may vary significantly from the results reflected in such pro forma information.

 

 

(3)

Revenue Recognition

 

The Company recognizes revenue when a customer obtains control of a promised good or service. The amount of revenue recognized reflects the consideration that the Company expects to be entitled to in exchange for promised goods or services. The Company recognizes revenue in accordance with the core principles of ASC 606 which include (1) identifying the contract with a customer, (2) identifying separate performance obligations within the contract, (3) determining the transaction price, (4) allocating the transaction price to the performance obligations, and (5) recognizing revenue. The Company recognizes all but an immaterial portion of its product sales upon shipment. The Company recognizes revenue from the sale of tooling and machinery upon customer acceptance. The Company recognizes revenue from engineering services, which are primarily product development services, as the services are performed or as otherwise determined based on the substance of the agreement. The Company recognizes revenue from bill and hold transactions at the time the specified goods are complete and available to the customer. In the ordinary course of business, the Company accepts sales returns from customers for defective goods, such amounts being immaterial. Although only applicable to an insignificant number of transactions, the Company has elected to exclude sales taxes from the transaction price. The Company has elected to account for shipping and handling activities for which the Company is responsible under the terms and conditions of the sale not as performance obligations but rather as fulfillment costs. These activities are required to fulfill the Company’s promise to transfer the good and are expensed when revenue is recognized.

 

Disaggregated Revenue

 

The following table presents the Company’s revenue disaggregated by the major types of goods and services sold to the Company’s customers (in thousands):

 

  

Three Months Ended

 
  

March 31,

 

Net sales of:

 

2023

  

2022

 

Products

 $94,692  $69,505 

Tooling and Machinery

  1,294   478 

Engineering services

  1,767   1,259 

Total net sales

 $97,753  $71,242 

 

Contract balances

 

Timing of revenue recognition may differ from the timing of invoicing to customers. When invoicing occurs prior to revenue recognition, the Company has contract liabilities included within “deferred revenue” on the condensed consolidated balance sheet.

 

The following table presents opening and closing balances of contract liabilities for the three-month periods ended March 31, 2023 and 2022 (in thousands):

 

9

 
  

Contract Liabilities

 
  

Three Months Ended
March 31,

 
  

2023

  

2022

 

Deferred revenue - beginning of period

 $4,679  $4,247 

Increases due to consideration received from customers

  999   1,116 

Revenue recognized

  (2,096)  (323)

Deferred revenue - end of period

 $3,582  $5,040 

 

Revenue recognized during the three-month periods ended March 31, 2023 and 2022 from amounts included in deferred revenue at the beginning of the period were approximately $1.9 million and $273 thousand, respectively.

 

When invoicing occurs after revenue recognition, the Company has contract assets, included within “receivables, net” on the condensed consolidated balance sheets.

 

The following table presents opening and closing balances of contract assets for the three-month periods ended March 31, 2023 and 2022 (in thousands):

 

  

Contract Assets

 
  

Three Months Ended
March 31,

 
  

2023

  

2022

 

Unbilled Receivables - beginning of period

 $270  $74 

Increases due to revenue recognized, not invoiced to customers

  1,379   740 

Decreases due to customer invoicing

  (1,326)  (412)

Unbilled Receivables - end of period

 $323  $402 

 

 

(4)

Supplemental Cash Flow Information

 

Supplemental cash flow information consists of the following (in thousands):

 

  

Three Months Ended

 
  

March 31,

 
  

2023

  

2022

 

Cash paid for:

        

Interest

 $832  $314 

Income taxes, net of refunds

  (50)  210 
         

Non-cash investing and financing activities:

        

Capital additions accrued but not yet paid

 $347  $185 

Operating lease right of use assets

  1,524   289 

Operating lease liabilities

  (1,560)  (289)

 

10

 

 

(5)

Receivables and Allowance for Credit Losses

 

Receivables consist of the following (in thousands):

 

  

March 31,

  

December 31,

 
  

2023

  

2022

 

Accounts receivable–trade

 $60,868  $55,850 

Less allowance for credit losses

  (726)  (733)

Receivables, net

 $60,142  $55,117 

 

The Company is exposed to credit losses primarily through sales of products and services. The Company’s expected loss allowance methodology for accounts receivable is developed using historical collection experience, current and future economic and market conditions, and a review of the current status of customers' trade accounts receivables. Due to the short-term nature of such receivables, the estimate of the amount of accounts receivable that may not be collected is based on aging of the accounts receivable balances and the financial condition of customers. Additionally, specific allowance amounts are established to record the appropriate provision for customers that have a higher probability of default. The Company’s monitoring activities include timely account reconciliation, dispute resolution, payment confirmation, consideration of customers' financial condition and macroeconomic conditions. Balances are written off when determined to be uncollectible. Estimates based on an assessment of anticipated payment and all other historical, current, and future information that is reasonably available are used to determine the allowance.

 

The following table provides a roll-forward of the allowance for credit losses that is deducted from accounts receivable to present the net amount expected to be collected for the three months ended March 31, 2023 and 2022 (in thousands):

 

  

Allowance for Credit
Losses

 
  

Three Months Ended
March 31,

 
  

2023

  

2022

 

Allowance - beginning of period

 $733  $519 

Adjustment for expected credit losses

  (6)  (51)

Amounts written off against the allowance

  (1)  (23)

Allowance - end of period

 $726  $445 

 

 

(6)

Fair Value of Financial Instruments

 

Financial instruments recorded at fair value in the consolidated balance sheets, or disclosed at fair value in the footnotes, are categorized based upon the level of judgment associated with the inputs used to measure their fair value. Hierarchical levels defined by ASC 820, Fair Value Measurements and Disclosures, and directly related to the amount of subjectivity associated with inputs to fair valuation of these assets and liabilities, are as follows:

 

Level 1

Valued based on unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date. An active market for the asset or liability is a market in which transactions for the asset or liability occur with sufficient frequency and volume to provide pricing information on an ongoing basis.

 

Level 2

Valued based on either directly or indirectly observable prices for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument’s anticipated life.

 

Level 3

Valued based on management’s best estimate of what market participants would use in pricing the asset or liability at the measurement date. Consideration is given to the risk inherent in the valuation technique and the risk inherent in the inputs to the model.

 

11

 

The following table presents the fair value and hierarchy levels, for financial assets that are measured at fair value on a recurring basis (in thousands):

 

  

March 31,
2023

  

December 31, 2022

 
         

Level 3

        

Purchase price contingent consideration (Note 2):

        

Accrued contingent consideration (earn-out)

 $17,421  $14,568 

Present value of non-competition payments

  7,903   10,043 

 

In connection with the acquisitions of Contech Medical and DAS Medical in 2021, the Company is required to make contingent payments, subject to the entities achieving certain financial performance thresholds. The contingent consideration payments for the 2021 acquisitions combined are up to $25 million, of which $20 million remains to be potentially paid as of March 31, 2023 and December 31, 2022. The fair value of the liabilities for the contingent consideration payments recognized upon the acquisition as part of the purchase accounting opening balance sheets totaled approximately $9.7 million and was estimated by discounting to present value the probability-weighted contingent payments expected to be made. Assumptions used in this calculation were managements financial forecasts, discount rate and various probability factors. The ultimate settlement of contingent consideration could deviate from current estimates based on the actual results of these financial measures. This liability is considered to be a Level 3 financial liability that is re-measured each reporting period. The change in fair value of contingent consideration for the acquisition is included in change in fair value of contingent consideration in the condensed consolidated statements of income and comprehensive income.

 

Also in connection with the DAS Medical acquisition, the Company has entered into Non-Competition Agreements with the beneficiaries and the Company has agreed to pay additional consideration to the parties to the Non-Competition Agreements, including an aggregate of $10.0 million in payments over the ten years following the closing of the DAS Medical acquisition for the 10-year noncompetition covenants of certain key owners. The present value of the Non-Competition Agreements totaled approximately $7.9 million. This liability is considered to be a Level 3 financial liability that is re-measured each reporting period. The change in fair value of contingent consideration for the acquisition is included in change in fair value of contingent consideration in the condensed consolidated statements of income and comprehensive income.

 

The Company has financial instruments, such as accounts receivable, accounts payable, and accrued expenses, that are stated at carrying amounts that approximate fair value because of the short maturity of those instruments. The carrying amount of the Company’s long-term debt approximates fair value as the interest rate on the debt approximates the estimated borrowing rate currently available to the Company.

 

 

(7)

Share-Based Compensation

 

Share-based compensation is measured at the grant date based on the fair value of the award and is recognized as an expense over the requisite service period (generally the vesting period of the equity grant).

 

The Company issues share-based awards through several plans that are described in detail in the notes to the consolidated financial statements for the year ended December 31, 2022. The compensation cost charged against income for those plans is included in selling, general & administrative expenses as follows (in thousands):

 

  

Three Months Ended

 
  

March 31,

 

Share-based compensation related to:

 

2023

  

2022

 

Common stock grants

 $100  $100 

Stock option grants

  94   53 

Restricted Stock Unit Awards ("RSUs")

  862   539 

Total share-based compensation

 $1,056  $692 

 

12

 

The total income tax benefit recognized in the condensed consolidated statements of income and comprehensive income for share-based compensa‐tion arrangements was approximately $839 thousand and $381 thousand for the three-month periods ended March 31, 2023 and 2022, respectively.

 

Common stock grants

 

The compensation expense for common stock granted during the three-month period ended March 31, 2023, was determined based on the market price of the shares on the date of grant.

 

Stock Option grants

 

The following is a summary of stock option activity under all plans for the three-month period ended March 31, 2023:

 

  

Shares Under Options

  

Weighted Average

Exercise Price

(per share)

  

Weighted Average

Remaining Contractual Life

(in years)

  

Aggregate

Intrinsic Value

(in thousands)

 

Outstanding at December 31, 2022

  92,075  $39.98         

Granted

  7,935   111.54         

Exercised

  (3,780)  28.94         

Outstanding at March 31, 2023

  96,230  $46.31   5.68  $8,038 

Exercisable at March 31, 2023

  78,419  $35.81   5.31  $7,374 

Vested and expected to vest at March 31, 2023

  96,230  $46.31  $5.68  $8,038 

 

During the three-month periods ended March 31, 2023 and 2022, the total intrinsic value of all options exercised was approximately $371 thousand and $0, respectively, and the total amount of consideration received by the Company from the exercised options was approximately $109 thousand and $0, respectively. At its discretion, the Company allows option holders to surrender previously owned common stock in lieu of paying the exercise price and withholding taxes. During the three-month period ended March 31, 2023, 861 shares were surrendered at an average market price of $127.05. Zero shares were surrendered during the same period in 2022.

 

Restricted Stock Unit awards

 

The following table summarizes information about RSU activity during the three-month period ended March 31, 2023:

 

  

Restricted Stock Units

  

Weighted Average
Grant Date
Fair Value

 

Outstanding at December 31, 2022

  102,048  $56.02 

Awarded

  44,154   111.54 

Shares vested

  (48,244)  53.39 

Shares forfeited

  (99)  97.61 

Outstanding at March 31, 2023

  97,859  $67.83 

 

At the Company’s discretion, upon vesting, RSU holders are given the option to net-share settle to cover the required minimum withholding tax and the remaining amount is converted into the equivalent number of common shares and issued to the RSU holder. During the three-month periods ended March 31, 2023 and 2022, 20,457 and 19,376 shares were surrendered at an average market price of $117.95 and $67.02, respectively.

 

As of March 31, 2023, the Company had approximately $8.0 million of unrecognized compensation expense that is expected to be recognized over a period of 3 years.

 

13

 

 

(8)

Inventories

 

Inventories are stated at the lower of cost (determined using the first-in, first-out method) or net realizable value, and consist of the following at the stated dates (in thousands):

 

  

March 31,

  

December 31,

 
  

2023

  

2022

 

Raw materials

 $41,106  $42,475 

Work in process

  6,113   4,183 

Finished goods

  9,430   6,878 

Total inventory

 $56,649  $53,536 

 

 

(9)

Property, Plant and Equipment

 

Property, plant, and equipment consist of the following (in thousands):

 

  

March 31,

  

December 31,

 
  

2023

  

2022

 

Land and improvements

 $4,832  $4,811 

Buildings and improvements

  34,525   34,446 

Leasehold improvements

  7,182   5,503 

Machinery & equipment

  52,966   52,233 

Furniture, fixtures, computers & software

  6,416   6,401 

Construction in progress

  7,377   7,272 

Property, plant and equipment

 $113,298  $110,666 

Accumulated depreciation and amortization

  (54,271)  (52,594)

Net property, plant and equipment

 $59,027  $58,072 

 

 

(10)

Leases

 

The Company has operating and finance leases for offices, manufacturing plants, vehicles and certain office and manufacturing equipment. Leases with an initial term of 12 months or less are not recorded on the balance sheet. The Company accounts for each separate lease component of a contract and its associated non-lease components as a single lease component, thus causing all fixed payments to be capitalized. Variable lease payment amounts that cannot be determined at the commencement of the lease such as increases in lease payments based on changes in index rates or usage, are not included in the right of use (“ROU”) assets or lease liabilities. These are expensed as incurred and recorded as variable lease expense. The Company determines if an arrangement is a lease at the inception of a contract. Operating and finance lease ROU assets and operating and finance lease liabilities are stated separately in the condensed consolidated balance sheet. 

 

ROU assets represent the Company's right to use an underlying asset during the lease term and lease liabilities represent the Company's obligation to make lease payments pursuant to the lease.  ROU assets and lease liabilities are recognized at commencement date based on the net present value of fixed lease payments over the lease term.  The Company's assumed lease term includes options to extend or terminate the lease when it is reasonably certain that it will exercise that option.  ROU assets are also adjusted for any deferred or accrued rent. As the Company's leases do not typically provide an implicit rate, the Company uses its incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.

 

14

 

ROU assets and lease liabilities consist of the following (in thousands):

 

 

  

March 31,

  

December 31,

 
  

2023

  

2022

 

Operating lease ROU assets

 $14,318  $12,942 

Finance lease ROU assets

  196   211 

Total ROU assets

 $14,514  $13,153 
         

Operating lease liabilities - current

 $2,879  $2,458 

Finance lease liabilities - current

  59   59 

Total lease liabilities - current

 $2,938  $2,517 
         

Operating lease liabilities - long-term

 $11,732  $10,695 

Finance lease liabilities - long-term

  141   156 

Total lease liabilities - long-term

 $11,873  $10,851 

 

 

  

Three Months Ended

 
  

March 31,

 
  

($ in thousands)

 
  

2023

  

2022

 

Lease Cost:

        

Finance lease cost:

        

Amortization of right of use assets

 $15  $15 

Interest on lease liabilities

  1   1 

Operating lease cost

  711   652 

Variable lease cost

  83   70 

Short-term lease cost

  7   17 

Total lease cost

 $817  $755 

 

 

Cash paid for amounts included in measurement of lease liabilities:

        

Operating cash flows from operating leases

 $683  $540 

Financing cash flows from finance leases

  16   16 

Weighted-average remaining lease term (years):

        

Finance

  3.29   4.29 

Operating

  5.06   3.62 

Weighted-average discount rate:

        

Finance

  2.10%  2.10%

Operating

  3.42%  2.53%

 

The aggregate future lease payments for leases as of March 31, 2023 are as follows (in thousands):

 

  

Finance

  

Operating

 

Remainder of 2023

 $47  $2,192 

2024

  63   2,950 

2025

  63   2,779 

2026

  29   2,402 

2027

  6   2,031 

Thereafter

  -   3,774 

Total lease payments

  208   16,128 

Less: Interest

  (8)  (1,517)

Present value of lease liabilities

 $200  $14,611 

 

15

 

 

(11)

Income Per Share

 

Basic income per share is based on the weighted average number of shares of common stock outstanding. Diluted income per share is based upon the weighted average number of common shares outstanding and dilutive common stock equivalent shares outstanding during each period.

 

The weighted average number of shares used to compute basic and diluted net income per share consisted of the following (in thousands):

 

  

Three Months Ended

 
  

March 31,

 
  

2023

  

2022

 

Basic weighted average common shares outstanding

  7,592   7,544 

Weighted average common equivalent shares due to restricted stock, stock options and RSUs

  89   86 

Diluted weighted average common shares outstanding

  7,681   7,630 

 

The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, when the average market price of the common stock is lower than the exercise price of the related options during the period. These outstanding stock awards are not included in the computation of diluted income per share because the effect would be antidilutive. For both the three-month periods ended March 31, 2023 and 2022, there were no stock awards excluded from the computation of diluted earnings per share for this reason.

 

 

(12)

Segment Reporting

 

The Company consists of a single operating and reportable segment.

 

Revenues shipped to customers outside of the United States comprised approximately 16.6% and 12.0% of the Company’s consolidated revenues for the three months ended March 31, 2023 and 2022, respectively.

 

One customer comprised approximately 22% and 15% of the Company’s consolidated revenues for the three-month periods ended March 31, 2023 and 2022, respectively. One customer represented approximately 17% and 10% of gross accounts receivable at March 31, 2023 and December 31, 2022, respectively. Approximately 18% of all long-lived assets are located outside of the United States.

 

The Company’s products are primarily sold to customers within the Medical, Automotive, Aerospace & Defense, and Industrial/Other markets. Net sales by market for the three-month periods ended March 31, 2023 and 2022 are as follows (in thousands):

 

  

Three Months Ended March 31,

 
  

2023

  

2022

 

Market

 

Net Sales

  

%

  

Net Sales

  

%

 
                 

Medical

 $83,804   85.7% $52,554   73.8%

Automotive

  4,347   4.4%  4,351   6.1%

Aerospace & Defense

  4,217   4.3%  3,755   5.3%

Industrial / Other

  5,385   5.6%  10,582   14.8%

Net Sales

 $97,753   100.0% $71,242   100.0%

 

Certain amounts for the three months ended March 31, 2022 were reclassified between markets to conform to the current year presentation.

 

16

 

 

(13)

Goodwill and Other Intangible Assets

 

The changes in the carrying amount of goodwill for the three months ended March 31, 2023 are as follows (in thousands):

 

  

Goodwill

 
     

December 31, 2022

 $113,028 

Foreign currency translation

  131 

March 31, 2023

 $113,159 

 

The carrying values of the Company’s definite lived intangible assets as of March 31, 2023 are as follows (in thousands):

 

  

Intelletual Property / Tradename & Brand

  

Non-
Compete

  

Customer
List

  

Total

 

Weighted-average amortization period

 

11.9 years

  

9.3 years

  

20 years

     

Gross amount

 $7,103  $5,502  $65,228  $77,833 

Accumulated amortization

  (879)  (1,125)  (8,483) $(10,487)

Net balance

 $6,224  $4,377  $56,745  $67,346 

 

Amortization expense related to intangible assets was approximately $1.1 million and $1.0 million for the three-month periods ended March 31, 2023 and 2022 . The estimated remaining amortization expense as of March 31, 2023 is as follows (in thousands):

 

Remainder of 2023

 $3,308 

2024

  4,401 

2025

  4,401 

2026

  4,399 

2027

  4,397 

2028

  4,350 

Thereafter

  42,090 

Total

 $67,346 

 

 

(14)

Other Long-Term Liabilities

 

Other long-term liabilities consist of the following (in thousands):

 

  

March 31,

  

December 31,

 
  

2023

  

2022

 

Accrued contingent consideration (earn-out)

 $12,421  $9,568 

Present value of non-competition payments

  6,097   8,155 

Other

  965   497 
  $19,483  $18,220 

 

 

(15)

Income Taxes

 

The determination of income tax expense in the accompanying unaudited condensed consolidated statements of income is based upon the estimated effective tax rate for the year, adjusted for the impact of any discrete items which are accounted for in the period in which they occur. The Company recorded income tax expense of approximately 18.1% and 20.2% of income before income tax expense for the three-month periods ended March 31, 2023 and 2022, respectively.

 

17

 

 

(16)

Indebtedness

 

On December 22, 2021, the Company, as the borrower, entered into a secured $130 million Second Amended and Restated Credit Agreement (the “Second Amended and Restated Credit Agreement”) with certain of the Company’s subsidiaries (the “Subsidiary Guarantors”) and Bank of America, N.A., in its capacity as the initial lender, Administrative Agent, Swingline Lender and L/C Issuer, and certain other lenders from time-to-time party thereto. The Second Amended and Restated Credit Agreement amends and restates the Company’s prior credit agreement, originally dated as of February 1, 2018.

 

The credit facilities under the Second Amended and Restated Credit Agreement consist of a $40 million secured term loan to the Company and a secured revolving credit facility, under which the Company may borrow up to $90 million. The Second Amended and Restated Credit Agreement matures on December 21, 2026. The secured term loam requires quarterly principal payments of $1,000,000 commencing on March 31, 2022. The proceeds of the Second Amended and Restated Credit Agreement may be used for general corporate purposes, including funding certain permitted acquisitions. The Company’s obligations under the Second Amended and Restated Credit Agreement are guaranteed by the Subsidiary Guarantors.

 

The Second Amended and Restated Credit Agreement calls for interest determined by the Bloomberg Short-Term Bank Yield Index rate (“BSBY”) plus a margin that ranges from 1.25% to 2.0% or, at the discretion of the Company, the bank’s prime rate less a margin that ranges from .25% to zero. In both cases the applicable margin is dependent upon Company performance. Under the Second Amended and Restated Credit Agreement, the Company is subject to a minimum fixed-charge coverage financial covenant as well as a maximum total funded debt to EBITDA financial covenant. The Second Amended and Restated Credit Agreement contains other covenants customary for transactions of this type, including restrictions on certain payments, permitted indebtedness, and permitted investments. At March 31, 2023, the Company had approximately $60 million in borrowings outstanding under the Second Amended and Restated Credit Agreement, which were used as partial consideration for the DAS Medical and Advant acquisitions, and also had approximately $0.7 million in standby letters of credit outstanding, drawable as a financial guarantee on worker’s compensation insurance policies. At March 31, 2023, the applicable interest rate was approximately 6.1% and the Company was in compliance with all covenants under the Second Amended and Restated Credit Agreement.

 

Long-term debt consists of the following (in thousands):

 

  

March 31,

2023

 

Revolving credit facility

 $25,000 

Term loan

  35,000 

Total long-term debt

  60,000 

Current portion

  (4,000)

Long-term debt, excluding current portion

 $56,000 

 

Future maturities of long-term debt at March 31, 2023 are as follows (in thousands):

 

  

Term Loan

  

Revolving credit facility

  

Total

 

Remainder of 2023

 $3,000  $-  $3,000 

2024

  4,000   -   4,000 

2025

  4,000   -   4,000 

2026

  24,000   25,000   49,000 
  $35,000  $25,000  $60,000 

 

18

 

ITEM 2:         MANAGEMENT'S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS

 

Forward-looking Statements

 

Some of the statements contained in this Report are forward-looking statements within the meaning of Section 27A of the Securities Act of 1933, as amended, and Section 21E of the Securities Exchange Act of 1934, as amended (“Exchange Act”). These statements are subject to known and unknown risks, uncertainties, and other factors, which may cause our or our industry’s actual results, performance, or achievements to be materially different from any future results, performance or achievements expressed or implied by the forward-looking statements. Forward-looking statements include, but are not limited to, statements about the Company’s prospects; statements about the potential further impact the novel coronavirus ("COVID-19") pandemic may have on the Company’s business, financial condition and results of operations, including with respect to the different markets in which the Company participates, the demand for its products, the well-being and availability of the Company’s employees, the continuing operation of the Company’s locations, delayed payments by the Company’s customers and the potential for reduced or canceled orders, the Company’s efforts to address the pandemic, including regarding the safety of its employees, the maintenance of its facilities and the sufficiency of the Company’s supply chain, inventory, liquidity and capital resources, including increased costs in connection with such efforts, the impact of the pandemic on the businesses of the Company’s suppliers and customers, and the overall impact the pandemic may have on the Company’s financial results in 2023; statements about the Company’s acquisition strategies and opportunities and the Company’s growth potential and strategies for growth; expectations regarding customer demand; expectations regarding the Company’s liquidity and capital resources, including the sufficiency of its cash reserves and the availability of borrowing capacity to fund operations and/or potential future acquisitions; anticipated revenues and the timing of such revenues; expectations about shifting the Company’s book of business to higher-margin, longer-run opportunities; anticipated trends and potential advantages in the different markets in which the Company competes, including the medical, aerospace and defense, automotive, consumer, electronics, and industrial markets, and the Company’s plans to expand in certain of its markets; statements regarding anticipated advantages the Company expects to realize from its investments and capital expenditures; statements regarding anticipated advantages to improvements and alterations at the Company’s existing plants; expectations regarding the Company’s manufacturing capacity, operating efficiencies, and new production equipment; statements about new product offerings and program launches; statements about the Company’s participation and growth in multiple markets; statements about the Company’s business opportunities; and any indication that the Company may be able to sustain or increase its sales, earnings or earnings per share, or its sales, earnings or earnings per share growth rates.

 

Investors are cautioned that such forward-looking statements involve risks and uncertainties that could adversely affect the Company’s business and prospects, and otherwise cause actual results to differ materially from those anticipated by such forward-looking statements, or otherwise, including without limitation: the ongoing effects of the COVID-19 pandemic and its impact on the markets in which the Company participates, including its impact on the Company’s customers, suppliers and employees, as well as the U.S. and worldwide economies; risks and uncertainties associated with the ongoing effects of the COVID-19 pandemic and its impact on the Company’s business, financial condition and results of operations, including risks relating to decreased, including substantially decreased, demand for the Company’s products; risks relating to the potential closure of any of the Company’s facilities or the unavailability of key personnel or other employees; risks that the Company’s inventory, cash reserves, liquidity or capital resources may be insufficient; risks relating to delayed payments by our customers and the potential for reduced or canceled orders; risks relating to the increased costs associated with the Company’s efforts to respond to the pandemic; risks associated with the identification of suitable acquisition candidates and the successful, efficient execution of acquisition transactions, the integration of any such acquisition candidates, the value of those acquisitions to our customers and shareholders, and the financing of such acquisitions; risks related to our indebtedness and compliance with covenants contained in our financing arrangements, and whether any available financing may be sufficient to address our needs; risks associated with efforts to shift the Company’s book of business to higher-margin, longer-run opportunities; risks associated with the Company’s entry into and growth in certain markets; risks and uncertainties associated with seeking and implementing manufacturing efficiencies and implementing new production equipment; risks and uncertainties associated with growth of the Company’s business and increases to sales, earnings and earnings per share; and risks associated with new product and program launches. Accordingly, actual results may differ materially.

 

In some cases, you can identify forward-looking statements by terms such as “may,” “will,” “should,” “could,” “would,” “expects,” “plans,” “anticipates,” “believes,” “estimates,” “projects,” “predicts,” “potential,” and similar expressions intended to identify forward-looking statements. Our actual results could be different from the results described in or anticipated by our forward-looking statements due to the inherent uncertainty of estimates, forecasts, and projections, and may be materially better or worse than anticipated. Given these uncertainties, you should not place undue reliance on these forward-looking statements. Forward-looking statements represent our current beliefs, estimates and assumptions and are only as of the date of this Report. We expressly disclaim any duty to provide updates to forward-looking statements, and the estimates and assumptions associated with them, after the date of this Report, in order to reflect changes in circumstances or expectations, or the occurrence of unanticipated events, except to the extent required by applicable securities laws. All of the forward-looking statements are qualified in their entirety by reference to the factors discussed above and under “Risk Factors” set forth in Part I Item 1A of our Annual Report on Form 10-K for the fiscal year ended December 31, 2022, as well as the risks and uncertainties discussed elsewhere in this Report. We qualify all of our forward-looking statements by these cautionary statements. We caution you that these risks are not exhaustive. We operate in a continually changing business environment and new risks emerge from time to time.

 

19

 

Unless the context requires otherwise, the terms “we”, “us”, “our”, or “the Company” refer to UFP Technologies, Inc. and its consolidated subsidiaries.

 

Overview

 

UFP Technologies is a designer and custom manufacturer of comprehensive solutions for medical devices, sterile packaging, and other highly engineered custom products. UFP is an important link in the medical device supply chain and a valued outsource partner to many of the top medical device manufacturers in the world. The Company’s single-use and single-patient devices and components are used in a wide range of medical devices and packaging for minimally invasive surgery, infection prevention, wound care, wearables, orthopedic soft goods, and orthopedic implants.

 

The Company’s current strategy includes further organic growth and growth through strategic acquisitions.

 

Sales for the Company for the three-month period ended March 31, 2023 increased 37.2% to $97.8 million from $71.2 million in the same period last year, primarily due to an increase in organic sales of approximately 35.8%. The organic sales increase was primarily due to organic growth in the medical market of 48.1%. Gross profit as a percentage of sales (“gross margin”) for the three-month period ended March 31, 2023 increased to 29.4% from 24.1% in the same period last year, largely due to improved operating efficiencies and price adjustments in response to inflationary increases in input costs. Operating income and net income increased 101.9% and 100.5%, respectively.

 

Results of Operations

 

Sales

 

Sales for the three-month period ended March 31, 2023 increased approximately 37.2% to $97.8 million from sales of $71.2 million for the same period in 2022. The increase in sales is primarily due to increases in sales to customers in the Medical markets of 59.5%, including $6.0 million of sales from Advant Medical which was acquired on March 16, 2022. Sales to all other markets declined 25.4%, primarily due to the Company’s disposition of its molded fiber business in July, 2022 (see “Note 2. Acquisition and Divestiture” in the notes to our interim condensed consolidated financial statements).

 

Gross Profit

 

Gross margin increased to 29.4% for the three-month period ended March 31, 2023, from 24.1% for the same period in 2022. As a percentage of sales, material and labor costs collectively increased 0.9% while overhead costs decreased 6.2%. The increase in gross margin is primarily due to the leverage of organic sales growth over the fixed portion of overhead, as well as improved operating efficiencies and price adjustments in response to inflationary increases in input costs.

 

Selling, General and Administrative Expenses

 

Selling, general, and administrative expenses (“SG&A”) increased approximately 29.9% to $13.0 million for the three-month period ended March 31, 2023, from $10.0 million for the same period in 2022 largely due to increased compensation, benefits and payroll tax expenses and the additional SG&A expenses from the Advant acquisition. As a percentage of sales, SG&A decreased to 13.3% for the three-month period ended March 31, 2023, from 14.1% for the same three-month period in 2022, primarily due to the leverage of organic sales growth over relatively fixed SG&A.

 

20

 

Change in fair value of contingent consideration

 

In connection with the acquisitions of Contech Medical and DAS Medical in 2021, the Company is required to make contingent payments, subject to the entities achieving certain financial performance thresholds. The potential contingent consideration payments for both the DAS Medical and Contech Medical acquisitions combined are $25 million, of which $20 million remains to potentially be paid as of March 31, 2023 and December 31, 2022. The fair value of the liabilities for the contingent consideration payments recognized upon the acquisition as part of the purchase accounting opening balance sheets totaled approximately $9.7 million and was estimated by discounting to present value the probability-weighted contingent payments expected to be made. Assumptions used in this calculation were managements financial forecasts, discount rate and various volatility factors. The ultimate settlement of contingent consideration could deviate from current estimates based on the actual results of these financial measures. This liability is considered to be a Level 3 financial liability that is re-measured each reporting period. The fair value of the liabilities for the contingent consideration payments recognized at March 31, 2023 totaled approximately $17.4 million. The change in fair value of contingent consideration for the DAS Medical acquisition for the three-months ended March 31, 2023, resulted in an expense of approximately $2.9 million, and was included in change in fair value of contingent consideration in the condensed consolidated statements of income and comprehensive income. The Company paid $5 million during the fourth quarter of 2022 to fully satisfy the contingent consideration for the Contech Medical acquisition.

 

Interest expense, net

 

Net interest expense was approximately $869 thousand and $327 thousand for the three-month periods ended March 31, 2023 and 2022, respectively. The increase was primarily due to borrowings to fund the Company’s recent acquisitions.

 

Other expense (income)

 

Other expense was approximately $77 thousand and other income was approximately $52 thousand for the three-month periods ended March 31, 2023 and 2022, respectively. The increase in other expense was primarily generated by foreign currency transaction losses.

 

Income Taxes

 

The Company recorded tax expense of approximately 18.1% and 20.2% of income before income tax expense, respectively, for each of the three-month periods ended March 31, 2023 and 2022. The decrease in the effective tax rate for the current period as compared to the prior period was largely due to increased discrete tax benefits associated with the issuance of stock compensation as well as lower statutory tax rates from foreign taxable income in 2023.

 

Liquidity and Capital Resources

 

The Company generally funds its operating expenses, capital requirements, and growth plan through internally generated cash and bank credit facilities.

 

Cash Flows

 

Net cash provided by operations for the three-month period ended March 31, 2023 was approximately $1.7 million and was primarily a result of net income generated of approximately $9.7 million, depreciation and amortization of approximately $2.8 million, share-based compensation of approximately $1.1 million, a change in the fair value of contingent consideration of approximately $2.9 million, an increase in income taxes payable of approximately $2.8 million, and an increase in other liabilities of approximately $0.5 million.

 

These cash inflows and adjustments to income were offset by a decrease in deferred taxes of approximately $0.5 million, an increase in accounts receivable of approximately $4.9 million due to higher sales in the last two months of the first quarter of 2023 as compared to the same period in the fourth quarter of 2022, an increase in inventory of approximately $3.1 million due to inventory build for upcoming demand and restocking to historical levels, an increase in prepaid expenses of approximately $0.4 million primarily due to the payment of current year insurance policies, an increase in other assets of approximately $1.9 million due to increased right of use lease assets, a decrease in accrued expenses of approximately $6.2 million due primarily to the payment of accrued compensation and a decrease in deferred revenue of approximately $1.1 million to the recognition of deferred tooling and development revenue.

 

Net cash used in investing activities during the three-month period ended March 31, 2023 was approximately $2.2 million and was primarily the result of additions of manufacturing machinery and equipment and various building improvements across the Company.

 

21

 

Net cash provided by financing activities was approximately $2.6 million during the three-month period ended March 31, 2023, representing borrowings under our credit facility of approximately $6.0 million, partially offset by principal payments of long-term debt of approximately $1.0 million, and payments of statutory withholding for stock options exercised and restricted stock units vested of approximately $2.5 million.

 

Outstanding and Available Debt

 

On December 22, 2021, the Company, as the borrower, entered into a secured $130 million Second Amended and Restated Credit Agreement (the “Second Amended and Restated Credit Agreement”) with certain of the Company’s subsidiaries (the “Subsidiary Guarantors”) and Bank of America, N.A., in its capacity as the initial lender, Administrative Agent, Swingline Lender and L/C Issuer, and certain other lenders from time-to-time party thereto. The Second Amended and Restated Credit Agreement amends and restates the Company’s prior credit agreement, originally dated as of February 1, 2018.

 

The credit facilities under the Second Amended and Restated Credit Agreement consist of a $40 million secured term loan to the Company and a secured revolving credit facility, under which the Company may borrow up to $90 million. The Second Amended and Restated Credit Agreement matures on December 21, 2026. The secured term loam requires quarterly principal payments of $1,000,000 commencing on March 31, 2022. The proceeds of the Second Amended and Restated Credit Agreement may be used for general corporate purposes, including funding certain permitted acquisitions. The Company’s obligations under the Second Amended and Restated Credit Agreement are guaranteed by the Subsidiary Guarantors.

 

The Second Amended and Restated Credit Agreement calls for interest determined by the Bloomberg Short-Term Bank Yield Index rate (“BSBY”) plus a margin that ranges from 1.25% to 2.0% or, at the discretion of the Company, the bank’s prime rate less a margin that ranges from .25% to zero. In both cases the applicable margin is dependent upon Company performance. Under the Second Amended and Restated Credit Agreement, the Company is subject to a minimum fixed-charge coverage financial covenant as well as a maximum total funded debt to EBITDA financial covenant. The Second Amended and Restated Credit Agreement contains other covenants customary for transactions of this type, including restrictions on certain payments, permitted indebtedness, and permitted investments. At March 31, 2023, the Company had approximately $60 million in borrowings outstanding under the Second Amended and Restated Credit Agreement, which were used as partial consideration for the DAS Medical and Advant acquisitions, and also had approximately $0.7 million in standby letters of credit outstanding, drawable as a financial guarantee on worker’s compensation insurance policies. At March 31, 2023, the applicable interest rate was approximately 6.1% and the Company was in compliance with all covenants under the Second Amended and Restated Credit Agreement.

 

Long-term debt consists of the following (in thousands):

 

   

March 31,

2023

 

Revolving credit facility

  $ 25,000  

Term loan

    35,000  

Total long-term debt

    60,000  

Current portion

    (4,000 )

Long-term debt, excluding current portion

  $ 56,000  

 

Future maturities of long-term debt at March 31, 2023 are as follows (in thousands):

 

   

Term Loan

   

Revolving credit facility

   

Total

 

Remainder of 2023

  $ 3,000     $ -     $ 3,000  

2024

    4,000       -       4,000  

2025

    4,000       -       4,000  

2026

    24,000       25,000       49,000  
    $ 35,000     $ 25,000     $ 60,000  

 

22

 

Future Liquidity

 

The Company requires cash to pay its operating expenses, purchase capital equipment, and to service its contractual obligations. The Company’s principal sources of funds are its operations and its amended and restated credit facility. The Company generated cash of approximately $1.7 million from operations during the three months ended March 31, 2023; and the Company cannot guarantee that its operations will generate cash in future periods. The Company’s longer-term liquidity is contingent upon future operating performance and draws on the revolving credit facility are possible. Further, the continued economic uncertainty resulting from inflation, the Ukraine war and the COVID-19 pandemic could affect the Company’s long-term ability to access the public markets and obtain necessary capital in order to properly capitalize and continue operations.

 

Throughout fiscal 2023, the Company plans to continue to add capacity to enhance operating efficiencies in its manufacturing plants. The Company may consider additional acquisitions of companies, technologies, or products that are complementary to its business. The Company believes that its existing resources, including its revolving credit facility, together with cash expected to be generated from operations, will be sufficient to fund its cash flow requirements, including capital asset acquisitions, through the next twelve months.

 

The Company may also require additional capital in the future to fund capital expenditures, acquisitions, or other investments. These capital requirements could be substantial. The Company anticipates that any future expansion of its business will be financed through existing resources, cash flow from operations, the Company's revolving credit facility, or other new financing. The Company cannot guarantee that it will be able to meet existing financial covenants or obtain other new financing on favorable terms, if at all. The Company's liquidity will be impacted to the extent additional stock repurchases are made under the Company's stock repurchase program.

 

Stock Repurchase Program

 

The Company accounts for treasury stock under the cost method, using the first-in, first-out flow assumption, and includes treasury stock as a component of stockholders’ equity. On June 16, 2015, the Company announced that its Board of Directors authorized the repurchase of up to $10.0 million of the Company’s outstanding common stock. Under the program, the Company is authorized to repurchase shares through Rule 10b5-1 plans, open market purchases, privately negotiated transactions, block purchases or otherwise in accordance with applicable federal securities laws, including Rule 10b-18 of the Securities Exchange Act of 1934. The stock repurchase program will end upon the earlier of the date on which the plan is terminated by the Board or when all authorized repurchases are completed. The timing and amount of stock repurchases, if any, will be determined based upon our evaluation of market conditions and other factors. The stock repurchase program may be suspended, modified, or discontinued at any time, and the Company has no obligation to repurchase any amount of its common stock under the program. The Company did not repurchase any shares of its common stock under this program in the first three months of 2023 and has not repurchased any shares under this program since 2015. At March 31, 2023 approximately $9.4 million was available for future repurchases of the Company’s common stock under this authorization.

 

Critical Accounting Estimates

 

There have been no material changes to the Company’s Critical Accounting Estimates, as disclosed in our Annual Report on Form 10-K for the year ended December 31, 2022.

 

Commitments and Contractual Obligations

 

There have been no material changes outside the ordinary course of business to our contractual obligations and commitments, as disclosed in our Annual Report on Form 10-K for the year ended December 31, 2022.

 

ITEM 3:         QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK

 

There have been no material changes in our market risks as previously disclosed in Item 7A of our Annual Report on Form 10-K for the year ended December 31, 2022.

 

ITEM 4:         CONTROLS AND PROCEDURES

 

23

 

As of the end of the period covered by this report (the “Evaluation Date”), the Company’s management, under the supervision and with the participation of the Company’s Chief Executive Officer and Chief Financial Officer, performed an evaluation of the effectiveness of the design and operation of the Company’s “disclosure controls and procedures” (as defined in Exchange Act Rule 13a-15(e) or 15d-15(e)). Based upon that evaluation, the Chief Executive Officer and Chief Financial Officer concluded that, as of the Evaluation Date, the Company’s disclosure controls and procedures were effective to ensure that information required to be disclosed by the Company in the reports that it files or submits under the Exchange Act, is (i) recorded, processed, summarized, and reported within the time periods specified in the Securities and Exchange Commission’s rules and forms, and (ii) accumulated and communicated to the Company’s management, including the Chief Executive Officer and Chief Financial Officer, as appropriate to allow timely decisions regarding required disclosure.

 

An evaluation was also performed under the supervision and with the participation of our management, including the Company’s Chief Executive Officer and Chief Financial Officer, of any change in our internal control over financial reporting that occurred during our last fiscal quarter that has materially affected, or is reasonably likely to materially affect, the Company’s internal control over financial reporting. That evaluation did not identify any change in the Company’s internal control over financial reporting that occurred during our latest fiscal quarter that has materially affected, or is reasonably likely to materially affect, the Company’s internal control over financial reporting.

 

 

PART II:         OTHER INFORMATION

 

ITEM 1:         LEGAL PROCEEDINGS

 

The Company is not a party to any material litigation or other material legal proceedings. From time to time, the Company may be a party to various suits, claims and complaints arising in the ordinary course of business. In the opinion of management of the Company, these suits, claims and complaints should not result in final judgments or settlements that, in the aggregate, would have a material adverse effect on the Company’s financial condition or results of operations.

 

ITEM 1A:       RISK FACTORS

 

The Company faces a number of uncertainties and risks that are difficult to predict and many of which are outside of the Company's control. For a detailed discussion of the risks that affect our business, please refer to Part I, Item IA, “Risk Factors” in our Annual Report on Form 10-K for the fiscal year ended December 31, 2022 and Part II, Item 1A.  There have been no material changes from the risk factors included in our Annual Report on Form 10-K for the fiscal year ended December 31, 2022.

 

ITEM 2:         UNREGISTERED SALES OF EQUITY SECURITIES AND USE OF PROCEEDS

 

None.

 

ITEM 3:         DEFAULTS UPON SENIOR SECURITIES

 

None.

 

ITEM 4:         MINE SAFETY DISCLOSURES

 

Not Applicable.

 

ITEM 5:         OTHER INFORMATION

 

None.

 

24

 

ITEM 6:         EXHIBITS

 

Exhibit No. Description

3.1

Second Amended and Restated Bylaws of UFP Technologies, Inc. (incorporated by reference to Exhibit 3.1 to the Company’s Current Report on Form 8-K, filed with the SEC on April 24, 2023 (SEC File No. 001-12648)). 

31.1

Rule 13a-14(a)/15d-14(a) Certification of the Chief Executive Officer.*

31.2

Rule 13a-14(a)/15d-14(a) Certification of the Chief Financial Officer.*

32.1

Certifications 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 Calculation Linkbase Document.*

101.LAB

Inline XBRL Taxonomy Label Linkbase Document.*

101.PRE

Inline XBRL Taxonomy Presentation Linkbase Document.*

101.DEF

Inline XBRL Taxonomy Extension Definition Linkbase Document.*

104 Cover Page Interactive Data File (formatted as Inline XBRL with applicable taxonomy extension information contained in Exhibits 101)

_______________

*         Filed herewith.

**         Furnished herewith.

 

 

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.

 

UFP TECHNOLOGIES, INC.

 

Date: May 10, 2023

 

By: /s/ R. Jeffrey Bailly

   

R. Jeffrey Bailly

Chairman, Chief Executive Officer, President, and Director

(Principal Executive Officer)

     

Date: May 10, 2023

 

By: /s/ Ronald J. Lataille 

   

Ronald J. Lataille

Chief Financial Officer

(Principal Financial Officer)

 

 

 

 

25
EX-31.1 2 ex_512699.htm EXHIBIT 31.1 HTML Editor

EXHIBIT 31.1

 

Certification Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

 

I, R. Jeffrey Bailly, President and Chief Executive Officer of UFP Technologies, Inc. certify that:

 

 

1.

I have reviewed this quarterly report on Form 10-Q of UFP Technologies, Inc.;

 

 

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 10, 2023 /s/ R. Jeffrey Bailly        
  R. Jeffrey Bailly
  Chairman, Chief Executive Officer, President, and Director
  (Principal Executive Officer)

 

 
EX-31.2 3 ex_512700.htm EXHIBIT 31.2 HTML Editor

EXHIBIT 31.2

 

Certification Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

 

I, Ronald J. Lataille, Chief Financial Officer of UFP Technologies, Inc., certify that:

 

 

1.

I have reviewed this quarterly report on Form 10-Q of UFP Technologies, Inc.;

 

 

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 10, 2023 /s/ Ronald J. Lataille     
  Ronald J. Lataille
  Chief Financial Officer
  (Principal Financial Officer)

 

 
EX-32.1 4 ex_512701.htm EXHIBIT 32.1 HTML Editor

EXHIBIT 32.1

 

Certification

Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002

(Subsections (a) and (b) of Section 1350, Chapter 63 of Title 18, United States Code)

 

Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002 (subsections (a) and (b) of Section 1350, Chapter 63 of Title 18, United States Code), the undersigned officers of UFP Technologies, Inc., a Delaware corporation (the “Company”) do hereby certify that, to the best of such officers’ knowledge and belief, that:

 

(1)    The Quarterly Report on Form 10-Q for the quarter ended March 31, 2023, (the “Form 10‑Q”) of the Company 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 Form 10-Q fairly presents, in all materials respects, the financial condition and results of operations of the Company.

 

Date:  May 10, 2023 /s/ R. Jeffrey Bailly                          
  R. Jeffrey Bailly
  Chairman, Chief Executive Officer, President, and Director
  (Principal Executive Officer)
   
Date:   May 10, 2023 /s/ Ronald J. Lataille                        
  Ronald J. Lataille
  Chief Financial Officer
  (Principal Financial Officer)

 

A signed original of these written statements required by Section 906 has been provided to UFP Technologies, Inc. and will be retained by UFP Technologies, Inc. and furnished to the Securities and Exchange Commission or its staff upon request.

 
EX-101.SCH 5 ufpt-20230331.xsd XBRL TAXONOMY EXTENSION SCHEMA 000 - Document - Document And Entity Information link:calculationLink link:definitionLink link:presentationLink 001 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) link:calculationLink link:definitionLink link:presentationLink 002 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) link:calculationLink link:definitionLink link:presentationLink 003 - Statement - Condensed Consolidated Statements of Income (Unaudited) link:calculationLink link:definitionLink link:presentationLink 004 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited) link:calculationLink link:definitionLink link:presentationLink 005 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited) link:calculationLink link:definitionLink link:presentationLink 006 - Disclosure - Note 1 - Basis of Presentation link:calculationLink link:definitionLink link:presentationLink 007 - Disclosure - Note 2 - Acquisitions and Divestiture link:calculationLink link:definitionLink link:presentationLink 008 - Disclosure - Note 3 - Revenue Recognition link:calculationLink link:definitionLink link:presentationLink 009 - Disclosure - Note 4 - Supplemental Cash Flow Information link:calculationLink link:definitionLink link:presentationLink 010 - Disclosure - Note 5 - Receivables and Allowance for Credit Losses link:calculationLink link:definitionLink link:presentationLink 011 - Disclosure - Note 6 - Fair Value of Financial Instruments link:calculationLink link:definitionLink link:presentationLink 012 - Disclosure - Note 7 - Share-based Compensation link:calculationLink link:definitionLink link:presentationLink 013 - Disclosure - Note 8 - Inventories link:calculationLink link:definitionLink link:presentationLink 014 - Disclosure - Note 9 - Property, Plant and Equipment link:calculationLink link:definitionLink link:presentationLink 015 - Disclosure - Note 10 - Leases link:calculationLink link:definitionLink link:presentationLink 016 - Disclosure - Note 11 - Income Per Share link:calculationLink link:definitionLink link:presentationLink 017 - Disclosure - Note 12 - Segment Reporting link:calculationLink link:definitionLink link:presentationLink 018 - Disclosure - Note 13 - Goodwill and Other Intangible Assets link:calculationLink link:definitionLink link:presentationLink 019 - Disclosure - Note 14 - Other Long-term Liabilities link:calculationLink link:definitionLink link:presentationLink 020 - Disclosure - Note 15 - Income Tax link:calculationLink link:definitionLink link:presentationLink 021 - Disclosure - Note 16 - Indebtedness link:calculationLink link:definitionLink link:presentationLink 022 - Disclosure - Note 2 - Acquisitions and Divestiture (Tables) link:calculationLink link:definitionLink link:presentationLink 023 - Disclosure - Note 3 - Revenue Recognition (Tables) link:calculationLink link:definitionLink link:presentationLink 024 - Disclosure - Note 4 - Supplemental Cash Flow Information (Tables) link:calculationLink link:definitionLink link:presentationLink 025 - Disclosure - Note 5 - Receivables and Allowance for Credit Losses (Tables) link:calculationLink link:definitionLink link:presentationLink 026 - Disclosure - Note 6 - Fair Value of Financial Instruments (Tables) link:calculationLink link:definitionLink link:presentationLink 027 - Disclosure - Note 7 - Share-based Compensation (Tables) link:calculationLink link:definitionLink link:presentationLink 028 - Disclosure - Note 8 - Inventories (Tables) link:calculationLink link:definitionLink link:presentationLink 029 - Disclosure - Note 9 - Property, Plant and Equipment (Tables) link:calculationLink link:definitionLink link:presentationLink 030 - Disclosure - Note 10 - Leases (Tables) link:calculationLink link:definitionLink link:presentationLink 031 - Disclosure - Note 11 - Income Per Share (Tables) link:calculationLink link:definitionLink link:presentationLink 032 - Disclosure - Note 12 - Segment Reporting (Tables) link:calculationLink link:definitionLink link:presentationLink 033 - Disclosure - Note 13 - Goodwill and Other Intangible Assets (Tables) link:calculationLink link:definitionLink link:presentationLink 034 - Disclosure - Note 14 - Other Long-term Liabilities (Tables) link:calculationLink link:definitionLink link:presentationLink 035 - Disclosure - Note 16 - Indebtedness (Tables) link:calculationLink link:definitionLink link:presentationLink 036 - Disclosure - Note 2 - Acquisitions and Divestiture (Details Textual) link:calculationLink link:definitionLink link:presentationLink 037 - Disclosure - Note 2 - Acquisitions - Assets Acquires and Liabilities Assumed (Details) link:calculationLink link:definitionLink link:presentationLink 038 - Disclosure - Note 2 - Acquisition - Pro Forma Information (Unaudited) (Details) link:calculationLink link:definitionLink link:presentationLink 039 - Disclosure - Note 3 - Revenue Recognition (Details Textual) link:calculationLink link:definitionLink link:presentationLink 040 - Disclosure - Note 3 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details) link:calculationLink link:definitionLink link:presentationLink 041 - Disclosure - Note 3 - Revenue Recognition - Contract Assets and Liabilities (Details) link:calculationLink link:definitionLink link:presentationLink 042 - Disclosure - Note 4 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details) link:calculationLink link:definitionLink link:presentationLink 043 - Disclosure - Note 5 - Receivables and Allowance for Credit Losses - Receivables (Details) link:calculationLink link:definitionLink link:presentationLink 044 - Disclosure - Note 5 - Receivables and Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (Details) link:calculationLink link:definitionLink link:presentationLink 045 - Disclosure - Note 6 - Fair Value of Financial Instruments (Details Textual) link:calculationLink link:definitionLink link:presentationLink 046 - Disclosure - Note 6 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details) link:calculationLink link:definitionLink link:presentationLink 047 - Disclosure - Note 7 - Share-based Compensation (Details Textual) link:calculationLink link:definitionLink link:presentationLink 048 - Disclosure - Note 7 - Share-based Compensation - Compensation Cost (Details) link:calculationLink link:definitionLink link:presentationLink 049 - Disclosure - Note 7 - Share-based Compensation - Summary of Stock Option Activity (Details) link:calculationLink link:definitionLink link:presentationLink 050 - Disclosure - Note 7 - Share-based Compensation - Restricted Stock Unit Activity (Details) link:calculationLink link:definitionLink link:presentationLink 051 - Disclosure - Note 8 - Inventories - Summary of Inventory (Details) link:calculationLink link:definitionLink link:presentationLink 052 - Disclosure - Note 9 - Property, Plant and Equipment - Property, Plant, and Equipment (Details) link:calculationLink link:definitionLink link:presentationLink 053 - Disclosure - Note 10 - Leases - Right-of-Use Assets and Lease Liabilities (Details) link:calculationLink link:definitionLink link:presentationLink 054 - Disclosure - Note 10 - Leases - Lease Cost (Details) link:calculationLink link:definitionLink link:presentationLink 055 - Disclosure - Note 10 - Leases - Aggregate Future Lease Payments (Details) link:calculationLink link:definitionLink link:presentationLink 056 - Disclosure - Note 11 - Income Per Share (Details Textual) link:calculationLink link:definitionLink link:presentationLink 057 - Disclosure - Note 11 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details) link:calculationLink link:definitionLink link:presentationLink 058 - Disclosure - Note 12 - Segment Reporting (Details Textual) link:calculationLink link:definitionLink link:presentationLink 059 - Disclosure - Note 12 - Segment Reporting - Net Sales by Market (Details) link:calculationLink link:definitionLink link:presentationLink 060 - Disclosure - Note 13 - Goodwill and Other Intangible Assets (Details Textual) link:calculationLink link:definitionLink link:presentationLink 061 - Disclosure - Note 13 - Goodwill and Other Intangible Assets - Changes in Carrying Amount of Goodwill (Details) link:calculationLink link:definitionLink link:presentationLink 062 - Disclosure - Note 13 - Goodwill and Other Intangible Assets - Definite-lived Intangible Assets (Details) link:calculationLink link:definitionLink link:presentationLink 063 - Disclosure - Note 13 - Goodwill and Other Intangible Assets - Future Amortization of Intangible Assets (Details) link:calculationLink link:definitionLink link:presentationLink 064 - Disclosure - Note 14 - Other Long-term Liabilities - Other Long-term Liabilities (Details) link:calculationLink link:definitionLink link:presentationLink 065 - Disclosure - Note 15 - Income Tax (Details Textual) link:calculationLink link:definitionLink link:presentationLink 066 - Disclosure - Note 16 - Indebtedness (Details Textual) link:calculationLink link:definitionLink link:presentationLink 067 - Disclosure - Note 16 - Indebtedness - Long-term Debt (Details) link:calculationLink link:definitionLink link:presentationLink 068 - Disclosure - Note 16 - Indebtedness - Schedule of Maturity (Details) link:calculationLink link:definitionLink link:presentationLink EX-101.CAL 6 ufpt-20230331_cal.xml XBRL TAXONOMY EXTENSION CALCULATION LINKBASE EX-101.DEF 7 ufpt-20230331_def.xml XBRL TAXONOMY EXTENSION DEFINITION LINKBASE EX-101.LAB 8 ufpt-20230331_lab.xml XBRL TAXONOMY EXTENSION LABEL LINKBASE Document And Entity Information Finite-Lived Intangibles Note To Financial Statement Details Textual Note 2 - Acquisitions and Divestiture Note 3 - Revenue Recognition Note 4 - Supplemental Cash Flow Information Note 5 - Receivables and Allowance for Credit Losses Note 6 - Fair Value of Financial Instruments Note 7 - Share-based Compensation Note 8 - Inventories Note 9 - Property, Plant and Equipment Note 10 - Leases Accounts receivable Income Tax Disclosure [Text Block] Note 11 - Income Per Share Other current assets Note 12 - Segment Reporting Note 13 - Goodwill and Other Intangible Assets Note 14 - Other Long-term Liabilities Inventory Note 16 - Indebtedness us-gaap_LiabilitiesCurrent Total current liabilities Schedule of Maturities of Long-Term Debt [Table Text Block] Note 2 - Acquisitions - Assets Acquires and Liabilities Assumed (Details) Schedule of Debt [Table Text Block] Note 2 - Acquisition - Pro Forma Information (Unaudited) (Details) Note 3 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details) Note 3 - Revenue Recognition - Contract Assets and Liabilities (Details) Note 4 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details) Note 5 - Receivables and Allowance for Credit Losses - Receivables (Details) us-gaap_BusinessCombinationConsiderationTransferred1 Total consideration Note 5 - Receivables and Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (Details) Note 6 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details) Note 7 - Share-based Compensation - Compensation Cost (Details) Note 7 - Share-based Compensation - Summary of Stock Option Activity (Details) Other liability Note 7 - Share-based Compensation - Restricted Stock Unit Activity (Details) us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred Business Combination, Consideration Transferred, Liabilities Incurred Note 8 - Inventories - Summary of Inventory (Details) Note 9 - Property, Plant and Equipment - Property, Plant, and Equipment (Details) Note 10 - Leases - Right-of-Use Assets and Lease Liabilities (Details) Share-Based Payment Arrangement, Option, Activity [Table Text Block] Note 10 - Leases - Lease Cost (Details) Note 10 - Leases - Aggregate Future Lease Payments (Details) Awarded, weighted average award date fair value (in dollars per share) Foreign currency translation gain Note 11 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details) us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired Business Acquisition, Percentage of Voting Interests Acquired Shares vested, weighted average award date fair value (in dollars per share) Note 12 - Segment Reporting - Net Sales by Market (Details) Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block] Shares forfeited, weighted average award date fair value (in dollars per share) Note 13 - Goodwill and Other Intangible Assets - Changes in Carrying Amount of Goodwill (Details) us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue Outstanding, weighted average award date fair value (in dollars per share) Outstanding, weighted average award date fair value (in dollars per share) Note 13 - Goodwill and Other Intangible Assets - Definite-lived Intangible Assets (Details) Note 13 - Goodwill and Other Intangible Assets - Future Amortization of Intangible Assets (Details) us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod Shares forfeited, restricted stock units (in shares) us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic Basic (in dollars per share) Note 14 - Other Long-term Liabilities - Other Long-term Liabilities (Details) us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber Outstanding, restricted stock units (in shares) Outstanding, restricted stock units (in shares) Note 16 - Indebtedness - Long-term Debt (Details) Note 16 - Indebtedness - Schedule of Maturity (Details) Notes To Financial Statements Notes To Financial Statements [Abstract] Awarded, restricted stock units (in shares) us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod Shares vested, restricted stock units (in shares) us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted Diluted (in dollars per share) Vested and expected to vest, weighted average remaining contractual life (Year) us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice Vested and expected to vest, weighted average exercise price (in dollars per share) Current portion of long-term debt Current portion Other comprehensive income: us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber Vested and expected to vest, shares under options (in shares) Vested and expected to vest, aggregate intrinsic value us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice Exercisable, weighted average exercise price (in dollars per share) us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax Operating income us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 Exercisable, weighted average remaining contractual life (Year) us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss Net income us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 Exercisable, aggregate intrinsic value us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual Business Combination, Pro Forma Information, Earnings or Loss of Acquiree since Acquisition Date, Actual us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value Business Acquisition, Pro Forma Information [Table Text Block] us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber Exercisable, shares under options (in shares) us-gaap_BusinessAcquisitionsProFormaRevenue Sales Outstanding, weighted average remaining contractual life (Year) Outstanding, aggregate intrinsic value us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice Outstanding, weighted average exercise price (in dollars per share) Outstanding, weighted average exercise price (in dollars per share) Deferred revenue Schedule of Goodwill [Table Text Block] us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice Granted (in dollars per share) us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice Granted, weighted average exercise price (in dollars per share) Accrued expenses us-gaap_AccruedIncomeTaxesCurrent Income taxes payable Accounts payable us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber Outstanding, shares under options (in shares) Outstanding, shares under options (in shares) Revolving Credit Facility [Member] Loans, Notes, Trade and Other Receivables Disclosure [Text Block] Capital additions accrued but not yet paid Credit Facility [Axis] Proceeds from sale of fixed assets Credit Facility [Domain] Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block] us-gaap_PolicyTextBlockAbstract Accounting Policies us-gaap_PaymentsToAcquirePropertyPlantAndEquipment Additions to property, plant, and equipment Weighted average common equivalent shares due to restricted stock, stock options and RSUs (in shares) ufpt_FinanceLeaseLiabilityToBePaidAfterYearFour Thereafter, finance Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach). ufpt_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour Thereafter, operating Amount of lessee's undiscounted obligation for lease payment for operating lease due after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach). Non-cash investing and financing activities: Weighted average common shares outstanding: Noncompete Agreements [Member] Income taxes, net of refunds Current liabilities: Product [Member] us-gaap_Assets Total assets Cash paid for: us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year) Intellectual Property [Member] Customer Lists [Member] Mergers, Acquisitions and Dispositions Disclosures [Text Block] us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense Share-Based Payment Arrangement, Expense, Tax Benefit Deferred income taxes Share-Based Payment Arrangement [Text Block] Finite-Lived Intangible Assets by Major Class [Axis] Finite-Lived Intangible Assets, Major Class Name [Domain] us-gaap_ContractWithCustomerAssetNet Unbilled Receivables - beginning of period Unbilled Receivables - end of period Award Type [Domain] Award Type [Axis] Net income Net income us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization Accumulated amortization us-gaap_FiniteLivedIntangibleAssetsNet Total us-gaap_IntangibleAssetsNetExcludingGoodwill Intangible assets, net Net balance Restricted Stock Units (RSUs) [Member] Gross amount Share-Based Payment Arrangement [Member] Foreign currency translation us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment Accumulated depreciation and amortization Property, plant and equipment, net Net property, plant and equipment Goodwill December 31, 2022 March 31, 2023 Property, plant, and equipment Long-Term Debt, Type [Axis] Long-Term Debt, Type [Domain] ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice Shares Paid for Tax Withholding for Share Based Compensation Market Price (in dollars per share) For net-share settlement of share-based awards when the employer settles employees' income tax withholding obligations, this element represents the market price per share of shares used by the employees to repay the employer. Employee and Nonemployee Stock Option [Member] Contract that gives the holder the right, but not the obligation, either to purchase or to sell a certain number of shares of stock at a predetermined price for a specified period of time. Medical [Member] Information pertaining to the Medical group of major customers. Cash flows from investing activities: Automotive [Member] Information pertaining to the Automotive group of major customers. Industrial [Member] Information pertaining to the Industrial group of major customers. Income taxes payable Aerospace & Defense [Member] Information pertaining to the Aerospace & Defense group of major customers. Net income per share: Earnings Per Share [Text Block] Non-qualified deferred compensation plan and other liabilities Line of Credit [Member] Accrued expenses us-gaap_IncreaseDecreaseInAccruedLiabilities Income tax expense Subsidiary Guarantors [Member] Related to the subsidiary guarantors granting the credit agreement to the company. Furniture, Fixtures, and Computers [Member] Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities and long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems. Schedule of Employee Service Share Based Compensation Allocation of Recognized Period Costs, By Award Type [Table Text Block] Tabular disclosure of the allocation of equity-based compensation costs to a given line item on the balance sheet and income statement for the period. This may include the reporting line for the costs and the amount capitalized and expensed. The amounts are aggregated by award type. Accounts payable us-gaap_IncreaseDecreaseInAccountsPayable Cash and cash equivalents Share-based compensation us-gaap_AllocatedShareBasedCompensationExpense Amendment Flag Comprehensive Income us-gaap_ComprehensiveIncomeNetOfTax Comprehensive income City Area Code us-gaap_GainLossOnSaleOfBusiness Gain (Loss) on Disposition of Business us-gaap_DebtInstrumentPeriodicPaymentPrincipal Debt Instrument, Periodic Payment, Principal us-gaap_GainLossOnSaleOfPropertyPlantEquipment Loss (Gain) on disposal of property, plant & equipment Deferred revenue us-gaap_IncreaseDecreaseInContractWithCustomerLiability us-gaap_SharesOutstanding Balance (in shares) Balance (in shares) Common stock, shares outstanding (in shares) us-gaap_IncreaseDecreaseInOtherOperatingAssets Other assets Current Fiscal Year End Date us-gaap_DebtInstrumentBasisSpreadOnVariableRate1 Debt Instrument, Basis Spread on Variable Rate us-gaap_DebtInstrumentInterestRateStatedPercentage Debt Instrument, Interest Rate, Stated Percentage Variable lease cost us-gaap_LeaseCost Total lease cost us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets Prepaid expenses and other current assets us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent Operating Lease Cost: Document Fiscal Period Focus Operating lease cost Document Fiscal Year Focus Short-term lease cost Lease, Cost [Table Text Block] Document Period End Date Operating lease right of use assets us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1 Operating (Year) Entity File Number Entity Emerging Growth Company us-gaap_DebtInstrumentFaceAmount Debt Instrument, Face Amount Document Type Entity Small Business Entity Shell Company Document Information [Line Items] Document Information [Table] Entity Filer Category Debt Instrument [Axis] Entity Current Reporting Status Debt Instrument, Name [Domain] Acquisition costs Business Combination, Acquisition Related Costs Variable Rate [Domain] Prime Rate [Member] Variable Rate [Axis] us-gaap_ConcentrationRiskPercentage1 Concentration Risk, Percentage us-gaap_IncreaseDecreaseInAccountsReceivable Receivables, net Entity Tax Identification Number Entity Central Index Key Entity Registrant Name Exercise of stock options net of shares presented for exercise Term Loan [Member] Represents information relating to term loans. us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationRestrictedStockUnitsRequisiteServicePeriodRecognition Net share settlement of RSU's Entity [Domain] Customer Concentration Risk [Member] Legal Entity [Axis] Entity Address, Address Line One us-gaap_AmortizationOfIntangibleAssets Amortization of Intangible Assets Entity Address, City or Town Entity Address, Postal Zip Code us-gaap_TreasuryStockCommonValue Treasury stock at cost, 29,559 shares at March 31, 2023 and 29,559 shares at December 31, 2022 Entity Address, State or Province Concentration Risk Type [Axis] Concentration Risk Type [Domain] us-gaap_AllowanceForDoubtfulAccountsReceivable Allowance - beginning of period Allowance - end of period Entity Common Stock, Shares Outstanding Revenue Benchmark [Member] Accounts Receivable [Member] us-gaap_IncreaseDecreaseInInventories Inventories Trading Symbol Concentration Risk Benchmark [Axis] Concentration Risk Benchmark [Domain] Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block] Local Phone Number Exercise of stock options net of shares presented for exercise (in shares) Exercised, shares under options (in shares) us-gaap_GainLossOnDispositionOfAssets Loss (Gain) on disposal of property, plant & equipment us-gaap_TableTextBlock Notes Tables us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity Line of Credit Facility, Maximum Borrowing Capacity Share-based compensation (in shares) Selling, general & administrative expenses Adjustment for expected credit losses Share-based compensation us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross Granted, shares under options (in shares) Line of Credit Facility, Lender [Domain] Collaborative Arrangement and Arrangement Other than Collaborative [Domain] Issuance of common stock (in shares) Raw materials Lender Name [Axis] us-gaap_LiabilitiesAndStockholdersEquity Total liabilities and stockholders' equity Finished goods Work in process Issuance of common stock us-gaap_DisposalGroupIncludingDiscontinuedOperationAssetsNoncurrent Disposal Group, Including Discontinued Operation, Assets, Noncurrent, Total Retained earnings Accumulated other comprehensive loss Debt Disclosure [Text Block] Interest expense, net Changes in operating assets and liabilities: us-gaap_DisclosureTextBlockAbstract Notes to Financial Statements Inventory Disclosure [Text Block] Operating lease liabilities - long-term Schedule of Inventory, Current [Table Text Block] Present value of lease liabilities, operating Deferred income taxes us-gaap_DeferredIncomeTaxesAndTaxCredits Operating lease liabilities - current Finance lease liabilities - current Finance lease liabilities - long-term Operating lease ROU assets Engineering and Development [Member] Represents the information pertaining to engineering and development. us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue Total lease payments, operating Tooling and Machinery [Member] Represents information pertaining to tooling and machinery. us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount Less: Interest, operating Present value of lease liabilities, finance Financing cash flows from finance leases Principal payments on finance lease obligations Thereafter us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree 2026, operating Remainder of 2023 us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour 2027, operating Finance lease ROU assets 2025 us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo 2026 us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree Increases due to consideration received from customers Amount of increase in obligation to transfer good or service to customer for which consideration from customer has been received. 2027 us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths 2024, operating 2028 us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo 2025, operating Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block] 2024 us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities Accrued expenses Amount of accrued liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date. Other assets Share-based compensation us-gaap_ShareBasedCompensation us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear Remainder of 2023, operating Schedule of Finite-Lived Intangible Assets [Table Text Block] Deferred Revenue [Member] Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable. Advant Medical [Member] Represents information related to Advant Medicaal, Inc.. Depreciation and amortization us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation (in shares) Net share settlement of RSU's (in shares) Intangible Assets Disclosure [Text Block] us-gaap_AssetsCurrent Total current assets Lessee, Operating and Finance Leases [Text Block] The entire disclosure for operating and finance leases of lessee. Includes, but is not limited to, description of operating and finance leases and maturity analysis of operating and finance lease liabilities. Increases due to revenue recognized, not invoiced to customers Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, from unbilled revenue recognized. ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesIncomeTax Income taxes Amount of liabilities incurred for income taxes assumed at the acquisition date. Treasury stock, shares (in shares) ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredTaxes Deferred taxes Amount of deferred taxes assumed at the acquisition date. Change in fair value of contingent consideration Change in fair value of contingent consideration Common stock, $.01 par value, 20,000,000 shares authorized; 7,642,529 and 7,612,970 shares issued and outstanding, respectively, at March 31, 2023; 7,611,244 and 7,581,685 shares issued and outstanding, respectively, at December 31, 2022 Adjustments to reconcile net income to net cash provided by operating activities: Measurement Frequency [Axis] Measurement Frequency [Domain] Fair Value, Recurring [Member] Common stock, shares authorized (in shares) Common stock, shares issued (in shares) Common stock, par value (in dollars per share) Lessee, Operating and Finance Leases, Liability, Maturity [Table Text Block] Tabular disclosure of undiscounted cash flows of lessee's operating and finance lease liabilities. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating and finance lease liabilities recognized in statement of financial position. Statistical Measurement [Domain] Operating cash flows from operating leases Maximum [Member] Long-Lived Assets [Member] Represents long-lived assets. Minimum [Member] ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill Total identifiable assets Amount of assets acquired, including goodwill at the acquisition date. Right of use assets Total ROU assets Represents the amount of of right-of-use asset from assets under operating and finance leases. Lease liabilities Total lease liabilities - current Present value of lessee's discounted obligation for lease payments from operating and finance leases, classified as current. Product and Service [Axis] ufpt_OperatingAndFinanceLeasesLiabilityNoncurrent Lease liabilities Total lease liabilities - long-term Present value of lessee's discounted obligation for lease payments from operating and finance leases, classified as noncurrent. Product and Service [Domain] Percentage of concentration risk The percentage of revenue, including tax collected from customer, from satisfaction of performance obligation by transferring promised good or service to customer. Statistical Measurement [Axis] Leases, Right-of-Use Assets and Liabilities [Table Text block] Tabular disclosure of the assets and liabilities of operating and finance leases. Schedule of Cash Flow, Supplemental Disclosures [Table Text Block] Preferred stock, $.01 par value, 1,000,000 shares authorized; no shares issued Preferred stock, shares issued (in shares) Interest Cash Flow, Supplemental Disclosures [Text Block] Prepaid expenses and other current assets Property, Plant and Equipment Disclosure [Text Block] Schedule of Revenue by Major Customers by Reporting Segments [Table Text Block] Property, Plant and Equipment [Table Text Block] Preferred stock, shares authorized (in shares) Inventories Total inventory Preferred stock, par value (in dollars per share) Net sales Fair Value, Inputs, Level 3 [Member] Fair Value Hierarchy and NAV [Domain] Customer [Axis] Customer [Domain] Fair Value Hierarchy and NAV [Axis] us-gaap_ReceivablesNetCurrent Receivables, net Construction in Progress [Member] Cash flows from operating activities: Statement [Line Items] Accounts receivable–trade us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent Less allowance for credit losses us-gaap_NumberOfOperatingSegments Number of Operating Segments Receivables, net Additional paid-in capital Building and Building Improvements [Member] Lease Liabilities, Current [Member] Primary financial statement caption encompassing current lease liabilities. us-gaap_DeferredCompensationPlanAssets Non-qualified deferred compensation plan ufpt_NumberOfMajorCustomers Number of Major Customers Represents the number of major customers accounting for 10% or more of the specified concentration risk benchmark, which includes, but not limited to, sales revenue, accounts receivable, etc. Lease Liabilities, Noncurrent [Member] Primary financial statement caption encompassing lease liabilities, noncurrent. molded fiber business (“MFT”) and related real estate in Iowa [Member] Represents molded fiber business (“MFT”) and related real estate in Iowa. Land and Land Improvements [Member] Right of Use Assets [Member] Primary financial statement caption encompassing operating and finance leases, right of use assets. AOCI Attributable to Parent [Member] Stockholders’ equity: Leasehold Improvements [Member] us-gaap_OtherNonoperatingIncomeExpense Other expense (income) Long-Lived Tangible Asset [Axis] Segment Reporting Disclosure [Text Block] Long-Lived Tangible Asset [Domain] Current assets: Fair Value Disclosures [Text Block] us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations Cash and cash equivalents at beginning of period Cash and cash equivalents at end of period us-gaap_ContractWithCustomerAssetReclassifiedToReceivable Decreases due to customer invoicing Effect of foreign currency exchange rates on cash and cash equivalents us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect Net increase (decrease) in cash and cash equivalents us-gaap_Liabilities Total liabilities us-gaap_NetCashProvidedByUsedInFinancingActivities Net cash provided by financing activities Commitments and contingencies us-gaap_OperatingIncomeLoss Operating income us-gaap_ContractWithCustomerLiabilityRevenueRecognized Contract with Customer, Liability, Revenue Recognized us-gaap_NetCashProvidedByUsedInOperatingActivities Net cash provided by (used in) operating activities us-gaap_NetCashProvidedByUsedInInvestingActivities Net cash used in investing activities us-gaap_GrossProfit Gross profit Cost of sales us-gaap_DeferredIncomeTaxLiabilitiesNet Deferred income taxes us-gaap_ContractWithCustomerLiability Deferred revenue Deferred revenue us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation Payment of statutory withholdings for restricted stock units vested us-gaap_LettersOfCreditOutstandingAmount Letters of Credit Outstanding, Amount Other Liabilities Disclosure [Text Block] Geographic Distribution, Foreign [Member] Scenario [Domain] Geographic Distribution [Axis] Geographic Distribution [Domain] Retained Earnings [Member] Proceeds from the exercise of stock options Proceeds from Stock Options Exercised Scenario [Axis] Treasury Stock, Common [Member] Additional Paid-in Capital [Member] Common Stock [Member] Equity Components [Axis] Equity Component [Domain] Total long-term debt Long-Term Debt Long-Term Debt us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest Income before income tax expense Accounts Receivable, Allowance for Credit Loss [Table Text Block] Disaggregation of Revenue [Table Text Block] us-gaap_RepaymentsOfLongTermDebt Principal payments of long-term debt Revenue from Contract with Customer [Text Block] Machinery and Equipment [Member] Balance Sheet Location [Axis] Balance Sheet Location [Domain] Document Quarterly Report Entity Incorporation, State or Country Code Accounting Policies [Abstract] Document Transition Report Selling, General and Administrative Expenses [Member] Entity Interactive Data Current Security Exchange Name Title of 12(b) Security us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs Amounts written off against the allowance ufpt_ContractWithCustomerLiabilityRevenueRecognizedDuringPeriod Revenue recognized Amount of revenue recognized during period including amounts previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.) Income Statement Location [Axis] Income Statement Location [Domain] Collaborative Arrangement and Arrangement Other than Collaborative [Axis] Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block] DAS Medical [Member] Represents DAS Medical. us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares) Non-Competition Agreements [Member] Represents non-competition agreement. us-gaap_RepaymentsOfLinesOfCredit Payments on revolving line of credit us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding Diluted (in shares) Diluted weighted average common shares outstanding (in shares) Scenario, Adjustment [Member] Proceeds from advances on revolving line of credit Customer Contracts and Relationships [Member] Represents customer contracts and relationships. Asset Class [Axis] ufpt_BusinessCombinationAgreementTerm Business Combination, Agreement Term (Year) Represents agreement term for business combination. Asset Class [Domain] Statement [Table] Statement of Financial Position [Abstract] Diluted (in dollars per share) Secured Term Loan [Member] Represents secured term loan. Basic weighted average common shares outstanding (in shares) Basic (in shares) Secured Revolving Credit Facility [Member] Represents secured revolving credit facility. Bloomberg Short-term Bank Yield Index Rate [Member] Represents Bloomberg Short-term Bank Yield Index Rate. us-gaap_EffectiveIncomeTaxRateContinuingOperations Effective Income Tax Rate Reconciliation, Percent ufpt_NoncompetitionAgreementPaymentLiabilityNoncurrent Present value of non-competition payments Amount of obligation incurred for non-competition agreement payment, classified as noncurrent. Business Acquisition [Axis] Other ufpt_OtherLiabilitiesNoncurrentOther Amount of other noncurrent liabilities, classified as other. Basic (in dollars per share) Business Acquisition, Acquiree [Domain] Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block] Second Amended and Restated Credit Agreement [Member] Represents second amended and restated credit agreement. Statement of Cash Flows [Abstract] Remainder of 2023 us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear Statement of Stockholders' Equity [Abstract] us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration Disposal Group, Including Discontinued Operation, Consideration Income Statement [Abstract] Other comprehensive income Other comprehensive gain Contech Medical, Inc and DAS Medical [Member] Represents Contech Medical, Inc and DAS Medical. 2026 us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree Common Stock Outstanding [Member] Represents common stock outstanding. Present value of non-competition payments ufpt_PresentValueOfNoncompetitionAgreement Present Value of Non-competition Agreement Present value of non-competition agreement. Disposal Group Name [Axis] Disposal Group Name [Domain] Accrued contingent consideration (earn-out) us-gaap_BusinessCombinationContingentConsiderationLiability Business Combination, Contingent Consideration, Liability, Total Operating lease liabilities Amount of increase or decrease in operating lease liability. 2024 us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths Lease right of use assets Amount of lease right-of-use assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date. 2025 us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo Other Noncurrent Liabilities [Table Text Block] Interest on lease liabilities us-gaap_FinanceLeaseLiabilityPaymentsDue Total lease payments, finance Amortization of right of use assets us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount Less: Interest, finance us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths 2024, finance us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo 2025, finance us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree 2026, finance us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour 2027, finance us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent Finance us-gaap_FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear Remainder of 2023, finance Accrued contingent consideration (earn-out) Fair Value, Assets Measured on Recurring Basis [Table Text Block] us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1 Finance (Year) Cash flows from financing activities: Other liabilities us-gaap_OtherLiabilitiesNoncurrent Other Liabilities, Noncurrent One Customer [Member] information pertaining to one customer. Intellectual Property/ Tradename and Brand [Member] Represents intellectual property/tradename and brand. Non-qualified deferred compensation plan Net assets acquired us-gaap_StockholdersEquity Total stockholders’ equity Balance Balance us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired Payments to Acquire Businesses, Net of Cash Acquired, Total Acquisition, net of cash acquired us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation Lease liabilities Class of Stock [Axis] us-gaap_CashAcquiredFromAcquisition Cash from Advant Long-term debt, excluding current portion Long-term debt, excluding current installments Cash paid at closing Payments to Acquire Businesses, Gross Schedule of Weighted Average Number of Shares [Table Text Block] us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable Accounts payable ufpt_DisposalGroupIncludingDiscontinuedOperationConsiderationHeldInEscrow Disposal Group, Including Discontinued Operation, Consideration, Held in Escrow The amount of consideration for disposal group including discontinued operation held in escrow. us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment Property, plant, and equipment Other assets us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets EX-101.PRE 9 ufpt-20230331_pre.xml XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE XML 10 R1.htm IDEA: XBRL DOCUMENT v3.23.1
Document And Entity Information - shares
3 Months Ended
Mar. 31, 2023
May 02, 2023
Document Information [Line Items]    
Entity Central Index Key 0000914156  
Entity Registrant Name UFP TECHNOLOGIES INC  
Amendment Flag false  
Current Fiscal Year End Date --12-31  
Document Fiscal Period Focus Q1  
Document Fiscal Year Focus 2023  
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Mar. 31, 2023  
Document Transition Report false  
Entity File Number 001-12648  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 04-2314970  
Entity Address, Address Line One 100 Hale Street  
Entity Address, City or Town Newburyport  
Entity Address, State or Province MA  
Entity Address, Postal Zip Code 01950  
City Area Code 978  
Local Phone Number 352-2200  
Title of 12(b) Security Common Stock  
Trading Symbol UFPT  
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   7,614,197
XML 11 R2.htm IDEA: XBRL DOCUMENT v3.23.1
Condensed Consolidated Balance Sheets (Current Period Unaudited) - USD ($)
$ in Thousands
Mar. 31, 2023
Dec. 31, 2022
Current assets:    
Cash and cash equivalents $ 6,503 $ 4,451
Receivables, net 60,142 55,117
Inventories 56,649 53,536
Prepaid expenses and other current assets 3,622 3,242
Total current assets 126,916 116,346
Property, plant and equipment, net 59,027 58,072
Goodwill 113,159 113,028
Intangible assets, net 67,346 68,361
Non-qualified deferred compensation plan 4,706 4,148
Right of use assets 14,514 13,153
Deferred income taxes 1,547 1,448
Other assets 3,567 3,636
Total assets 390,782 378,192
Current liabilities:    
Accounts payable 20,454 19,961
Accrued expenses 16,768 23,122
Deferred revenue 3,582 4,679
Lease liabilities 2,938 2,517
Income taxes payable 4,450 1,682
Current portion of long-term debt 4,000 4,000
Total current liabilities 52,192 55,961
Long-term debt, excluding current installments 56,000 51,000
Deferred income taxes 0 448
Non-qualified deferred compensation plan 4,750 4,167
Lease liabilities 11,873 10,851
Other liabilities 19,483 18,220
Total liabilities 144,298 140,647
Commitments and contingencies
Stockholders’ equity:    
Preferred stock, $.01 par value, 1,000,000 shares authorized; no shares issued 0 0
Common stock, $.01 par value, 20,000,000 shares authorized; 7,642,529 and 7,612,970 shares issued and outstanding, respectively, at March 31, 2023; 7,611,244 and 7,581,685 shares issued and outstanding, respectively, at December 31, 2022 76 76
Additional paid-in capital 34,777 36,070
Retained earnings 212,335 202,596
Accumulated other comprehensive loss (117) (610)
Treasury stock at cost, 29,559 shares at March 31, 2023 and 29,559 shares at December 31, 2022 (587) (587)
Total stockholders’ equity 246,484 237,545
Total liabilities and stockholders' equity $ 390,782 $ 378,192
XML 12 R3.htm IDEA: XBRL DOCUMENT v3.23.1
Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) - $ / shares
Mar. 31, 2023
Dec. 31, 2022
Preferred stock, par value (in dollars per share) $ 0.01 $ 0.01
Preferred stock, shares authorized (in shares) 1,000,000 1,000,000
Preferred stock, shares issued (in shares) 0 0
Common stock, par value (in dollars per share) $ 0.01 $ 0.01
Common stock, shares authorized (in shares) 20,000,000 20,000,000
Common stock, shares issued (in shares) 7,642,529 7,611,244
Common stock, shares outstanding (in shares) 7,612,970 7,581,685
Treasury stock, shares (in shares) 29,559 29,559
XML 13 R4.htm IDEA: XBRL DOCUMENT v3.23.1
Condensed Consolidated Statements of Income (Unaudited) - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Net sales $ 97,753 $ 71,242
Cost of sales 69,052 54,108
Gross profit 28,701 17,134
Selling, general & administrative expenses 13,006 10,011
Acquisition costs 0 775
Change in fair value of contingent consideration (2,853) 0
Loss (Gain) on disposal of property, plant & equipment 1 (12)
Operating income 12,841 6,360
Interest expense, net 869 327
Other expense (income) 77 (52)
Income before income tax expense 11,895 6,085
Income tax expense 2,156 1,227
Net income $ 9,739 $ 4,858
Net income per share:    
Basic (in dollars per share) $ 1.28 $ 0.64
Diluted (in dollars per share) $ 1.27 $ 0.64
Weighted average common shares outstanding:    
Basic (in shares) 7,592 7,544
Diluted (in shares) 7,681 7,630
Comprehensive Income    
Net income $ 9,739 $ 4,858
Other comprehensive income:    
Foreign currency translation gain 493 381
Other comprehensive gain 493 381
Comprehensive income $ 10,232 $ 5,239
XML 14 R5.htm IDEA: XBRL DOCUMENT v3.23.1
Condensed Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($)
shares in Thousands, $ in Thousands
Common Stock Outstanding [Member]
Additional Paid-in Capital [Member]
Retained Earnings [Member]
AOCI Attributable to Parent [Member]
Treasury Stock, Common [Member]
Total
Balance (in shares) at Dec. 31, 2021 7,535       30  
Balance at Dec. 31, 2021 $ 75 $ 34,151 $ 160,807 $ 0 $ (587) $ 194,446
Share-based compensation (in shares) 46       0  
Share-based compensation $ 1 691 0 0 $ 0 692
Net share settlement of RSU's (in shares) (20)       0  
Net share settlement of RSU's $ 0 (1,299) 0 0 $ 0 (1,299)
Other comprehensive income 0 0 0 381 0 381
Net income $ 0 0 4,858   $ 0 4,858
Balance (in shares) at Mar. 31, 2022 7,561       30  
Balance at Mar. 31, 2022 $ 76 33,543 165,665 381 $ (587) 199,078
Balance (in shares) at Dec. 31, 2022 7,582       30  
Balance at Dec. 31, 2022 $ 76 36,070 202,596 (610) $ (587) 237,545
Share-based compensation (in shares) 48       0  
Share-based compensation $ 0 1,056 0 0 $ 0 1,056
Exercise of stock options net of shares presented for exercise (in shares) 4       0  
Exercise of stock options net of shares presented for exercise $ 0 109 0 0 $ 0 109
Net share settlement of RSU's (in shares) (21)        
Net share settlement of RSU's $ 0 (2,522) 0 0 $ 0 (2,522)
Issuance of common stock (in shares) 0       0  
Issuance of common stock $ 0 64 0 0 $ 0 64
Other comprehensive income 0 0 0 493 0 493
Net income $ 0 0 9,739   $ 0 9,739
Balance (in shares) at Mar. 31, 2023 7,613       30  
Balance at Mar. 31, 2023 $ 76 $ 34,777 $ 212,335 $ (117) $ (587) $ 246,484
XML 15 R6.htm IDEA: XBRL DOCUMENT v3.23.1
Condensed Consolidated Statements of Cash Flows (Unaudited)
$ in Thousands, € in Millions
3 Months Ended
Mar. 31, 2023
USD ($)
Mar. 31, 2022
USD ($)
Cash flows from operating activities:    
Net income $ 9,739 $ 4,858
Adjustments to reconcile net income to net cash provided by operating activities:    
Depreciation and amortization 2,777 3,016
Loss (Gain) on disposal of property, plant & equipment 1 (12)
Share-based compensation 1,056 692
Change in fair value of contingent consideration 2,853 0
Deferred income taxes (545) (440)
Changes in operating assets and liabilities:    
Receivables, net (4,863) (4,467)
Inventories (3,054) (7,826)
Prepaid expenses and other current assets (377) (1,712)
Other assets (1,850) 308
Accounts payable 65 4,105
Accrued expenses (6,197) (3,365)
Deferred revenue (1,098) 793
Income taxes payable 2,765 1,130
Non-qualified deferred compensation plan and other liabilities 451 (296)
Net cash provided by (used in) operating activities 1,723 (3,216)
Cash flows from investing activities:    
Additions to property, plant, and equipment (2,179) (2,334)
Proceeds from sale of fixed assets 2 12
Net cash used in investing activities (2,177) (22,975)
Cash flows from financing activities:    
Proceeds from advances on revolving line of credit 6,000 28,000
Payments on revolving line of credit 0 (7,000)
Principal payments of long-term debt (1,000) (1,000)
Principal payments on finance lease obligations (16) (16)
Proceeds from the exercise of stock options 109 0
Payment of statutory withholdings for restricted stock units vested (2,522) (1,299)
Net cash provided by financing activities 2,571 18,685
Effect of foreign currency exchange rates on cash and cash equivalents (65) 41
Net increase (decrease) in cash and cash equivalents 2,052 (7,465)
Cash and cash equivalents at beginning of period 4,451 11,117
Cash and cash equivalents at end of period 6,503 3,652
Advant Medical [Member]    
Cash flows from investing activities:    
Acquisition, net of cash acquired 0 (20,768)
DAS Medical [Member]    
Cash flows from investing activities:    
Acquisition, net of cash acquired $ 0 $ 115
XML 16 R7.htm IDEA: XBRL DOCUMENT v3.23.1
Note 1 - Basis of Presentation
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]

(1)

Basis of Presentation

 

The interim condensed consolidated financial statements of UFP Technologies, Inc. (the “Company”) presented herein, have been prepared pursuant to the rules of the Securities and Exchange Commission for quarterly reports on Form 10-Q and do not include all the information and note disclosures required by accounting principles generally accepted in the United States of America. These statements should be read in conjunction with the consolidated financial statements and notes thereto for the year ended December 31, 2022, included in the Company's 2022 Annual Report on Form 10-K, as filed with the Securities and Exchange Commission.

 

The condensed consolidated balance sheets as of March 31, 2023 and December 31, 2022, the condensed consolidated statements of income and comprehensive income for the three months ended March 31, 2023 and 2022, the condensed consolidated statements of stockholders’ equity for the three months ended March 31, 2023 and 2022, and the condensed consolidated statements of cash flows for the three months ended March 31, 2023 and 2022 are unaudited but, in the opinion of management, include all adjustments (consisting of normal, recurring adjustments) necessary for a fair presentation of results for these interim periods. The condensed consolidated balance sheet as of December 31, 2022 has been derived from the Company’s annual financial statements that were audited by an independent registered public accounting firm but does not include all of the information and footnotes required for complete annual financial statements.

 

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period.

 

The results of operations for the three-month period ended March 31, 2023 are not necessarily indicative of the results to be expected for the entire fiscal year ending December 31, 2023.

 

Recent Accounting Pronouncements

 

There are no newly issued accounting pronouncements that the Company expects to have a material effect on the financial statements.

XML 17 R8.htm IDEA: XBRL DOCUMENT v3.23.1
Note 2 - Acquisitions and Divestiture
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Mergers, Acquisitions and Dispositions Disclosures [Text Block]

(2)

Acquisition and Divestiture

 

Molded Fiber

 

On July 26, 2022, pursuant to a share purchase agreement and related agreements, the Company sold its former wholly owned subsidiary Moulded Fiber Technology, Inc. (“MFT”) and related real estate in Iowa to CKF USA INCORPORATED (“CKF”) (a Delaware Corporation) for approximately $31.5 million (including a working capital adjustment of approximately $0.1 million that decreased the total consideration). The net book value of the assets sold were approximately $15.4 million and the Company recorded a net gain on sale of approximately $15.7 million, which was recorded in the year ended December 31, 2022. $2.6 million of the purchase price is being held in escrow to indemnify CKF against certain claims, losses, and liabilities. The Securities Purchase Agreement contains customary representations, warranties, and covenants customary for transactions of this type. Proceeds from the sale were used to pay down debt on the Company’s revolving credit facility, as well as income tax obligations on the related gain.

 

Advant Medical

 

On March 16, 2022 the Company purchased 100% of the outstanding shares of common stock of Advant Medical, Ltd., Advant Medical Inc. and Advant Medical Costa Rica, Limitada, (together Advant), pursuant to a Stock Purchase Agreement and related agreements, for an aggregate purchase price of €19.0 million in cash along with a working capital adjustment at closing. Total consideration in U.S. Dollars amounted to approximately $21.2 million. The purchase price was subject to additional adjustment based upon Advant’s final working capital at closing. A portion of the purchase price is being held in escrow to indemnify the Company against certain claims, losses, and liabilities. The Stock Purchase Agreement contains customary representations, warranties, and covenants customary for transactions of this type.

 

Founded in 1993, Advant is headquartered in Galway, Ireland, with operations in Costa Rica and partner manufacturing in Mexico. Advant is a developer and manufacturer of Class I, II, and III medical devices and packaging, primarily for catheters and guide wires.

 

The following table summarizes the allocation of consideration paid to the acquisition date fair value of the assets acquired and liabilities assumed based on management’s estimates of fair value (in thousands):

 

Fair value of considerations transferred

    

Cash paid at closing

 $23,608 

Other liability

  395 

Cash from Advant

  (2,840)

Total consideration

 $21,163 
     

Purchase price allocation

    

Accounts receivable

 $2,299 

Inventory

  2,410 

Other current assets

  213 

Property, plant, and equipment

  5,704 

Customer contracts & relationships

  2,925 

Intellectual property

  2,127 

Non-compete agreement

  259 

Lease right of use assets

  289 

Other assets

  41 

Goodwill

  7,140 

Total identifiable assets

 $23,407 

Accounts payable

  (772)

Accrued expenses

  (668)

Income taxes

  (66)

Deferred taxes

  (449)

Lease liabilities

  (289)

Net assets acquired

 $21,163 

 

Acquisition costs associated with the transaction through the first quarter of 2022 were approximately $669 thousand, of which $639 thousand was charged to expense in the quarter ended March 31, 2022 and $30 thousand was charged to expense in the year ended December 31, 2021. These costs were primarily for legal services, valuation services and stamp duty filings and are reflected on the face of the condensed consolidated statements of income and comprehensive income.

 

The amount of revenue and earnings of Advant recognized since the acquisition date through the first quarter of 2022 was approximately $824 thousand and $63 thousand, respectively, and is included in the condensed consolidated statements of income and comprehensive income for the period ended March 31, 2022.

 

Pro-forma statements

 

The following table contains an unaudited pro forma condensed consolidated statement of operations for the three-month period ended March 31, 2022, as if the Advant acquisition had occurred at the beginning of 2022 (in thousands):

 

 

  

Three-month Period Ended

 
  

March 31, 2022

 
  

(Unaudited)

 

Sales

 $75,469 

Operating income

 $7,023 

Net income

 $5,346 

Earnings per share:

    

Basic

 $0.71 

Diluted

 $0.70 

 

 

The above unaudited pro forma information is presented for illustrative purposes only and may not be indica‐tive of the results of operations that would have occurred had both acquisitions occurred as presented. In addition, future results may vary significantly from the results reflected in such pro forma information.

XML 18 R9.htm IDEA: XBRL DOCUMENT v3.23.1
Note 3 - Revenue Recognition
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Revenue from Contract with Customer [Text Block]

(3)

Revenue Recognition

 

The Company recognizes revenue when a customer obtains control of a promised good or service. The amount of revenue recognized reflects the consideration that the Company expects to be entitled to in exchange for promised goods or services. The Company recognizes revenue in accordance with the core principles of ASC 606 which include (1) identifying the contract with a customer, (2) identifying separate performance obligations within the contract, (3) determining the transaction price, (4) allocating the transaction price to the performance obligations, and (5) recognizing revenue. The Company recognizes all but an immaterial portion of its product sales upon shipment. The Company recognizes revenue from the sale of tooling and machinery upon customer acceptance. The Company recognizes revenue from engineering services, which are primarily product development services, as the services are performed or as otherwise determined based on the substance of the agreement. The Company recognizes revenue from bill and hold transactions at the time the specified goods are complete and available to the customer. In the ordinary course of business, the Company accepts sales returns from customers for defective goods, such amounts being immaterial. Although only applicable to an insignificant number of transactions, the Company has elected to exclude sales taxes from the transaction price. The Company has elected to account for shipping and handling activities for which the Company is responsible under the terms and conditions of the sale not as performance obligations but rather as fulfillment costs. These activities are required to fulfill the Company’s promise to transfer the good and are expensed when revenue is recognized.

 

Disaggregated Revenue

 

The following table presents the Company’s revenue disaggregated by the major types of goods and services sold to the Company’s customers (in thousands):

 

  

Three Months Ended

 
  

March 31,

 

Net sales of:

 

2023

  

2022

 

Products

 $94,692  $69,505 

Tooling and Machinery

  1,294   478 

Engineering services

  1,767   1,259 

Total net sales

 $97,753  $71,242 

 

Contract balances

 

Timing of revenue recognition may differ from the timing of invoicing to customers. When invoicing occurs prior to revenue recognition, the Company has contract liabilities included within “deferred revenue” on the condensed consolidated balance sheet.

 

The following table presents opening and closing balances of contract liabilities for the three-month periods ended March 31, 2023 and 2022 (in thousands):

 

  

Contract Liabilities

 
  

Three Months Ended
March 31,

 
  

2023

  

2022

 

Deferred revenue - beginning of period

 $4,679  $4,247 

Increases due to consideration received from customers

  999   1,116 

Revenue recognized

  (2,096)  (323)

Deferred revenue - end of period

 $3,582  $5,040 

 

Revenue recognized during the three-month periods ended March 31, 2023 and 2022 from amounts included in deferred revenue at the beginning of the period were approximately $1.9 million and $273 thousand, respectively.

 

When invoicing occurs after revenue recognition, the Company has contract assets, included within “receivables, net” on the condensed consolidated balance sheets.

 

The following table presents opening and closing balances of contract assets for the three-month periods ended March 31, 2023 and 2022 (in thousands):

 

  

Contract Assets

 
  

Three Months Ended
March 31,

 
  

2023

  

2022

 

Unbilled Receivables - beginning of period

 $270  $74 

Increases due to revenue recognized, not invoiced to customers

  1,379   740 

Decreases due to customer invoicing

  (1,326)  (412)

Unbilled Receivables - end of period

 $323  $402 

 

XML 19 R10.htm IDEA: XBRL DOCUMENT v3.23.1
Note 4 - Supplemental Cash Flow Information
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Cash Flow, Supplemental Disclosures [Text Block]

(4)

Supplemental Cash Flow Information

 

Supplemental cash flow information consists of the following (in thousands):

 

  

Three Months Ended

 
  

March 31,

 
  

2023

  

2022

 

Cash paid for:

        

Interest

 $832  $314 

Income taxes, net of refunds

  (50)  210 
         

Non-cash investing and financing activities:

        

Capital additions accrued but not yet paid

 $347  $185 

Operating lease right of use assets

  1,524   289 

Operating lease liabilities

  (1,560)  (289)

 

XML 20 R11.htm IDEA: XBRL DOCUMENT v3.23.1
Note 5 - Receivables and Allowance for Credit Losses
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Loans, Notes, Trade and Other Receivables Disclosure [Text Block]

(5)

Receivables and Allowance for Credit Losses

 

Receivables consist of the following (in thousands):

 

  

March 31,

  

December 31,

 
  

2023

  

2022

 

Accounts receivable–trade

 $60,868  $55,850 

Less allowance for credit losses

  (726)  (733)

Receivables, net

 $60,142  $55,117 

 

The Company is exposed to credit losses primarily through sales of products and services. The Company’s expected loss allowance methodology for accounts receivable is developed using historical collection experience, current and future economic and market conditions, and a review of the current status of customers' trade accounts receivables. Due to the short-term nature of such receivables, the estimate of the amount of accounts receivable that may not be collected is based on aging of the accounts receivable balances and the financial condition of customers. Additionally, specific allowance amounts are established to record the appropriate provision for customers that have a higher probability of default. The Company’s monitoring activities include timely account reconciliation, dispute resolution, payment confirmation, consideration of customers' financial condition and macroeconomic conditions. Balances are written off when determined to be uncollectible. Estimates based on an assessment of anticipated payment and all other historical, current, and future information that is reasonably available are used to determine the allowance.

 

The following table provides a roll-forward of the allowance for credit losses that is deducted from accounts receivable to present the net amount expected to be collected for the three months ended March 31, 2023 and 2022 (in thousands):

 

  

Allowance for Credit
Losses

 
  

Three Months Ended
March 31,

 
  

2023

  

2022

 

Allowance - beginning of period

 $733  $519 

Adjustment for expected credit losses

  (6)  (51)

Amounts written off against the allowance

  (1)  (23)

Allowance - end of period

 $726  $445 

 

XML 21 R12.htm IDEA: XBRL DOCUMENT v3.23.1
Note 6 - Fair Value of Financial Instruments
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Fair Value Disclosures [Text Block]

(6)

Fair Value of Financial Instruments

 

Financial instruments recorded at fair value in the consolidated balance sheets, or disclosed at fair value in the footnotes, are categorized based upon the level of judgment associated with the inputs used to measure their fair value. Hierarchical levels defined by ASC 820, Fair Value Measurements and Disclosures, and directly related to the amount of subjectivity associated with inputs to fair valuation of these assets and liabilities, are as follows:

 

Level 1

Valued based on unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date. An active market for the asset or liability is a market in which transactions for the asset or liability occur with sufficient frequency and volume to provide pricing information on an ongoing basis.

 

Level 2

Valued based on either directly or indirectly observable prices for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument’s anticipated life.

 

Level 3

Valued based on management’s best estimate of what market participants would use in pricing the asset or liability at the measurement date. Consideration is given to the risk inherent in the valuation technique and the risk inherent in the inputs to the model.

 

The following table presents the fair value and hierarchy levels, for financial assets that are measured at fair value on a recurring basis (in thousands):

 

  

March 31,
2023

  

December 31, 2022

 
         

Level 3

        

Purchase price contingent consideration (Note 2):

        

Accrued contingent consideration (earn-out)

 $17,421  $14,568 

Present value of non-competition payments

  7,903   10,043 

 

In connection with the acquisitions of Contech Medical and DAS Medical in 2021, the Company is required to make contingent payments, subject to the entities achieving certain financial performance thresholds. The contingent consideration payments for the 2021 acquisitions combined are up to $25 million, of which $20 million remains to be potentially paid as of March 31, 2023 and December 31, 2022. The fair value of the liabilities for the contingent consideration payments recognized upon the acquisition as part of the purchase accounting opening balance sheets totaled approximately $9.7 million and was estimated by discounting to present value the probability-weighted contingent payments expected to be made. Assumptions used in this calculation were managements financial forecasts, discount rate and various probability factors. The ultimate settlement of contingent consideration could deviate from current estimates based on the actual results of these financial measures. This liability is considered to be a Level 3 financial liability that is re-measured each reporting period. The change in fair value of contingent consideration for the acquisition is included in change in fair value of contingent consideration in the condensed consolidated statements of income and comprehensive income.

 

Also in connection with the DAS Medical acquisition, the Company has entered into Non-Competition Agreements with the beneficiaries and the Company has agreed to pay additional consideration to the parties to the Non-Competition Agreements, including an aggregate of $10.0 million in payments over the ten years following the closing of the DAS Medical acquisition for the 10-year noncompetition covenants of certain key owners. The present value of the Non-Competition Agreements totaled approximately $7.9 million. This liability is considered to be a Level 3 financial liability that is re-measured each reporting period. The change in fair value of contingent consideration for the acquisition is included in change in fair value of contingent consideration in the condensed consolidated statements of income and comprehensive income.

 

The Company has financial instruments, such as accounts receivable, accounts payable, and accrued expenses, that are stated at carrying amounts that approximate fair value because of the short maturity of those instruments. The carrying amount of the Company’s long-term debt approximates fair value as the interest rate on the debt approximates the estimated borrowing rate currently available to the Company.

XML 22 R13.htm IDEA: XBRL DOCUMENT v3.23.1
Note 7 - Share-based Compensation
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Share-Based Payment Arrangement [Text Block]

(7)

Share-Based Compensation

 

Share-based compensation is measured at the grant date based on the fair value of the award and is recognized as an expense over the requisite service period (generally the vesting period of the equity grant).

 

The Company issues share-based awards through several plans that are described in detail in the notes to the consolidated financial statements for the year ended December 31, 2022. The compensation cost charged against income for those plans is included in selling, general & administrative expenses as follows (in thousands):

 

  

Three Months Ended

 
  

March 31,

 

Share-based compensation related to:

 

2023

  

2022

 

Common stock grants

 $100  $100 

Stock option grants

  94   53 

Restricted Stock Unit Awards ("RSUs")

  862   539 

Total share-based compensation

 $1,056  $692 

 

The total income tax benefit recognized in the condensed consolidated statements of income and comprehensive income for share-based compensa‐tion arrangements was approximately $839 thousand and $381 thousand for the three-month periods ended March 31, 2023 and 2022, respectively.

 

Common stock grants

 

The compensation expense for common stock granted during the three-month period ended March 31, 2023, was determined based on the market price of the shares on the date of grant.

 

Stock Option grants

 

The following is a summary of stock option activity under all plans for the three-month period ended March 31, 2023:

 

  

Shares Under Options

  

Weighted Average

Exercise Price

(per share)

  

Weighted Average

Remaining Contractual Life

(in years)

  

Aggregate

Intrinsic Value

(in thousands)

 

Outstanding at December 31, 2022

  92,075  $39.98         

Granted

  7,935   111.54         

Exercised

  (3,780)  28.94         

Outstanding at March 31, 2023

  96,230  $46.31   5.68  $8,038 

Exercisable at March 31, 2023

  78,419  $35.81   5.31  $7,374 

Vested and expected to vest at March 31, 2023

  96,230  $46.31  $5.68  $8,038 

 

During the three-month periods ended March 31, 2023 and 2022, the total intrinsic value of all options exercised was approximately $371 thousand and $0, respectively, and the total amount of consideration received by the Company from the exercised options was approximately $109 thousand and $0, respectively. At its discretion, the Company allows option holders to surrender previously owned common stock in lieu of paying the exercise price and withholding taxes. During the three-month period ended March 31, 2023, 861 shares were surrendered at an average market price of $127.05. Zero shares were surrendered during the same period in 2022.

 

Restricted Stock Unit awards

 

The following table summarizes information about RSU activity during the three-month period ended March 31, 2023:

 

  

Restricted Stock Units

  

Weighted Average
Grant Date
Fair Value

 

Outstanding at December 31, 2022

  102,048  $56.02 

Awarded

  44,154   111.54 

Shares vested

  (48,244)  53.39 

Shares forfeited

  (99)  97.61 

Outstanding at March 31, 2023

  97,859  $67.83 

 

At the Company’s discretion, upon vesting, RSU holders are given the option to net-share settle to cover the required minimum withholding tax and the remaining amount is converted into the equivalent number of common shares and issued to the RSU holder. During the three-month periods ended March 31, 2023 and 2022, 20,457 and 19,376 shares were surrendered at an average market price of $117.95 and $67.02, respectively.

 

As of March 31, 2023, the Company had approximately $8.0 million of unrecognized compensation expense that is expected to be recognized over a period of 3 years.

XML 23 R14.htm IDEA: XBRL DOCUMENT v3.23.1
Note 8 - Inventories
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Inventory Disclosure [Text Block]

(8)

Inventories

 

Inventories are stated at the lower of cost (determined using the first-in, first-out method) or net realizable value, and consist of the following at the stated dates (in thousands):

 

  

March 31,

  

December 31,

 
  

2023

  

2022

 

Raw materials

 $41,106  $42,475 

Work in process

  6,113   4,183 

Finished goods

  9,430   6,878 

Total inventory

 $56,649  $53,536 

 

XML 24 R15.htm IDEA: XBRL DOCUMENT v3.23.1
Note 9 - Property, Plant and Equipment
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Property, Plant and Equipment Disclosure [Text Block]

(9)

Property, Plant and Equipment

 

Property, plant, and equipment consist of the following (in thousands):

 

  

March 31,

  

December 31,

 
  

2023

  

2022

 

Land and improvements

 $4,832  $4,811 

Buildings and improvements

  34,525   34,446 

Leasehold improvements

  7,182   5,503 

Machinery & equipment

  52,966   52,233 

Furniture, fixtures, computers & software

  6,416   6,401 

Construction in progress

  7,377   7,272 

Property, plant and equipment

 $113,298  $110,666 

Accumulated depreciation and amortization

  (54,271)  (52,594)

Net property, plant and equipment

 $59,027  $58,072 

 

XML 25 R16.htm IDEA: XBRL DOCUMENT v3.23.1
Note 10 - Leases
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Lessee, Operating and Finance Leases [Text Block]

(10)

Leases

 

The Company has operating and finance leases for offices, manufacturing plants, vehicles and certain office and manufacturing equipment. Leases with an initial term of 12 months or less are not recorded on the balance sheet. The Company accounts for each separate lease component of a contract and its associated non-lease components as a single lease component, thus causing all fixed payments to be capitalized. Variable lease payment amounts that cannot be determined at the commencement of the lease such as increases in lease payments based on changes in index rates or usage, are not included in the right of use (“ROU”) assets or lease liabilities. These are expensed as incurred and recorded as variable lease expense. The Company determines if an arrangement is a lease at the inception of a contract. Operating and finance lease ROU assets and operating and finance lease liabilities are stated separately in the condensed consolidated balance sheet. 

 

ROU assets represent the Company's right to use an underlying asset during the lease term and lease liabilities represent the Company's obligation to make lease payments pursuant to the lease.  ROU assets and lease liabilities are recognized at commencement date based on the net present value of fixed lease payments over the lease term.  The Company's assumed lease term includes options to extend or terminate the lease when it is reasonably certain that it will exercise that option.  ROU assets are also adjusted for any deferred or accrued rent. As the Company's leases do not typically provide an implicit rate, the Company uses its incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.

 

ROU assets and lease liabilities consist of the following (in thousands):

 

 

  

March 31,

  

December 31,

 
  

2023

  

2022

 

Operating lease ROU assets

 $14,318  $12,942 

Finance lease ROU assets

  196   211 

Total ROU assets

 $14,514  $13,153 
         

Operating lease liabilities - current

 $2,879  $2,458 

Finance lease liabilities - current

  59   59 

Total lease liabilities - current

 $2,938  $2,517 
         

Operating lease liabilities - long-term

 $11,732  $10,695 

Finance lease liabilities - long-term

  141   156 

Total lease liabilities - long-term

 $11,873  $10,851 

 

 

  

Three Months Ended

 
  

March 31,

 
  

($ in thousands)

 
  

2023

  

2022

 

Lease Cost:

        

Finance lease cost:

        

Amortization of right of use assets

 $15  $15 

Interest on lease liabilities

  1   1 

Operating lease cost

  711   652 

Variable lease cost

  83   70 

Short-term lease cost

  7   17 

Total lease cost

 $817  $755 

 

 

Cash paid for amounts included in measurement of lease liabilities:

        

Operating cash flows from operating leases

 $683  $540 

Financing cash flows from finance leases

  16   16 

Weighted-average remaining lease term (years):

        

Finance

  3.29   4.29 

Operating

  5.06   3.62 

Weighted-average discount rate:

        

Finance

  2.10%  2.10%

Operating

  3.42%  2.53%

 

The aggregate future lease payments for leases as of March 31, 2023 are as follows (in thousands):

 

  

Finance

  

Operating

 

Remainder of 2023

 $47  $2,192 

2024

  63   2,950 

2025

  63   2,779 

2026

  29   2,402 

2027

  6   2,031 

Thereafter

  -   3,774 

Total lease payments

  208   16,128 

Less: Interest

  (8)  (1,517)

Present value of lease liabilities

 $200  $14,611 

 

XML 26 R17.htm IDEA: XBRL DOCUMENT v3.23.1
Note 11 - Income Per Share
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Earnings Per Share [Text Block]

(11)

Income Per Share

 

Basic income per share is based on the weighted average number of shares of common stock outstanding. Diluted income per share is based upon the weighted average number of common shares outstanding and dilutive common stock equivalent shares outstanding during each period.

 

The weighted average number of shares used to compute basic and diluted net income per share consisted of the following (in thousands):

 

  

Three Months Ended

 
  

March 31,

 
  

2023

  

2022

 

Basic weighted average common shares outstanding

  7,592   7,544 

Weighted average common equivalent shares due to restricted stock, stock options and RSUs

  89   86 

Diluted weighted average common shares outstanding

  7,681   7,630 

 

The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, when the average market price of the common stock is lower than the exercise price of the related options during the period. These outstanding stock awards are not included in the computation of diluted income per share because the effect would be antidilutive. For both the three-month periods ended March 31, 2023 and 2022, there were no stock awards excluded from the computation of diluted earnings per share for this reason.

XML 27 R18.htm IDEA: XBRL DOCUMENT v3.23.1
Note 12 - Segment Reporting
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Segment Reporting Disclosure [Text Block]

(12)

Segment Reporting

 

The Company consists of a single operating and reportable segment.

 

Revenues shipped to customers outside of the United States comprised approximately 16.6% and 12.0% of the Company’s consolidated revenues for the three months ended March 31, 2023 and 2022, respectively.

 

One customer comprised approximately 22% and 15% of the Company’s consolidated revenues for the three-month periods ended March 31, 2023 and 2022, respectively. One customer represented approximately 17% and 10% of gross accounts receivable at March 31, 2023 and December 31, 2022, respectively. Approximately 18% of all long-lived assets are located outside of the United States.

 

The Company’s products are primarily sold to customers within the Medical, Automotive, Aerospace & Defense, and Industrial/Other markets. Net sales by market for the three-month periods ended March 31, 2023 and 2022 are as follows (in thousands):

 

  

Three Months Ended March 31,

 
  

2023

  

2022

 

Market

 

Net Sales

  

%

  

Net Sales

  

%

 
                 

Medical

 $83,804   85.7% $52,554   73.8%

Automotive

  4,347   4.4%  4,351   6.1%

Aerospace & Defense

  4,217   4.3%  3,755   5.3%

Industrial / Other

  5,385   5.6%  10,582   14.8%

Net Sales

 $97,753   100.0% $71,242   100.0%

 

Certain amounts for the three months ended March 31, 2022 were reclassified between markets to conform to the current year presentation.

XML 28 R19.htm IDEA: XBRL DOCUMENT v3.23.1
Note 13 - Goodwill and Other Intangible Assets
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Intangible Assets Disclosure [Text Block]

(13)

Goodwill and Other Intangible Assets

 

The changes in the carrying amount of goodwill for the three months ended March 31, 2023 are as follows (in thousands):

 

  

Goodwill

 
     

December 31, 2022

 $113,028 

Foreign currency translation

  131 

March 31, 2023

 $113,159 

 

The carrying values of the Company’s definite lived intangible assets as of March 31, 2023 are as follows (in thousands):

 

  

Intelletual Property / Tradename & Brand

  

Non-
Compete

  

Customer
List

  

Total

 

Weighted-average amortization period

 

11.9 years

  

9.3 years

  

20 years

     

Gross amount

 $7,103  $5,502  $65,228  $77,833 

Accumulated amortization

  (879)  (1,125)  (8,483) $(10,487)

Net balance

 $6,224  $4,377  $56,745  $67,346 

 

Amortization expense related to intangible assets was approximately $1.1 million and $1.0 million for the three-month periods ended March 31, 2023 and 2022 . The estimated remaining amortization expense as of March 31, 2023 is as follows (in thousands):

 

Remainder of 2023

 $3,308 

2024

  4,401 

2025

  4,401 

2026

  4,399 

2027

  4,397 

2028

  4,350 

Thereafter

  42,090 

Total

 $67,346 

 

XML 29 R20.htm IDEA: XBRL DOCUMENT v3.23.1
Note 14 - Other Long-term Liabilities
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Other Liabilities Disclosure [Text Block]

(14)

Other Long-Term Liabilities

 

Other long-term liabilities consist of the following (in thousands):

 

  

March 31,

  

December 31,

 
  

2023

  

2022

 

Accrued contingent consideration (earn-out)

 $12,421  $9,568 

Present value of non-competition payments

  6,097   8,155 

Other

  965   497 
  $19,483  $18,220 

 

XML 30 R21.htm IDEA: XBRL DOCUMENT v3.23.1
Note 15 - Income Tax
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Income Tax Disclosure [Text Block]

(15)

Income Taxes

 

The determination of income tax expense in the accompanying unaudited condensed consolidated statements of income is based upon the estimated effective tax rate for the year, adjusted for the impact of any discrete items which are accounted for in the period in which they occur. The Company recorded income tax expense of approximately 18.1% and 20.2% of income before income tax expense for the three-month periods ended March 31, 2023 and 2022, respectively.

XML 31 R22.htm IDEA: XBRL DOCUMENT v3.23.1
Note 16 - Indebtedness
3 Months Ended
Mar. 31, 2023
Notes to Financial Statements  
Debt Disclosure [Text Block]

(16)

Indebtedness

 

On December 22, 2021, the Company, as the borrower, entered into a secured $130 million Second Amended and Restated Credit Agreement (the “Second Amended and Restated Credit Agreement”) with certain of the Company’s subsidiaries (the “Subsidiary Guarantors”) and Bank of America, N.A., in its capacity as the initial lender, Administrative Agent, Swingline Lender and L/C Issuer, and certain other lenders from time-to-time party thereto. The Second Amended and Restated Credit Agreement amends and restates the Company’s prior credit agreement, originally dated as of February 1, 2018.

 

The credit facilities under the Second Amended and Restated Credit Agreement consist of a $40 million secured term loan to the Company and a secured revolving credit facility, under which the Company may borrow up to $90 million. The Second Amended and Restated Credit Agreement matures on December 21, 2026. The secured term loam requires quarterly principal payments of $1,000,000 commencing on March 31, 2022. The proceeds of the Second Amended and Restated Credit Agreement may be used for general corporate purposes, including funding certain permitted acquisitions. The Company’s obligations under the Second Amended and Restated Credit Agreement are guaranteed by the Subsidiary Guarantors.

 

The Second Amended and Restated Credit Agreement calls for interest determined by the Bloomberg Short-Term Bank Yield Index rate (“BSBY”) plus a margin that ranges from 1.25% to 2.0% or, at the discretion of the Company, the bank’s prime rate less a margin that ranges from .25% to zero. In both cases the applicable margin is dependent upon Company performance. Under the Second Amended and Restated Credit Agreement, the Company is subject to a minimum fixed-charge coverage financial covenant as well as a maximum total funded debt to EBITDA financial covenant. The Second Amended and Restated Credit Agreement contains other covenants customary for transactions of this type, including restrictions on certain payments, permitted indebtedness, and permitted investments. At March 31, 2023, the Company had approximately $60 million in borrowings outstanding under the Second Amended and Restated Credit Agreement, which were used as partial consideration for the DAS Medical and Advant acquisitions, and also had approximately $0.7 million in standby letters of credit outstanding, drawable as a financial guarantee on worker’s compensation insurance policies. At March 31, 2023, the applicable interest rate was approximately 6.1% and the Company was in compliance with all covenants under the Second Amended and Restated Credit Agreement.

 

Long-term debt consists of the following (in thousands):

 

  

March 31,

2023

 

Revolving credit facility

 $25,000 

Term loan

  35,000 

Total long-term debt

  60,000 

Current portion

  (4,000)

Long-term debt, excluding current portion

 $56,000 

 

Future maturities of long-term debt at March 31, 2023 are as follows (in thousands):

 

  

Term Loan

  

Revolving credit facility

  

Total

 

Remainder of 2023

 $3,000  $-  $3,000 

2024

  4,000   -   4,000 

2025

  4,000   -   4,000 

2026

  24,000   25,000   49,000 
  $35,000  $25,000  $60,000 

 

XML 32 R23.htm IDEA: XBRL DOCUMENT v3.23.1
Note 2 - Acquisitions and Divestiture (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]

Fair value of considerations transferred

    

Cash paid at closing

 $23,608 

Other liability

  395 

Cash from Advant

  (2,840)

Total consideration

 $21,163 
     

Purchase price allocation

    

Accounts receivable

 $2,299 

Inventory

  2,410 

Other current assets

  213 

Property, plant, and equipment

  5,704 

Customer contracts & relationships

  2,925 

Intellectual property

  2,127 

Non-compete agreement

  259 

Lease right of use assets

  289 

Other assets

  41 

Goodwill

  7,140 

Total identifiable assets

 $23,407 

Accounts payable

  (772)

Accrued expenses

  (668)

Income taxes

  (66)

Deferred taxes

  (449)

Lease liabilities

  (289)

Net assets acquired

 $21,163 
Business Acquisition, Pro Forma Information [Table Text Block]
  

Three-month Period Ended

 
  

March 31, 2022

 
  

(Unaudited)

 

Sales

 $75,469 

Operating income

 $7,023 

Net income

 $5,346 

Earnings per share:

    

Basic

 $0.71 

Diluted

 $0.70 
XML 33 R24.htm IDEA: XBRL DOCUMENT v3.23.1
Note 3 - Revenue Recognition (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Disaggregation of Revenue [Table Text Block]
  

Three Months Ended

 
  

March 31,

 

Net sales of:

 

2023

  

2022

 

Products

 $94,692  $69,505 

Tooling and Machinery

  1,294   478 

Engineering services

  1,767   1,259 

Total net sales

 $97,753  $71,242 
Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]
  

Contract Liabilities

 
  

Three Months Ended
March 31,

 
  

2023

  

2022

 

Deferred revenue - beginning of period

 $4,679  $4,247 

Increases due to consideration received from customers

  999   1,116 

Revenue recognized

  (2,096)  (323)

Deferred revenue - end of period

 $3,582  $5,040 
  

Contract Assets

 
  

Three Months Ended
March 31,

 
  

2023

  

2022

 

Unbilled Receivables - beginning of period

 $270  $74 

Increases due to revenue recognized, not invoiced to customers

  1,379   740 

Decreases due to customer invoicing

  (1,326)  (412)

Unbilled Receivables - end of period

 $323  $402 
XML 34 R25.htm IDEA: XBRL DOCUMENT v3.23.1
Note 4 - Supplemental Cash Flow Information (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]
  

Three Months Ended

 
  

March 31,

 
  

2023

  

2022

 

Cash paid for:

        

Interest

 $832  $314 

Income taxes, net of refunds

  (50)  210 
         

Non-cash investing and financing activities:

        

Capital additions accrued but not yet paid

 $347  $185 

Operating lease right of use assets

  1,524   289 

Operating lease liabilities

  (1,560)  (289)
XML 35 R26.htm IDEA: XBRL DOCUMENT v3.23.1
Note 5 - Receivables and Allowance for Credit Losses (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]
  

March 31,

  

December 31,

 
  

2023

  

2022

 

Accounts receivable–trade

 $60,868  $55,850 

Less allowance for credit losses

  (726)  (733)

Receivables, net

 $60,142  $55,117 
Accounts Receivable, Allowance for Credit Loss [Table Text Block]
  

Allowance for Credit
Losses

 
  

Three Months Ended
March 31,

 
  

2023

  

2022

 

Allowance - beginning of period

 $733  $519 

Adjustment for expected credit losses

  (6)  (51)

Amounts written off against the allowance

  (1)  (23)

Allowance - end of period

 $726  $445 
XML 36 R27.htm IDEA: XBRL DOCUMENT v3.23.1
Note 6 - Fair Value of Financial Instruments (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Fair Value, Assets Measured on Recurring Basis [Table Text Block]
  

March 31,
2023

  

December 31, 2022

 
         

Level 3

        

Purchase price contingent consideration (Note 2):

        

Accrued contingent consideration (earn-out)

 $17,421  $14,568 

Present value of non-competition payments

  7,903   10,043 
XML 37 R28.htm IDEA: XBRL DOCUMENT v3.23.1
Note 7 - Share-based Compensation (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Schedule of Employee Service Share Based Compensation Allocation of Recognized Period Costs, By Award Type [Table Text Block]
  

Three Months Ended

 
  

March 31,

 

Share-based compensation related to:

 

2023

  

2022

 

Common stock grants

 $100  $100 

Stock option grants

  94   53 

Restricted Stock Unit Awards ("RSUs")

  862   539 

Total share-based compensation

 $1,056  $692 
Share-Based Payment Arrangement, Option, Activity [Table Text Block]
  

Shares Under Options

  

Weighted Average

Exercise Price

(per share)

  

Weighted Average

Remaining Contractual Life

(in years)

  

Aggregate

Intrinsic Value

(in thousands)

 

Outstanding at December 31, 2022

  92,075  $39.98         

Granted

  7,935   111.54         

Exercised

  (3,780)  28.94         

Outstanding at March 31, 2023

  96,230  $46.31   5.68  $8,038 

Exercisable at March 31, 2023

  78,419  $35.81   5.31  $7,374 

Vested and expected to vest at March 31, 2023

  96,230  $46.31  $5.68  $8,038 
Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]
  

Restricted Stock Units

  

Weighted Average
Grant Date
Fair Value

 

Outstanding at December 31, 2022

  102,048  $56.02 

Awarded

  44,154   111.54 

Shares vested

  (48,244)  53.39 

Shares forfeited

  (99)  97.61 

Outstanding at March 31, 2023

  97,859  $67.83 
XML 38 R29.htm IDEA: XBRL DOCUMENT v3.23.1
Note 8 - Inventories (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Schedule of Inventory, Current [Table Text Block]
  

March 31,

  

December 31,

 
  

2023

  

2022

 

Raw materials

 $41,106  $42,475 

Work in process

  6,113   4,183 

Finished goods

  9,430   6,878 

Total inventory

 $56,649  $53,536 
XML 39 R30.htm IDEA: XBRL DOCUMENT v3.23.1
Note 9 - Property, Plant and Equipment (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Property, Plant and Equipment [Table Text Block]
  

March 31,

  

December 31,

 
  

2023

  

2022

 

Land and improvements

 $4,832  $4,811 

Buildings and improvements

  34,525   34,446 

Leasehold improvements

  7,182   5,503 

Machinery & equipment

  52,966   52,233 

Furniture, fixtures, computers & software

  6,416   6,401 

Construction in progress

  7,377   7,272 

Property, plant and equipment

 $113,298  $110,666 

Accumulated depreciation and amortization

  (54,271)  (52,594)

Net property, plant and equipment

 $59,027  $58,072 
XML 40 R31.htm IDEA: XBRL DOCUMENT v3.23.1
Note 10 - Leases (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Leases, Right-of-Use Assets and Liabilities [Table Text block]
  

March 31,

  

December 31,

 
  

2023

  

2022

 

Operating lease ROU assets

 $14,318  $12,942 

Finance lease ROU assets

  196   211 

Total ROU assets

 $14,514  $13,153 
         

Operating lease liabilities - current

 $2,879  $2,458 

Finance lease liabilities - current

  59   59 

Total lease liabilities - current

 $2,938  $2,517 
         

Operating lease liabilities - long-term

 $11,732  $10,695 

Finance lease liabilities - long-term

  141   156 

Total lease liabilities - long-term

 $11,873  $10,851 
Lease, Cost [Table Text Block]
  

Three Months Ended

 
  

March 31,

 
  

($ in thousands)

 
  

2023

  

2022

 

Lease Cost:

        

Finance lease cost:

        

Amortization of right of use assets

 $15  $15 

Interest on lease liabilities

  1   1 

Operating lease cost

  711   652 

Variable lease cost

  83   70 

Short-term lease cost

  7   17 

Total lease cost

 $817  $755 

Cash paid for amounts included in measurement of lease liabilities:

        

Operating cash flows from operating leases

 $683  $540 

Financing cash flows from finance leases

  16   16 

Weighted-average remaining lease term (years):

        

Finance

  3.29   4.29 

Operating

  5.06   3.62 

Weighted-average discount rate:

        

Finance

  2.10%  2.10%

Operating

  3.42%  2.53%
Lessee, Operating and Finance Leases, Liability, Maturity [Table Text Block]
  

Finance

  

Operating

 

Remainder of 2023

 $47  $2,192 

2024

  63   2,950 

2025

  63   2,779 

2026

  29   2,402 

2027

  6   2,031 

Thereafter

  -   3,774 

Total lease payments

  208   16,128 

Less: Interest

  (8)  (1,517)

Present value of lease liabilities

 $200  $14,611 
XML 41 R32.htm IDEA: XBRL DOCUMENT v3.23.1
Note 11 - Income Per Share (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Schedule of Weighted Average Number of Shares [Table Text Block]
  

Three Months Ended

 
  

March 31,

 
  

2023

  

2022

 

Basic weighted average common shares outstanding

  7,592   7,544 

Weighted average common equivalent shares due to restricted stock, stock options and RSUs

  89   86 

Diluted weighted average common shares outstanding

  7,681   7,630 
XML 42 R33.htm IDEA: XBRL DOCUMENT v3.23.1
Note 12 - Segment Reporting (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Schedule of Revenue by Major Customers by Reporting Segments [Table Text Block]
  

Three Months Ended March 31,

 
  

2023

  

2022

 

Market

 

Net Sales

  

%

  

Net Sales

  

%

 
                 

Medical

 $83,804   85.7% $52,554   73.8%

Automotive

  4,347   4.4%  4,351   6.1%

Aerospace & Defense

  4,217   4.3%  3,755   5.3%

Industrial / Other

  5,385   5.6%  10,582   14.8%

Net Sales

 $97,753   100.0% $71,242   100.0%
XML 43 R34.htm IDEA: XBRL DOCUMENT v3.23.1
Note 13 - Goodwill and Other Intangible Assets (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Schedule of Goodwill [Table Text Block]
  

Goodwill

 
     

December 31, 2022

 $113,028 

Foreign currency translation

  131 

March 31, 2023

 $113,159 
Schedule of Finite-Lived Intangible Assets [Table Text Block]
  

Intelletual Property / Tradename & Brand

  

Non-
Compete

  

Customer
List

  

Total

 

Weighted-average amortization period

 

11.9 years

  

9.3 years

  

20 years

     

Gross amount

 $7,103  $5,502  $65,228  $77,833 

Accumulated amortization

  (879)  (1,125)  (8,483) $(10,487)

Net balance

 $6,224  $4,377  $56,745  $67,346 
Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]

Remainder of 2023

 $3,308 

2024

  4,401 

2025

  4,401 

2026

  4,399 

2027

  4,397 

2028

  4,350 

Thereafter

  42,090 

Total

 $67,346 
XML 44 R35.htm IDEA: XBRL DOCUMENT v3.23.1
Note 14 - Other Long-term Liabilities (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Other Noncurrent Liabilities [Table Text Block]
  

March 31,

  

December 31,

 
  

2023

  

2022

 

Accrued contingent consideration (earn-out)

 $12,421  $9,568 

Present value of non-competition payments

  6,097   8,155 

Other

  965   497 
  $19,483  $18,220 
XML 45 R36.htm IDEA: XBRL DOCUMENT v3.23.1
Note 16 - Indebtedness (Tables)
3 Months Ended
Mar. 31, 2023
Notes Tables  
Schedule of Debt [Table Text Block]
  

March 31,

2023

 

Revolving credit facility

 $25,000 

Term loan

  35,000 

Total long-term debt

  60,000 

Current portion

  (4,000)

Long-term debt, excluding current portion

 $56,000 
Schedule of Maturities of Long-Term Debt [Table Text Block]
  

Term Loan

  

Revolving credit facility

  

Total

 

Remainder of 2023

 $3,000  $-  $3,000 

2024

  4,000   -   4,000 

2025

  4,000   -   4,000 

2026

  24,000   25,000   49,000 
  $35,000  $25,000  $60,000 
XML 46 R37.htm IDEA: XBRL DOCUMENT v3.23.1
Note 2 - Acquisitions and Divestiture (Details Textual)
$ in Thousands, € in Millions
3 Months Ended 12 Months Ended 15 Months Ended
Mar. 17, 2022
USD ($)
Mar. 16, 2022
USD ($)
Mar. 16, 2022
EUR (€)
Mar. 31, 2023
USD ($)
Mar. 31, 2022
USD ($)
Dec. 31, 2022
USD ($)
Dec. 31, 2021
USD ($)
Mar. 31, 2022
USD ($)
Jul. 26, 2022
USD ($)
Business Combination, Acquisition Related Costs       $ 0 $ 775        
Advant Medical [Member]                  
Business Acquisition, Percentage of Voting Interests Acquired   100.00% 100.00%            
Payments to Acquire Businesses, Net of Cash Acquired, Total     € 19 $ (0) 20,768        
Payments to Acquire Businesses, Gross $ 23,608 $ 21,200              
Business Combination, Acquisition Related Costs         639   $ 30 $ 669  
Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual         824        
Business Combination, Pro Forma Information, Earnings or Loss of Acquiree since Acquisition Date, Actual         $ 63        
molded fiber business (“MFT”) and related real estate in Iowa [Member]                  
Disposal Group, Including Discontinued Operation, Consideration                 $ 31,500
Disposal Group, Including Discontinued Operation, Assets, Noncurrent, Total                 15,400
Gain (Loss) on Disposition of Business           $ 15,700      
Disposal Group, Including Discontinued Operation, Consideration, Held in Escrow                 2,600
molded fiber business (“MFT”) and related real estate in Iowa [Member] | Scenario, Adjustment [Member]                  
Disposal Group, Including Discontinued Operation, Consideration                 $ 100
XML 47 R38.htm IDEA: XBRL DOCUMENT v3.23.1
Note 2 - Acquisitions - Assets Acquires and Liabilities Assumed (Details) - USD ($)
$ in Thousands
Mar. 17, 2022
Mar. 16, 2022
Mar. 31, 2023
Dec. 31, 2022
Goodwill     $ 113,159 $ 113,028
Advant Medical [Member]        
Cash paid at closing $ 23,608 $ 21,200    
Other liability 395      
Cash from Advant (2,840)      
Total consideration 21,163      
Accounts receivable 2,299      
Inventory 2,410      
Other current assets 213      
Property, plant, and equipment 5,704      
Lease right of use assets 289      
Other assets 41      
Goodwill 7,140      
Total identifiable assets 23,407      
Accounts payable (772)      
Accrued expenses (668)      
Income taxes (66)      
Deferred taxes (449)      
Lease liabilities (289)      
Net assets acquired 21,163      
Advant Medical [Member] | Customer Contracts and Relationships [Member]        
Finite-Lived Intangibles 2,925      
Advant Medical [Member] | Intellectual Property [Member]        
Finite-Lived Intangibles 2,127      
Advant Medical [Member] | Noncompete Agreements [Member]        
Finite-Lived Intangibles $ 259      
XML 48 R39.htm IDEA: XBRL DOCUMENT v3.23.1
Note 2 - Acquisition - Pro Forma Information (Unaudited) (Details) - Advant Medical [Member]
$ / shares in Units, $ in Thousands
3 Months Ended
Mar. 31, 2022
USD ($)
$ / shares
Sales $ 75,469
Operating income 7,023
Net income $ 5,346
Basic (in dollars per share) | $ / shares $ 0.71
Diluted (in dollars per share) | $ / shares $ 0.70
XML 49 R40.htm IDEA: XBRL DOCUMENT v3.23.1
Note 3 - Revenue Recognition (Details Textual) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Deferred Revenue [Member]    
Contract with Customer, Liability, Revenue Recognized $ 1,900 $ 273
XML 50 R41.htm IDEA: XBRL DOCUMENT v3.23.1
Note 3 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Net sales $ 97,753 $ 71,242
Product [Member]    
Net sales 94,692 69,505
Tooling and Machinery [Member]    
Net sales 1,294 478
Engineering and Development [Member]    
Net sales $ 1,767 $ 1,259
XML 51 R42.htm IDEA: XBRL DOCUMENT v3.23.1
Note 3 - Revenue Recognition - Contract Assets and Liabilities (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Deferred revenue $ 4,679 $ 4,247
Increases due to consideration received from customers 999 1,116
Revenue recognized (2,096) (323)
Deferred revenue 3,582 5,040
Unbilled Receivables - beginning of period 270 74
Increases due to revenue recognized, not invoiced to customers 1,379 740
Decreases due to customer invoicing (1,326) (412)
Unbilled Receivables - end of period $ 323 $ 402
XML 52 R43.htm IDEA: XBRL DOCUMENT v3.23.1
Note 4 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Cash paid for:    
Interest $ 832 $ 314
Income taxes, net of refunds (50) 210
Non-cash investing and financing activities:    
Capital additions accrued but not yet paid 347 185
Operating lease right of use assets 1,524 289
Operating lease liabilities $ (1,560) $ (289)
XML 53 R44.htm IDEA: XBRL DOCUMENT v3.23.1
Note 5 - Receivables and Allowance for Credit Losses - Receivables (Details) - USD ($)
$ in Thousands
Mar. 31, 2023
Dec. 31, 2022
Accounts receivable–trade $ 60,868 $ 55,850
Less allowance for credit losses (726) (733)
Receivables, net $ 60,142 $ 55,117
XML 54 R45.htm IDEA: XBRL DOCUMENT v3.23.1
Note 5 - Receivables and Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Allowance - beginning of period $ 733 $ 519
Adjustment for expected credit losses (6) (51)
Amounts written off against the allowance (1) (23)
Allowance - end of period $ 726 $ 445
XML 55 R46.htm IDEA: XBRL DOCUMENT v3.23.1
Note 6 - Fair Value of Financial Instruments (Details Textual) - USD ($)
$ in Millions
12 Months Ended
Mar. 31, 2023
Dec. 31, 2022
Dec. 22, 2021
Dec. 31, 2021
Contech Medical, Inc and DAS Medical [Member]        
Business Combination, Consideration Transferred, Liabilities Incurred $ 20.0 $ 20.0   $ 25.0
Business Combination, Contingent Consideration, Liability, Total 9.7      
DAS Medical [Member]        
Present Value of Non-competition Agreement $ 7.9      
DAS Medical [Member] | Non-Competition Agreements [Member]        
Payments to Acquire Businesses, Gross     $ 10.0  
Business Combination, Agreement Term (Year)     10 years  
XML 56 R47.htm IDEA: XBRL DOCUMENT v3.23.1
Note 6 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details) - Fair Value, Recurring [Member] - Fair Value, Inputs, Level 3 [Member] - USD ($)
$ in Thousands
Mar. 31, 2023
Dec. 31, 2022
Accrued contingent consideration (earn-out) $ 17,421 $ 14,568
Present value of non-competition payments $ (7,903) $ (10,043)
XML 57 R48.htm IDEA: XBRL DOCUMENT v3.23.1
Note 7 - Share-based Compensation (Details Textual) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Proceeds from Stock Options Exercised $ 109 $ 0
Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount $ 8,000  
Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year) 3 years  
Share-Based Payment Arrangement [Member]    
Share-Based Payment Arrangement, Expense, Tax Benefit $ 839 381
Employee and Nonemployee Stock Option [Member]    
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value 371 0
Proceeds from Stock Options Exercised $ 109 $ 0
Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation (in shares) 861  
Shares Paid for Tax Withholding for Share Based Compensation Market Price (in dollars per share) $ 127.05  
Restricted Stock Units (RSUs) [Member]    
Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation (in shares) 20,457 19,376
Shares Paid for Tax Withholding for Share Based Compensation Market Price (in dollars per share) $ 117.95 $ 67.02
XML 58 R49.htm IDEA: XBRL DOCUMENT v3.23.1
Note 7 - Share-based Compensation - Compensation Cost (Details) - Selling, General and Administrative Expenses [Member] - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Share-based compensation $ 1,056 $ 692
Common Stock [Member]    
Share-based compensation 100 100
Employee and Nonemployee Stock Option [Member]    
Share-based compensation 94 53
Restricted Stock Units (RSUs) [Member]    
Share-based compensation $ 862 $ 539
XML 59 R50.htm IDEA: XBRL DOCUMENT v3.23.1
Note 7 - Share-based Compensation - Summary of Stock Option Activity (Details) - Employee and Nonemployee Stock Option [Member]
$ / shares in Units, $ in Thousands
3 Months Ended
Mar. 31, 2023
USD ($)
$ / shares
shares
Outstanding, shares under options (in shares) | shares 92,075
Outstanding, weighted average exercise price (in dollars per share) | $ / shares $ 39.98
Granted, shares under options (in shares) | shares 7,935
Granted (in dollars per share) | $ / shares $ 111.54
Exercised, shares under options (in shares) | shares (3,780)
Granted, weighted average exercise price (in dollars per share) | $ / shares $ 28.94
Outstanding, shares under options (in shares) | shares 96,230
Outstanding, weighted average exercise price (in dollars per share) | $ / shares $ 46.31
Outstanding, weighted average remaining contractual life (Year) 5 years 8 months 4 days
Outstanding, aggregate intrinsic value | $ $ 8,038
Exercisable, shares under options (in shares) | shares 78,419
Exercisable, weighted average exercise price (in dollars per share) | $ / shares $ 35.81
Exercisable, weighted average remaining contractual life (Year) 5 years 3 months 21 days
Exercisable, aggregate intrinsic value | $ $ 7,374
Vested and expected to vest, shares under options (in shares) | shares 96,230
Vested and expected to vest, weighted average exercise price (in dollars per share) | $ / shares $ 46.31
Vested and expected to vest, weighted average remaining contractual life (Year) 5 years 8 months 4 days
Vested and expected to vest, aggregate intrinsic value | $ $ 8,038
XML 60 R51.htm IDEA: XBRL DOCUMENT v3.23.1
Note 7 - Share-based Compensation - Restricted Stock Unit Activity (Details) - Restricted Stock Units (RSUs) [Member]
3 Months Ended
Mar. 31, 2023
$ / shares
shares
Outstanding, restricted stock units (in shares) | shares 102,048
Outstanding, weighted average award date fair value (in dollars per share) | $ / shares $ 56.02
Awarded, restricted stock units (in shares) | shares 44,154
Awarded, weighted average award date fair value (in dollars per share) | $ / shares $ 111.54
Shares vested, restricted stock units (in shares) | shares (48,244)
Shares vested, weighted average award date fair value (in dollars per share) | $ / shares $ 53.39
Shares forfeited, restricted stock units (in shares) | shares (99)
Shares forfeited, weighted average award date fair value (in dollars per share) | $ / shares $ 97.61
Outstanding, restricted stock units (in shares) | shares 97,859
Outstanding, weighted average award date fair value (in dollars per share) | $ / shares $ 67.83
XML 61 R52.htm IDEA: XBRL DOCUMENT v3.23.1
Note 8 - Inventories - Summary of Inventory (Details) - USD ($)
$ in Thousands
Mar. 31, 2023
Dec. 31, 2022
Raw materials $ 41,106 $ 42,475
Work in process 6,113 4,183
Finished goods 9,430 6,878
Total inventory $ 56,649 $ 53,536
XML 62 R53.htm IDEA: XBRL DOCUMENT v3.23.1
Note 9 - Property, Plant and Equipment - Property, Plant, and Equipment (Details) - USD ($)
$ in Thousands
Mar. 31, 2023
Dec. 31, 2022
Property, plant, and equipment $ 113,298 $ 110,666
Accumulated depreciation and amortization (54,271) (52,594)
Net property, plant and equipment 59,027 58,072
Land and Land Improvements [Member]    
Property, plant, and equipment 4,832 4,811
Building and Building Improvements [Member]    
Property, plant, and equipment 34,525 34,446
Leasehold Improvements [Member]    
Property, plant, and equipment 7,182 5,503
Machinery and Equipment [Member]    
Property, plant, and equipment 52,966 52,233
Furniture, Fixtures, and Computers [Member]    
Property, plant, and equipment 6,416 6,401
Construction in Progress [Member]    
Property, plant, and equipment $ 7,377 $ 7,272
XML 63 R54.htm IDEA: XBRL DOCUMENT v3.23.1
Note 10 - Leases - Right-of-Use Assets and Lease Liabilities (Details) - USD ($)
$ in Thousands
Mar. 31, 2023
Dec. 31, 2022
Total ROU assets $ 14,514 $ 13,153
Total lease liabilities - current 2,938 2,517
Total lease liabilities - long-term 11,873 10,851
Right of Use Assets [Member]    
Operating lease ROU assets 14,318 12,942
Finance lease ROU assets 196 211
Total ROU assets 14,514 13,153
Lease Liabilities, Current [Member]    
Operating lease liabilities - current 2,879 2,458
Finance lease liabilities - current 59 59
Total lease liabilities - current 2,938 2,517
Lease Liabilities, Noncurrent [Member]    
Operating lease liabilities - long-term 11,732 10,695
Finance lease liabilities - long-term 141 156
Total lease liabilities - long-term $ 11,873 $ 10,851
XML 64 R55.htm IDEA: XBRL DOCUMENT v3.23.1
Note 10 - Leases - Lease Cost (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Lease Cost:    
Amortization of right of use assets $ 15 $ 15
Interest on lease liabilities 1 1
Operating lease cost 711 652
Variable lease cost 83 70
Short-term lease cost 7 17
Total lease cost 817 755
Operating cash flows from operating leases 683 540
Financing cash flows from finance leases $ 16 $ 16
Finance (Year) 3 years 3 months 14 days 4 years 3 months 14 days
Operating (Year) 5 years 21 days 3 years 7 months 13 days
Finance 2.10% 2.10%
Operating 3.42% 2.53%
XML 65 R56.htm IDEA: XBRL DOCUMENT v3.23.1
Note 10 - Leases - Aggregate Future Lease Payments (Details)
$ in Thousands
Mar. 31, 2023
USD ($)
Remainder of 2023, finance $ 47
Remainder of 2023, operating 2,192
2024, finance 63
2024, operating 2,950
2025, finance 63
2025, operating 2,779
2026, finance 29
2026, operating 2,402
2027, finance 6
2027, operating 2,031
Thereafter, finance 0
Thereafter, operating 3,774
Total lease payments, finance 208
Total lease payments, operating 16,128
Less: Interest, finance (8)
Less: Interest, operating (1,517)
Present value of lease liabilities, finance 200
Present value of lease liabilities, operating $ 14,611
XML 66 R57.htm IDEA: XBRL DOCUMENT v3.23.1
Note 11 - Income Per Share (Details Textual) - shares
shares in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares) 0 0
XML 67 R58.htm IDEA: XBRL DOCUMENT v3.23.1
Note 11 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details) - shares
shares in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Basic weighted average common shares outstanding (in shares) 7,592 7,544
Weighted average common equivalent shares due to restricted stock, stock options and RSUs (in shares) 89 86
Diluted weighted average common shares outstanding (in shares) 7,681 7,630
XML 68 R59.htm IDEA: XBRL DOCUMENT v3.23.1
Note 12 - Segment Reporting (Details Textual)
3 Months Ended 12 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Dec. 31, 2022
Number of Operating Segments 1    
Customer Concentration Risk [Member] | Revenue Benchmark [Member]      
Number of Major Customers 1 1  
Customer Concentration Risk [Member] | Revenue Benchmark [Member] | One Customer [Member]      
Concentration Risk, Percentage 22.00% 15.00%  
Customer Concentration Risk [Member] | Revenue Benchmark [Member] | Geographic Distribution, Foreign [Member]      
Concentration Risk, Percentage 16.60% 12.00%  
Customer Concentration Risk [Member] | Accounts Receivable [Member]      
Number of Major Customers 1   1
Customer Concentration Risk [Member] | Accounts Receivable [Member] | One Customer [Member]      
Concentration Risk, Percentage 17.00%   10.00%
Customer Concentration Risk [Member] | Long-Lived Assets [Member] | Geographic Distribution, Foreign [Member]      
Concentration Risk, Percentage 18.00%   18.00%
XML 69 R60.htm IDEA: XBRL DOCUMENT v3.23.1
Note 12 - Segment Reporting - Net Sales by Market (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Net sales $ 97,753 $ 71,242
Percentage of concentration risk [1] 100.00% 100.00%
Medical [Member]    
Net sales $ 83,804 $ 52,554
Percentage of concentration risk [1] 85.70% 73.80%
Automotive [Member]    
Net sales $ 4,347 $ 4,351
Percentage of concentration risk [1] 4.40% 6.10%
Aerospace & Defense [Member]    
Net sales $ 4,217 $ 3,755
Percentage of concentration risk [1] 4.30% 5.30%
Industrial [Member]    
Net sales $ 5,385 $ 10,582
Percentage of concentration risk 5.60% 14.80%
[1] Certain amounts for the three and nine months ended September 30, 2021, were reclassified between markets to conform to the current period presentation.
XML 70 R61.htm IDEA: XBRL DOCUMENT v3.23.1
Note 13 - Goodwill and Other Intangible Assets (Details Textual) - USD ($)
$ in Millions
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Amortization of Intangible Assets $ 1.1 $ 1.0
XML 71 R62.htm IDEA: XBRL DOCUMENT v3.23.1
Note 13 - Goodwill and Other Intangible Assets - Changes in Carrying Amount of Goodwill (Details)
$ in Thousands
3 Months Ended
Mar. 31, 2023
USD ($)
December 31, 2022 $ 113,028
Foreign currency translation 131
March 31, 2023 $ 113,159
XML 72 R63.htm IDEA: XBRL DOCUMENT v3.23.1
Note 13 - Goodwill and Other Intangible Assets - Definite-lived Intangible Assets (Details) - USD ($)
$ in Thousands
Mar. 31, 2023
Dec. 31, 2022
Gross amount $ 77,833  
Accumulated amortization (10,487)  
Net balance 67,346 $ 68,361
Intellectual Property/ Tradename and Brand [Member]    
Gross amount 7,103  
Accumulated amortization (879)  
Net balance 6,224  
Noncompete Agreements [Member]    
Gross amount 5,502  
Accumulated amortization (1,125)  
Net balance 4,377  
Customer Lists [Member]    
Gross amount 65,228  
Accumulated amortization (8,483)  
Net balance $ 56,745  
XML 73 R64.htm IDEA: XBRL DOCUMENT v3.23.1
Note 13 - Goodwill and Other Intangible Assets - Future Amortization of Intangible Assets (Details)
$ in Thousands
Mar. 31, 2023
USD ($)
Remainder of 2023 $ 3,308
2024 4,401
2025 4,401
2026 4,399
2027 4,397
2028 4,350
Thereafter 42,090
Total $ 67,346
XML 74 R65.htm IDEA: XBRL DOCUMENT v3.23.1
Note 14 - Other Long-term Liabilities - Other Long-term Liabilities (Details) - USD ($)
$ in Thousands
Mar. 31, 2023
Dec. 31, 2022
Accrued contingent consideration (earn-out) $ 12,421 $ 9,568
Present value of non-competition payments 6,097 8,155
Other 965 497
Other Liabilities, Noncurrent $ 19,483 $ 18,220
XML 75 R66.htm IDEA: XBRL DOCUMENT v3.23.1
Note 15 - Income Tax (Details Textual)
3 Months Ended
Mar. 31, 2023
Mar. 31, 2022
Effective Income Tax Rate Reconciliation, Percent 18.10% 20.20%
XML 76 R67.htm IDEA: XBRL DOCUMENT v3.23.1
Note 16 - Indebtedness (Details Textual) - USD ($)
Dec. 22, 2021
Mar. 31, 2023
Long-Term Debt   $ 60,000,000
Subsidiary Guarantors [Member] | Second Amended and Restated Credit Agreement [Member]    
Debt Instrument, Face Amount $ 130,000,000  
Long-Term Debt   60,000,000
Letters of Credit Outstanding, Amount   $ 700,000
Debt Instrument, Interest Rate, Stated Percentage   6.10%
Subsidiary Guarantors [Member] | Second Amended and Restated Credit Agreement [Member] | Bloomberg Short-term Bank Yield Index Rate [Member] | Minimum [Member]    
Debt Instrument, Basis Spread on Variable Rate 1.25%  
Subsidiary Guarantors [Member] | Second Amended and Restated Credit Agreement [Member] | Bloomberg Short-term Bank Yield Index Rate [Member] | Maximum [Member]    
Debt Instrument, Basis Spread on Variable Rate 2.00%  
Subsidiary Guarantors [Member] | Second Amended and Restated Credit Agreement [Member] | Prime Rate [Member] | Maximum [Member]    
Debt Instrument, Basis Spread on Variable Rate 0.25%  
Subsidiary Guarantors [Member] | Second Amended and Restated Credit Agreement [Member] | Secured Revolving Credit Facility [Member]    
Line of Credit Facility, Maximum Borrowing Capacity $ 90,000,000  
Debt Instrument, Periodic Payment, Principal 1,000,000  
Subsidiary Guarantors [Member] | Second Amended and Restated Credit Agreement [Member] | Secured Term Loan [Member]    
Debt Instrument, Face Amount $ 40,000,000  
XML 77 R68.htm IDEA: XBRL DOCUMENT v3.23.1
Note 16 - Indebtedness - Long-term Debt (Details) - USD ($)
$ in Millions
Mar. 31, 2023
Dec. 31, 2022
Total long-term debt $ 60  
Current portion (4) $ (4)
Long-term debt, excluding current portion 56 $ 51
Term Loan [Member]    
Total long-term debt 35  
Revolving Credit Facility [Member] | Line of Credit [Member]    
Total long-term debt $ 25  
XML 78 R69.htm IDEA: XBRL DOCUMENT v3.23.1
Note 16 - Indebtedness - Schedule of Maturity (Details)
$ in Thousands
Mar. 31, 2023
USD ($)
Remainder of 2023 $ 3,000
2024 4,000
2025 4,000
2026 49,000
Long-Term Debt 60,000
Line of Credit [Member] | Revolving Credit Facility [Member]  
Remainder of 2023 0
2024 0
2025 0
2026 25,000
Long-Term Debt 25,000
Term Loan [Member]  
Remainder of 2023 3,000
2024 4,000
2025 4,000
2026 24,000
Long-Term Debt $ 35,000
XML 79 ufpt20230331_10q_htm.xml IDEA: XBRL DOCUMENT 0000914156 2023-01-01 2023-03-31 0000914156 2023-05-02 0000914156 2023-03-31 0000914156 2022-12-31 0000914156 2022-01-01 2022-03-31 0000914156 ufpt:CommonStockOutstandingMember 2022-12-31 0000914156 us-gaap:AdditionalPaidInCapitalMember 2022-12-31 0000914156 us-gaap:RetainedEarningsMember 2022-12-31 0000914156 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-12-31 0000914156 us-gaap:TreasuryStockCommonMember 2022-12-31 0000914156 ufpt:CommonStockOutstandingMember 2023-01-01 2023-03-31 0000914156 us-gaap:AdditionalPaidInCapitalMember 2023-01-01 2023-03-31 0000914156 us-gaap:RetainedEarningsMember 2023-01-01 2023-03-31 0000914156 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-01-01 2023-03-31 0000914156 us-gaap:TreasuryStockCommonMember 2023-01-01 2023-03-31 0000914156 ufpt:CommonStockOutstandingMember 2023-03-31 0000914156 us-gaap:AdditionalPaidInCapitalMember 2023-03-31 0000914156 us-gaap:RetainedEarningsMember 2023-03-31 0000914156 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-03-31 0000914156 us-gaap:TreasuryStockCommonMember 2023-03-31 0000914156 ufpt:CommonStockOutstandingMember 2021-12-31 0000914156 us-gaap:AdditionalPaidInCapitalMember 2021-12-31 0000914156 us-gaap:RetainedEarningsMember 2021-12-31 0000914156 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-12-31 0000914156 us-gaap:TreasuryStockCommonMember 2021-12-31 0000914156 2021-12-31 0000914156 ufpt:CommonStockOutstandingMember 2022-01-01 2022-03-31 0000914156 us-gaap:AdditionalPaidInCapitalMember 2022-01-01 2022-03-31 0000914156 us-gaap:RetainedEarningsMember 2022-01-01 2022-03-31 0000914156 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-01-01 2022-03-31 0000914156 us-gaap:TreasuryStockCommonMember 2022-01-01 2022-03-31 0000914156 ufpt:CommonStockOutstandingMember 2022-03-31 0000914156 us-gaap:AdditionalPaidInCapitalMember 2022-03-31 0000914156 us-gaap:RetainedEarningsMember 2022-03-31 0000914156 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-03-31 0000914156 us-gaap:TreasuryStockCommonMember 2022-03-31 0000914156 2022-03-31 0000914156 ufpt:AdvantMedicalMember 2023-01-01 2023-03-31 0000914156 ufpt:AdvantMedicalMember 2022-01-01 2022-03-31 0000914156 ufpt:DasMedicalMember 2023-01-01 2023-03-31 0000914156 ufpt:DasMedicalMember 2022-01-01 2022-03-31 0000914156 ufpt:MoldedFiberBusinessMFTAndRelatedRealEstateInIowaMember 2022-07-26 0000914156 us-gaap:ScenarioAdjustmentMember ufpt:MoldedFiberBusinessMFTAndRelatedRealEstateInIowaMember 2022-07-26 0000914156 ufpt:MoldedFiberBusinessMFTAndRelatedRealEstateInIowaMember 2022-01-01 2022-12-31 0000914156 ufpt:AdvantMedicalMember 2022-03-16 0000914156 ufpt:AdvantMedicalMember 2022-03-16 2022-03-16 0000914156 ufpt:AdvantMedicalMember 2022-03-17 2022-03-17 0000914156 ufpt:AdvantMedicalMember 2022-03-17 0000914156 ufpt:AdvantMedicalMember ufpt:CustomerContractsAndRelationshipsMember 2022-03-17 0000914156 ufpt:AdvantMedicalMember us-gaap:IntellectualPropertyMember 2022-03-17 0000914156 ufpt:AdvantMedicalMember us-gaap:NoncompeteAgreementsMember 2022-03-17 0000914156 ufpt:AdvantMedicalMember 2021-01-01 2022-03-31 0000914156 ufpt:AdvantMedicalMember 2021-01-01 2021-12-31 0000914156 us-gaap:ProductMember 2023-01-01 2023-03-31 0000914156 us-gaap:ProductMember 2022-01-01 2022-03-31 0000914156 ufpt:ToolingAndMachineryMember 2023-01-01 2023-03-31 0000914156 ufpt:ToolingAndMachineryMember 2022-01-01 2022-03-31 0000914156 ufpt:EngineeringAndDevelopmentMember 2023-01-01 2023-03-31 0000914156 ufpt:EngineeringAndDevelopmentMember 2022-01-01 2022-03-31 0000914156 ufpt:DeferredRevenueMember 2023-01-01 2023-03-31 0000914156 ufpt:DeferredRevenueMember 2022-01-01 2022-03-31 0000914156 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2023-03-31 0000914156 us-gaap:FairValueInputsLevel3Member us-gaap:FairValueMeasurementsRecurringMember 2022-12-31 0000914156 ufpt:ContechMedicalIncAndDasMedicalMember 2021-01-01 2021-12-31 0000914156 ufpt:ContechMedicalIncAndDasMedicalMember 2022-12-31 2022-12-31 0000914156 ufpt:ContechMedicalIncAndDasMedicalMember 2023-03-31 2023-03-31 0000914156 ufpt:ContechMedicalIncAndDasMedicalMember 2023-03-31 0000914156 ufpt:DasMedicalMember ufpt:NoncompetitionAgreementsMember 2021-12-22 2021-12-22 0000914156 ufpt:DasMedicalMember 2023-03-31 0000914156 us-gaap:CommonStockMember us-gaap:SellingGeneralAndAdministrativeExpensesMember 2023-01-01 2023-03-31 0000914156 us-gaap:CommonStockMember us-gaap:SellingGeneralAndAdministrativeExpensesMember 2022-01-01 2022-03-31 0000914156 ufpt:EmployeeAndNonemployeeStockOptionMember us-gaap:SellingGeneralAndAdministrativeExpensesMember 2023-01-01 2023-03-31 0000914156 ufpt:EmployeeAndNonemployeeStockOptionMember us-gaap:SellingGeneralAndAdministrativeExpensesMember 2022-01-01 2022-03-31 0000914156 us-gaap:RestrictedStockUnitsRSUMember us-gaap:SellingGeneralAndAdministrativeExpensesMember 2023-01-01 2023-03-31 0000914156 us-gaap:RestrictedStockUnitsRSUMember us-gaap:SellingGeneralAndAdministrativeExpensesMember 2022-01-01 2022-03-31 0000914156 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2023-01-01 2023-03-31 0000914156 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2022-01-01 2022-03-31 0000914156 us-gaap:StockCompensationPlanMember 2023-01-01 2023-03-31 0000914156 us-gaap:StockCompensationPlanMember 2022-01-01 2022-03-31 0000914156 ufpt:EmployeeAndNonemployeeStockOptionMember 2022-12-31 0000914156 ufpt:EmployeeAndNonemployeeStockOptionMember 2023-01-01 2023-03-31 0000914156 ufpt:EmployeeAndNonemployeeStockOptionMember 2023-03-31 0000914156 ufpt:EmployeeAndNonemployeeStockOptionMember 2022-01-01 2022-03-31 0000914156 us-gaap:RestrictedStockUnitsRSUMember 2022-12-31 0000914156 us-gaap:RestrictedStockUnitsRSUMember 2023-01-01 2023-03-31 0000914156 us-gaap:RestrictedStockUnitsRSUMember 2023-03-31 0000914156 us-gaap:RestrictedStockUnitsRSUMember 2022-01-01 2022-03-31 0000914156 us-gaap:LandAndLandImprovementsMember 2023-03-31 0000914156 us-gaap:LandAndLandImprovementsMember 2022-12-31 0000914156 us-gaap:BuildingAndBuildingImprovementsMember 2023-03-31 0000914156 us-gaap:BuildingAndBuildingImprovementsMember 2022-12-31 0000914156 us-gaap:LeaseholdImprovementsMember 2023-03-31 0000914156 us-gaap:LeaseholdImprovementsMember 2022-12-31 0000914156 us-gaap:MachineryAndEquipmentMember 2023-03-31 0000914156 us-gaap:MachineryAndEquipmentMember 2022-12-31 0000914156 ufpt:FurnitureFixturesAndComputersMember 2023-03-31 0000914156 ufpt:FurnitureFixturesAndComputersMember 2022-12-31 0000914156 us-gaap:ConstructionInProgressMember 2023-03-31 0000914156 us-gaap:ConstructionInProgressMember 2022-12-31 0000914156 ufpt:RightOfUseAssetsMember 2023-03-31 0000914156 ufpt:RightOfUseAssetsMember 2022-12-31 0000914156 ufpt:LeaseLiabilitiesCurrentMember 2023-03-31 0000914156 ufpt:LeaseLiabilitiesCurrentMember 2022-12-31 0000914156 ufpt:LeaseLiabilitiesNoncurrentMember 2023-03-31 0000914156 ufpt:LeaseLiabilitiesNoncurrentMember 2022-12-31 0000914156 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember us-gaap:GeographicDistributionForeignMember 2023-01-01 2023-03-31 0000914156 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember us-gaap:GeographicDistributionForeignMember 2022-01-01 2022-03-31 0000914156 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-03-31 0000914156 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-03-31 0000914156 ufpt:OneCustomerMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-03-31 0000914156 ufpt:OneCustomerMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-03-31 0000914156 us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0000914156 us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-03-31 0000914156 ufpt:OneCustomerMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-03-31 0000914156 ufpt:OneCustomerMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0000914156 ufpt:LonglivedAssetsMember us-gaap:CustomerConcentrationRiskMember us-gaap:GeographicDistributionForeignMember 2023-01-01 2023-03-31 0000914156 ufpt:LonglivedAssetsMember us-gaap:CustomerConcentrationRiskMember us-gaap:GeographicDistributionForeignMember 2022-01-01 2022-12-31 0000914156 ufpt:MedicalMember 2023-01-01 2023-03-31 0000914156 ufpt:MedicalMember 2022-01-01 2022-03-31 0000914156 ufpt:AutomotiveMember 2023-01-01 2023-03-31 0000914156 ufpt:AutomotiveMember 2022-01-01 2022-03-31 0000914156 ufpt:AerospaceDefenseMember 2023-01-01 2023-03-31 0000914156 ufpt:AerospaceDefenseMember 2022-01-01 2022-03-31 0000914156 ufpt:IndustrialMember 2023-01-01 2023-03-31 0000914156 ufpt:IndustrialMember 2022-01-01 2022-03-31 0000914156 ufpt:IntellectualPropertyTradenameAndBrandMember 2023-03-31 0000914156 us-gaap:NoncompeteAgreementsMember 2023-03-31 0000914156 us-gaap:CustomerListsMember 2023-03-31 0000914156 ufpt:SecondAmendedAndRestatedCreditAgreementMember ufpt:SubsidiaryGuarantorsMember 2021-12-22 0000914156 ufpt:SecondAmendedAndRestatedCreditAgreementMember ufpt:SubsidiaryGuarantorsMember ufpt:SecuredTermLoanMember 2021-12-22 0000914156 ufpt:SecuredRevolvingCreditFacilityMember ufpt:SecondAmendedAndRestatedCreditAgreementMember ufpt:SubsidiaryGuarantorsMember 2021-12-22 0000914156 ufpt:SecuredRevolvingCreditFacilityMember ufpt:SecondAmendedAndRestatedCreditAgreementMember ufpt:SubsidiaryGuarantorsMember 2021-12-22 2021-12-22 0000914156 srt:MinimumMember ufpt:SecondAmendedAndRestatedCreditAgreementMember ufpt:SubsidiaryGuarantorsMember ufpt:BloombergShorttermBankYieldIndexRateMember 2021-12-22 2021-12-22 0000914156 srt:MaximumMember ufpt:SecondAmendedAndRestatedCreditAgreementMember ufpt:SubsidiaryGuarantorsMember ufpt:BloombergShorttermBankYieldIndexRateMember 2021-12-22 2021-12-22 0000914156 srt:MaximumMember ufpt:SecondAmendedAndRestatedCreditAgreementMember ufpt:SubsidiaryGuarantorsMember us-gaap:PrimeRateMember 2021-12-22 2021-12-22 0000914156 ufpt:SecondAmendedAndRestatedCreditAgreementMember ufpt:SubsidiaryGuarantorsMember 2023-03-31 0000914156 us-gaap:RevolvingCreditFacilityMember us-gaap:LineOfCreditMember 2023-03-31 0000914156 ufpt:TermLoanMember 2023-03-31 shares iso4217:USD iso4217:USD shares pure iso4217:EUR utr:Y 0000914156 UFP TECHNOLOGIES INC false --12-31 Q1 2023 0.01 0.01 1000000 1000000 0 0 0.01 0.01 20000000 20000000 7642529 7612970 7611244 7581685 29559 29559 19000000.0 20000000 P10Y 0 1 1 1 1 1 0.18 0.0025 10-Q true 2023-03-31 false 001-12648 DE 04-2314970 100 Hale Street Newburyport MA 01950 978 352-2200 Common Stock UFPT NASDAQ Yes Yes Accelerated Filer false false false 7614197 6503000 4451000 60142000 55117000 56649000 53536000 3622000 3242000 126916000 116346000 59027000 58072000 113159000 113028000 67346000 68361000 4706000 4148000 14514000 13153000 1547000 1448000 3567000 3636000 390782000 378192000 20454000 19961000 16768000 23122000 3582000 4679000 2938000 2517000 4450000 1682000 4000000 4000000 52192000 55961000 56000000 51000000 0 448000 4750000 4167000 11873000 10851000 19483000 18220000 144298000 140647000 0 0 76000 76000 34777000 36070000 212335000 202596000 -117000 -610000 587000 587000 246484000 237545000 390782000 378192000 97753000 71242000 69052000 54108000 28701000 17134000 13006000 10011000 0 775000 2853000 0 -1000 12000 12841000 6360000 869000 327000 -77000 52000 11895000 6085000 2156000 1227000 9739000 4858000 1.28 0.64 1.27 0.64 7592000 7544000 7681000 7630000 9739000 4858000 493000 381000 493000 381000 10232000 5239000 7582000 76000 36070000 202596000 -610000 30000 -587000 237545000 48000 0 1056000 0 0 0 0 1056000 4000 0 109000 0 0 0 0 109000 21000 -0 2522000 -0 -0 -0 2522000 0 0 64000 0 0 0 0 64000 0 0 0 493000 0 493000 0 0 9739000 0 9739000 7613000 76000 34777000 212335000 -117000 30000 -587000 246484000 7535000 75000 34151000 160807000 0 30000 -587000 194446000 46000 1000 691000 0 0 0 0 692000 20000 -0 1299000 -0 -0 -0 -0 1299000 0 0 0 381000 0 381000 0 0 4858000 0 4858000 7561000 76000 33543000 165665000 381000 30000 -587000 199078000 9739000 4858000 2777000 3016000 -1000 12000 1056000 692000 2853000 0 -545000 -440000 4863000 4467000 3054000 7826000 377000 1712000 1850000 -308000 65000 4105000 -6197000 -3365000 -1098000 793000 2765000 1130000 451000 -296000 1723000 -3216000 2179000 2334000 -0 20768000 -0 -115000 2000 12000 -2177000 -22975000 6000000 28000000 -0 7000000 1000000 1000000 16000 16000 109000 0 2522000 1299000 2571000 18685000 -65000 41000 2052000 -7465000 4451000 11117000 6503000 3652000 <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>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:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 27pt;">The interim condensed consolidated financial statements of UFP Technologies, Inc. (the “Company”) presented herein, have been prepared pursuant to the rules of the Securities and Exchange Commission for quarterly reports on Form <em style="font: inherit;">10</em>-Q and do <em style="font: inherit;">not</em> include all the information and note disclosures required by accounting principles generally accepted in the United States of America. These statements should be read in conjunction with the consolidated financial statements and notes thereto for the year ended <em style="font: inherit;"> December 31, 2022, </em>included in the Company's <em style="font: inherit;">2022</em> Annual Report on Form <em style="font: inherit;">10</em>-K, as filed with the Securities and Exchange Commission.</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 0pt 0pt 27pt;">The condensed consolidated balance sheets as of <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;"> December 31, 2022, </em>the condensed consolidated statements of income and comprehensive income for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022,</em> the condensed consolidated statements of stockholders’ equity for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022,</em> and the condensed consolidated statements of cash flows for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022</em> are unaudited but, in the opinion of management, include all adjustments (consisting of normal, recurring adjustments) necessary for a fair presentation of results for these interim periods. The condensed consolidated balance sheet as of <em style="font: inherit;"> December 31, 2022 </em>has been derived from the Company’s annual financial statements that were audited by an independent registered public accounting firm but does <em style="font: inherit;">not</em> include all of the information and footnotes required for complete annual 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 0pt 0pt 27pt;">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period.</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 0pt 0pt 27pt;">The results of operations for the <em style="font: inherit;">three</em>-month period ended <em style="font: inherit;"> March 31, 2023 </em>are <em style="font: inherit;">not</em> necessarily indicative of the results to be expected for the entire fiscal year ending <em style="font: inherit;"> December </em><em style="font: inherit;">31,</em> <em style="font: inherit;">2023.</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 0pt 0pt 27pt;"><i>Recent Accounting Pronouncements</i></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 0pt 0pt 28pt;">There are <em style="font: inherit;">no</em> newly issued accounting pronouncements that the Company expects to have a material effect on the financial statements.</p> <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>Acquisition and Divestiture</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;margin:0pt 0pt 0pt 27pt;"><span style="text-decoration: underline; ">Molded Fiber</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 0pt 0pt 27pt;">On <em style="font: inherit;"> July 26, 2022, </em>pursuant to a share purchase agreement and related agreements, the Company sold its former wholly owned subsidiary Moulded Fiber Technology, Inc. (“MFT”) and related real estate in Iowa to CKF USA INCORPORATED (“CKF”) (a Delaware Corporation) for approximately $31.5 million (including a working capital adjustment of approximately $0.1 million that decreased the total consideration). The net book value of the assets sold were approximately $15.4 million and the Company recorded a net gain on sale of approximately $15.7 million, which was recorded in the year ended <em style="font: inherit;"> December 31, 2022. </em>$2.6 million of the purchase price is being held in escrow to indemnify CKF against certain claims, losses, and liabilities. The Securities Purchase Agreement contains customary representations, warranties, and covenants customary for transactions of this type. Proceeds from the sale were used to pay down debt on the Company’s revolving credit facility, as well as income tax obligations on the related gain.</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 0pt 0pt 27pt;"><span style="text-decoration: underline; ">Advant Medical</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 0pt 0pt 27pt;">On <em style="font: inherit;"> March 16, 2022 </em>the Company purchased 100% of the outstanding shares of common stock of Advant Medical, Ltd., Advant Medical Inc. and Advant Medical Costa Rica, Limitada, (together Advant), pursuant to a Stock Purchase Agreement and related agreements, for an aggregate purchase price of <span style="-sec-ix-hidden:c97863851">€19.0</span> million in cash along with a working capital adjustment at closing. Total consideration in U.S. Dollars amounted to approximately $21.2 million. The purchase price was subject to additional adjustment based upon Advant’s final working capital at closing. A portion of the purchase price is being held in escrow to indemnify the Company against certain claims, losses, and liabilities. The Stock Purchase Agreement contains customary representations, warranties, and covenants customary for transactions of this type.</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 0pt 0pt 27pt;">Founded in <em style="font: inherit;">1993,</em> Advant is headquartered in Galway, Ireland, with operations in Costa Rica and partner manufacturing in Mexico. Advant is a developer and manufacturer of Class I, II, and III medical devices and packaging, primarily for catheters and guide wires.</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 0pt 0pt 27pt;">The following table summarizes the allocation of consideration paid to the acquisition date fair value of the assets acquired and liabilities assumed based on management’s estimates of fair value (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="margin-right: 7.5%; margin-left: 7.5%; width: 85%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 82%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Fair value of considerations transferred</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Cash paid at closing</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">23,608</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Other liability</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">395</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Cash from Advant</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(2,840</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Total consideration</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"><b>$</b></td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"><b>21,163</b></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Purchase price allocation</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Accounts receivable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,299</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Inventory</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,410</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Other current assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">213</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Property, plant, and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">5,704</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Customer contracts &amp; relationships</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,925</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Intellectual property</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,127</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Non-compete agreement</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">259</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Lease right of use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">289</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Other assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">41</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Goodwill</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">7,140</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total identifiable assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">23,407</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Accounts payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">(772</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Accrued expenses</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">(668</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">(66</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Deferred taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">(449</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(289</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Net assets acquired</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><b>$</b></td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><b>21,163</b></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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 0pt 0pt 27pt;">Acquisition costs associated with the transaction through the <em style="font: inherit;">first</em> quarter of <em style="font: inherit;">2022</em> were approximately $669 thousand, of which $639 thousand was charged to expense in the quarter ended <em style="font: inherit;"> March 31, 2022 </em>and $30 thousand was charged to expense in the year ended <em style="font: inherit;"> December 31, 2021. </em>These costs were primarily for legal services, valuation services and stamp duty filings and are reflected on the face of the condensed consolidated statements of income and comprehensive income.</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 0pt 0pt 27pt;">The amount of revenue and earnings of Advant recognized since the acquisition date through the <em style="font: inherit;">first</em> quarter of <em style="font: inherit;">2022</em> was approximately $824 thousand and $63 thousand, respectively, and is included in the condensed consolidated statements of income and comprehensive income for the period ended <em style="font: inherit;"> March 31, 2022.</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 0pt 0pt 27pt;"><span style="text-decoration: underline; ">Pro-forma statements</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 0pt 0pt 27pt;">The following table contains an unaudited pro forma condensed consolidated statement of operations for the <em style="font: inherit;">three</em>-month period ended <em style="font: inherit;"> March 31, 2022, </em>as if the Advant acquisition had occurred at the beginning of <em style="font: inherit;">2022</em> (in thousands):</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;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">Three-month Period Ended</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">March 31, 2022</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">(Unaudited)</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 83%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">75,469</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Operating income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,023</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Net income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">5,346</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Earnings per share:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Basic</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">0.71</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Diluted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">0.70</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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> <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 27pt;">The above unaudited pro forma information is presented for illustrative purposes only and <em style="font: inherit;"> may </em><em style="font: inherit;">not</em> be indica‐tive of the results of operations that would have occurred had both acquisitions occurred as presented. In addition, future results <em style="font: inherit;"> may </em>vary significantly from the results reflected in such pro forma information.</p> 31500000 100000 15400000 15700000 2600000 1 21200000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 7.5%; margin-left: 7.5%; width: 85%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 82%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Fair value of considerations transferred</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Cash paid at closing</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">23,608</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Other liability</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">395</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Cash from Advant</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(2,840</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Total consideration</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"><b>$</b></td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"><b>21,163</b></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Purchase price allocation</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Accounts receivable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,299</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Inventory</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,410</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Other current assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">213</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Property, plant, and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">5,704</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Customer contracts &amp; relationships</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,925</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Intellectual property</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,127</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Non-compete agreement</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">259</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Lease right of use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">289</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Other assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">41</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Goodwill</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">7,140</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total identifiable assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">23,407</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Accounts payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">(772</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Accrued expenses</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">(668</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">(66</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Deferred taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">(449</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(289</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Net assets acquired</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><b>$</b></td><td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><b>21,163</b></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 23608000 395000 2840000 21163000 2299000 2410000 213000 5704000 2925000 2127000 259000 289000 41000 7140000 23407000 772000 668000 66000 449000 289000 21163000 669000 639000 30000 824000 63000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">Three-month Period Ended</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">March 31, 2022</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">(Unaudited)</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 83%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">75,469</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Operating income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,023</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Net income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">5,346</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Earnings per share:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Basic</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">0.71</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Diluted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">0.70</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> </tbody></table> 75469000 7023000 5346000 0.71 0.70 <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>Revenue Recognition</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 0pt 0pt 27pt;">The Company recognizes revenue when a customer obtains control of a promised good or service. The amount of revenue recognized reflects the consideration that the Company expects to be entitled to in exchange for promised goods or services. The Company recognizes revenue in accordance with the core principles of ASC <em style="font: inherit;">606</em> which include (<em style="font: inherit;">1</em>) identifying the contract with a customer, (<em style="font: inherit;">2</em>) identifying separate performance obligations within the contract, (<em style="font: inherit;">3</em>) determining the transaction price, (<em style="font: inherit;">4</em>) allocating the transaction price to the performance obligations, and (<em style="font: inherit;">5</em>) recognizing revenue. The Company recognizes all but an immaterial portion of its product sales upon shipment. The Company recognizes revenue from the sale of tooling and machinery upon customer acceptance. The Company recognizes revenue from engineering services, which are primarily product development services, as the services are performed or as otherwise determined based on the substance of the agreement. The Company recognizes revenue from bill and hold transactions at the time the specified goods are complete and available to the customer. In the ordinary course of business, the Company accepts sales returns from customers for defective goods, such amounts being immaterial. Although only applicable to an insignificant number of transactions, the Company has elected to exclude sales taxes from the transaction price. The Company has elected to account for shipping and handling activities for which the Company is responsible under the terms and conditions of the sale <em style="font: inherit;">not</em> as performance obligations but rather as fulfillment costs. These activities are required to fulfill the Company’s promise to transfer the good and are expensed when revenue is recognized.</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 0pt 0pt 28pt;"><i>Disaggregated Revenue</i></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 0pt 0pt 28pt;">The following table presents the Company’s revenue disaggregated by the major types of goods and services sold to the Company’s customers (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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b><b>Three Months Ended</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b><b>March 31,</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Net sales of:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b><b>2023</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b><b>2022</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Products</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">94,692</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">69,505</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Tooling and Machinery</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">1,294</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">478</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Engineering services</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,767</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,259</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">97,753</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">71,242</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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 0pt 0pt 28pt;"><i>Contract balances</i></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 0pt 0pt 28pt;">Timing of revenue recognition <em style="font: inherit;"> may </em>differ from the timing of invoicing to customers. When invoicing occurs prior to revenue recognition, the Company has contract liabilities included within “deferred revenue” on the condensed consolidated balance sheet.</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 0pt 0pt 28pt;">The following table presents opening and closing balances of contract liabilities for the <em style="font: inherit;">three</em>-month periods ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022</em> (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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Contract Liabilities</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b><br/> <b>March 31,</b> </b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Deferred revenue - beginning of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,679</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,247</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Increases due to consideration received from customers</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">999</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">1,116</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Revenue recognized</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(2,096</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(323</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Deferred revenue - end of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">3,582</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">5,040</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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; text-align: justify; margin: 0pt 0pt 0pt 28pt;">Revenue recognized during the <em style="font: inherit;">three</em>-month periods ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022</em> from amounts included in deferred revenue at the beginning of the period were approximately $1.9 million and $273 thousand, respectively.</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; text-align: justify; margin: 0pt 0pt 0pt 28pt;">When invoicing occurs after revenue recognition, the Company has contract assets, included within “receivables, net” on the condensed consolidated balance sheets.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 28pt; text-align: justify;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 27pt;">The following table presents opening and closing balances of contract assets for the <em style="font: inherit;">three</em>-month periods ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022</em> (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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Contract Assets</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b><br/> <b>March 31,</b> </b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Unbilled Receivables - beginning of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">270</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">74</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Increases due to revenue recognized, not invoiced to customers</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">1,379</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">740</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Decreases due to customer invoicing</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(1,326</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(412</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Unbilled Receivables - end of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">323</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">402</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b><b>Three Months Ended</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b><b>March 31,</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Net sales of:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b><b>2023</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b><b>2022</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Products</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">94,692</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">69,505</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Tooling and Machinery</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">1,294</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">478</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Engineering services</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,767</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,259</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">97,753</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">71,242</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 94692000 69505000 1294000 478000 1767000 1259000 97753000 71242000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Contract Liabilities</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b><br/> <b>March 31,</b> </b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Deferred revenue - beginning of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,679</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,247</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Increases due to consideration received from customers</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">999</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">1,116</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Revenue recognized</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(2,096</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(323</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Deferred revenue - end of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">3,582</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">5,040</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Contract Assets</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b><br/> <b>March 31,</b> </b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Unbilled Receivables - beginning of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">270</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">74</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Increases due to revenue recognized, not invoiced to customers</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">1,379</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">740</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Decreases due to customer invoicing</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(1,326</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(412</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Unbilled Receivables - end of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">323</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">402</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 4679000 4247000 999000 1116000 2096000 323000 3582000 5040000 1900000 273000 270000 74000 1379000 740000 1326000 412000 323000 402000 <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;">4</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>Supplemental Cash Flow 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 0pt 0pt 27pt;">Supplemental cash flow information consists 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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Cash paid for:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Interest</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">832</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">314</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Income taxes, net of refunds</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">(50</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">210</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Non-cash investing and financing activities:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Capital additions accrued but not yet paid</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">347</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">185</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating lease right of use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">1,524</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">289</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">(1,560</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">(289</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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" class="finTable" style="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Cash paid for:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Interest</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">832</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">314</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Income taxes, net of refunds</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">(50</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">210</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Non-cash investing and financing activities:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Capital additions accrued but not yet paid</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">347</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">185</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating lease right of use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">1,524</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">289</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">(1,560</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">(289</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td></tr> </tbody></table> 832000 314000 -50000 210000 347000 185000 1524000 289000 -1560000 -289000 <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;">5</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>Receivables and Allowance for Credit Losses</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 0pt 0pt 28pt;">Receivables 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="margin-right: 15%; margin-left: 15%; width: 70%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 62%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Accounts receivable–trade</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">60,868</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">55,850</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Less allowance for credit losses</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(726</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(733</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Receivables, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">60,142</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">55,117</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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 0pt 0pt 27pt;">The Company is exposed to credit losses primarily through sales of products and services. The Company’s expected loss allowance methodology for accounts receivable is developed using historical collection experience, current and future economic and market conditions, and a review of the current status of customers' trade accounts receivables. Due to the short-term nature of such receivables, the estimate of the amount of accounts receivable that <em style="font: inherit;"> may </em><em style="font: inherit;">not</em> be collected is based on aging of the accounts receivable balances and the financial condition of customers. Additionally, specific allowance amounts are established to record the appropriate provision for customers that have a higher probability of default. The Company’s monitoring activities include timely account reconciliation, dispute resolution, payment confirmation, consideration of customers' financial condition and macroeconomic conditions. Balances are written off when determined to be uncollectible. Estimates based on an assessment of anticipated payment and all other historical, current, and future information that is reasonably available are used to determine the allowance.</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 0pt 0pt 27pt;">The following table provides a roll-forward of the allowance for credit losses that is deducted from accounts receivable to present the net amount expected to be collected for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022</em> (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="margin-right: 15%; margin-left: 15%; width: 70%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Allowance for Credit</b><br/> <b>Losses</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b><br/> <b>March 31,</b> </b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 62%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Allowance - beginning of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">733</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">519</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Adjustment for expected credit losses</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">(6</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">(51</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Amounts written off against the allowance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(1</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(23</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Allowance - end of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">726</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">445</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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="margin-right: 15%; margin-left: 15%; width: 70%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 62%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Accounts receivable–trade</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">60,868</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">55,850</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Less allowance for credit losses</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(726</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(733</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Receivables, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">60,142</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">55,117</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 60868000 55850000 726000 733000 60142000 55117000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 15%; margin-left: 15%; width: 70%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Allowance for Credit</b><br/> <b>Losses</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b><br/> <b>March 31,</b> </b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 62%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Allowance - beginning of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">733</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">519</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Adjustment for expected credit losses</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">(6</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">(51</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Amounts written off against the allowance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(1</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(23</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Allowance - end of period</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">726</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">445</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 733000 519000 -6000 -51000 1000 23000 726000 445000 <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>Fair Value of Financial Instruments</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 0pt 0pt 28pt;">Financial instruments recorded at fair value in the consolidated balance sheets, or disclosed at fair value in the footnotes, are categorized based upon the level of judgment associated with the inputs used to measure their fair value. Hierarchical levels defined by ASC <em style="font: inherit;">820,</em> <i>Fair Value Measurements and Disclosures</i>, and directly related to the amount of subjectivity associated with inputs to fair valuation of these assets and liabilities, are as follows:</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 0pt 0pt 46pt;"><i>Level <em style="font: inherit;">1</em></i></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 46pt;">Valued based on unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date. An active market for the asset or liability is a market in which transactions for the asset or liability occur with sufficient frequency and volume to provide pricing information on an ongoing basis.</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 0pt 0pt 46pt;"><i>Level <em style="font: inherit;">2</em></i></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 46pt;">Valued based on either directly or indirectly observable prices for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument’s anticipated life.</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 0pt 0pt 46pt;"><i>Level <em style="font: inherit;">3</em></i></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 46pt;">Valued based on management’s best estimate of what market participants would use in pricing the asset or liability at the measurement date. Consideration is given to the risk inherent in the valuation technique and the risk inherent in the inputs to the model.</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 0pt 0pt 27pt;">The following table presents the fair value and hierarchy levels, for financial assets 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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b><br/> <b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>December 31, 2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;"><span style="text-decoration: underline; ">Level 3</span></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Purchase price contingent consideration (Note 2):</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Accrued contingent consideration (earn-out)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">17,421</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">14,568</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Present value of non-competition payments</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,903</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">10,043</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 27pt;">In connection with the acquisitions of Contech Medical and DAS Medical in <em style="font: inherit;">2021,</em> the Company is required to make contingent payments, subject to the entities achieving certain financial performance thresholds. The contingent consideration payments for the <em style="font: inherit;">2021</em> acquisitions combined are up to $25 million, of which $20 million remains to be potentially paid as of <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;"> December 31, 2022. </em>The fair value of the liabilities for the contingent consideration payments recognized upon the acquisition as part of the purchase accounting opening balance sheets totaled approximately $9.7 million and was estimated by discounting to present value the probability-weighted contingent payments expected to be made. Assumptions used in this calculation were managements financial forecasts, discount rate and various probability factors. The ultimate settlement of contingent consideration could deviate from current estimates based on the actual results of these financial measures. This liability is considered to be a Level <em style="font: inherit;">3</em> financial liability that is re-measured each reporting period. The change in fair value of contingent consideration for the acquisition is included in change in fair value of contingent consideration in the condensed consolidated statements of income and comprehensive income.</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 0pt 0pt 27pt;">Also in connection with the DAS Medical acquisition, the Company has entered into Non-Competition Agreements with the beneficiaries and the Company has agreed to pay additional consideration to the parties to the Non-Competition Agreements, including an aggregate of $10.0 million in payments over the <span style="-sec-ix-hidden:c97863987">ten</span> years following the closing of the DAS Medical acquisition for the 10-year noncompetition covenants of certain key owners. The present value of the Non-Competition Agreements totaled approximately $7.9 million. This liability is considered to be a Level <em style="font: inherit;">3</em> financial liability that is re-measured each reporting period. The change in fair value of contingent consideration for the acquisition is included in change in fair value of contingent consideration in the condensed consolidated statements of income and comprehensive income.</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 0pt 0pt 27pt;">The Company has financial instruments, such as accounts receivable, accounts payable, and accrued expenses, that are stated at carrying amounts that approximate fair value because of the short maturity of those instruments. The carrying amount of the Company’s long-term debt approximates fair value as the interest rate on the debt approximates the estimated borrowing rate currently available to the Company.</p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b><br/> <b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>December 31, 2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;"><span style="text-decoration: underline; ">Level 3</span></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Purchase price contingent consideration (Note 2):</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Accrued contingent consideration (earn-out)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">17,421</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">14,568</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Present value of non-competition payments</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,903</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">10,043</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> </tbody></table> 17421000 14568000 -7903000 -10043000 25000000 20000000 9700000 10000000.0 P10Y 7900000 <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>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 0pt 0pt 27pt;">Share-based compensation is measured at the grant date based on the fair value of the award and is recognized as an expense over the requisite service period (generally the vesting period of the equity grant).</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 0pt 0pt 27pt;">The Company issues share-based awards through several plans that are described in detail in the notes to the consolidated financial statements for the year ended <em style="font: inherit;"> December 31, 2022. </em>The compensation cost charged against income for those plans is included in selling, general &amp; administrative expenses as follows (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="margin-right: 10%; margin-left: 10%; width: 80%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 62%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;"><span style="text-decoration: underline; "><b>Share-based compensation related to:</b></span></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Common stock grants</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">100</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">100</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Stock option grants</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">94</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">53</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Restricted Stock Unit Awards ("RSUs")</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">862</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">539</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total share-based compensation</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">1,056</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">692</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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 0pt 0pt 28pt;">The total income tax benefit recognized in the condensed consolidated statements of income and comprehensive income for share-based compensa‐tion arrangements was approximately $839 thousand and $381 thousand for the <em style="font: inherit;">three</em>-month periods ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022,</em> respectively.</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;text-indent:27pt;"><i>Common stock grants</i></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 0pt 0pt 27pt;">The compensation expense for common stock granted during the <em style="font: inherit;">three</em>-month period ended <em style="font: inherit;"> March 31, 2023, </em>was determined based on the market price of the shares on the date of grant.</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 0pt 0pt 27pt;"><i>Stock Option grants</i></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 0pt 0pt 27pt;">The following is a summary of stock option activity under all plans for the <em style="font: inherit;">three</em>-month period ended <em style="font: inherit;"> March 31, 2023:</em></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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Shares Under Options</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Weighted Average </b></b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Exercise Price</b> </b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>(per share)</b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Weighted Average </b></b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Remaining Contractual Life</b> </b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>(in years)</b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Aggregate </b></b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Intrinsic Value</b> </b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>(in thousands)</b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 44%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at December 31, 2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">92,075</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">39.98</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Granted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,935</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">111.54</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Exercised</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(3,780</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">28.94</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at March 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">96,230</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">46.31</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5.68</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">8,038</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Exercisable at March 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">78,419</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">35.81</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5.31</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">7,374</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Vested and expected to vest at March 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">96,230</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">46.31</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5.68</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,038</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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 0pt 0pt 27pt;">During the <em style="font: inherit;">three</em>-month periods ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022,</em> the total intrinsic value of all options exercised was approximately $371 thousand and $0, respectively, and the total amount of consideration received by the Company from the exercised options was approximately $109 thousand and $0, respectively. At its discretion, the Company allows option holders to surrender previously owned common stock in lieu of paying the exercise price and withholding taxes. During the <em style="font: inherit;">three</em>-month period ended <em style="font: inherit;"> March 31, 2023, </em>861 shares were surrendered at an average market price of $127.05. Zero shares were surrendered during the same period in <em style="font: inherit;">2022.</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 0pt 0pt 27pt;"><i>Restricted Stock Unit awards</i></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 0pt 0pt 27pt;">The following table summarizes information about RSU activity during the <em style="font: inherit;">three</em>-month period ended <em style="font: inherit;"> March 31, 2023:</em></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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Restricted Stock Units</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Weighted Average</b><br/> <b>Grant Date</b><br/> <b>Fair Value</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at December 31, 2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">102,048</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">56.02</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Awarded</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">44,154</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">111.54</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Shares vested</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">(48,244</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">53.39</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Shares forfeited</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(99</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">97.61</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at March 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">97,859</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">67.83</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 27pt;">At the Company’s discretion, upon vesting, RSU holders are given the option to net-share settle to cover the required minimum withholding tax and the remaining amount is converted into the equivalent number of common shares and issued to the RSU holder. During the <em style="font: inherit;">three</em>-month periods ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022,</em> 20,457 and 19,376 shares were surrendered at an average market price of $117.95 and $67.02, respectively.</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 0pt 0pt 27pt;">As of <em style="font: inherit;"> March 31, 2023, </em>the Company had approximately $8.0 million of unrecognized compensation expense that is expected to be recognized over a period of 3 years.</p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 10%; margin-left: 10%; width: 80%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 62%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;"><span style="text-decoration: underline; "><b>Share-based compensation related to:</b></span></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Common stock grants</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">100</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">100</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Stock option grants</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">94</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">53</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Restricted Stock Unit Awards ("RSUs")</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">862</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">539</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total share-based compensation</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">1,056</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">692</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 100000 100000 94000 53000 862000 539000 1056000 692000 839000 381000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Shares Under Options</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Weighted Average </b></b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Exercise Price</b> </b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>(per share)</b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Weighted Average </b></b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Remaining Contractual Life</b> </b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>(in years)</b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Aggregate </b></b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Intrinsic Value</b> </b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>(in thousands)</b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 44%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at December 31, 2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">92,075</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">39.98</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Granted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,935</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">111.54</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Exercised</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">(3,780</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">28.94</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at March 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">96,230</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">46.31</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5.68</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">8,038</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Exercisable at March 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">78,419</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">35.81</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5.31</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">7,374</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Vested and expected to vest at March 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">96,230</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">46.31</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5.68</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,038</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 92075 39.98 7935 111.54 3780 28.94 96230 46.31 P5Y8M4D 8038000 78419 35.81 P5Y3M21D 7374000 96230 46.31 P5Y8M4D 8038000 371000 0 109000 0 861 127.05 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Restricted Stock Units</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Weighted Average</b><br/> <b>Grant Date</b><br/> <b>Fair Value</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at December 31, 2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">102,048</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">56.02</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Awarded</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">44,154</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">111.54</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Shares vested</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">(48,244</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">53.39</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Shares forfeited</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(99</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">97.61</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at March 31, 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">97,859</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">67.83</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> </tbody></table> 102048 56.02 44154 111.54 48244 53.39 99 97.61 97859 67.83 20457 19376 117.95 67.02 8000000.0 P3Y <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>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 0pt 0pt 27pt;">Inventories are stated at the lower of cost (determined using the <em style="font: inherit;">first</em>-in, <em style="font: inherit;">first</em>-out method) or net realizable value, and consist of the following at the stated dates (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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Raw materials</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">41,106</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">42,475</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Work in process</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">6,113</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,183</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Finished goods</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">9,430</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">6,878</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total inventory</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">56,649</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">53,536</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Raw materials</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">41,106</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">42,475</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Work in process</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">6,113</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,183</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Finished goods</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">9,430</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">6,878</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total inventory</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">56,649</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">53,536</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 41106000 42475000 6113000 4183000 9430000 6878000 56649000 53536000 <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>Property, Plant and Equipment</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 0pt 0pt 28pt;">Property, plant, and equipment 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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Land and improvements</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,832</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,811</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Buildings and improvements</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">34,525</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">34,446</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Leasehold improvements</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,182</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">5,503</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Machinery &amp; equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">52,966</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">52,233</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Furniture, fixtures, computers &amp; software</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">6,416</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">6,401</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Construction in progress</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">7,377</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">7,272</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Property, plant and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">113,298</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">110,666</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Accumulated depreciation and amortization</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(54,271</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(52,594</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Net property, plant and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">59,027</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">58,072</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Land and improvements</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,832</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,811</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Buildings and improvements</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">34,525</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">34,446</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Leasehold improvements</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,182</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">5,503</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Machinery &amp; equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">52,966</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">52,233</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Furniture, fixtures, computers &amp; software</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">6,416</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">6,401</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Construction in progress</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">7,377</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid rgb(0, 0, 0);">7,272</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Property, plant and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">113,298</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">110,666</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Accumulated depreciation and amortization</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(54,271</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(52,594</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Net property, plant and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">59,027</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">58,072</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 4832000 4811000 34525000 34446000 7182000 5503000 52966000 52233000 6416000 6401000 7377000 7272000 113298000 110666000 54271000 52594000 59027000 58072000 <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>Leases</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 0pt 0pt 27pt;">The Company has operating and finance leases for offices, manufacturing plants, vehicles and certain office and manufacturing equipment. Leases with an initial term of <em style="font: inherit;">12</em> months or less are <em style="font: inherit;">not</em> recorded on the balance sheet. The Company accounts for each separate lease component of a contract and its associated non-lease components as a single lease component, thus causing all fixed payments to be capitalized. Variable lease payment amounts that cannot be determined at the commencement of the lease such as increases in lease payments based on changes in index rates or usage, are <em style="font: inherit;">not</em> included in the right of use (“ROU”) assets or lease liabilities. These are expensed as incurred and recorded as variable lease expense. The Company determines if an arrangement is a lease at the inception of a contract. Operating and finance lease ROU assets and operating and finance lease liabilities are stated separately in the condensed consolidated balance sheet. </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 0pt 0pt 27pt;">ROU assets represent the Company's right to use an underlying asset during the lease term and lease liabilities represent the Company's obligation to make lease payments pursuant to the lease.  ROU assets and lease liabilities are recognized at commencement date based on the net present value of fixed lease payments over the lease term.  The Company's assumed lease term includes options to extend or terminate the lease when it is reasonably certain that it will exercise that option.  ROU assets are also adjusted for any deferred or accrued rent. As the Company's leases do <em style="font: inherit;">not</em> typically provide an implicit rate, the Company uses its incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">ROU assets and lease liabilities consist of the following (in thousands):</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;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 2.5%; margin-left: 2.5%; width: 95%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Operating lease ROU assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">14,318</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">12,942</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Finance lease ROU assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">196</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">211</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;"><b>Total ROU assets</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">14,514</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">13,153</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Operating lease liabilities - current</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">2,879</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">2,458</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Finance lease liabilities - current</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">59</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">59</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;"><b>Total lease liabilities - current</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">2,938</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">2,517</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Operating lease liabilities - long-term</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">11,732</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">10,695</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Finance lease liabilities - long-term</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">141</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">156</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;"><b>Total lease liabilities - long-term</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">11,873</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">10,851</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 2.5%; margin-left: 2.5%; width: 95%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>($ in thousands)</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Lease Cost:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Finance lease cost:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Amortization of right of use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">15</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">15</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Interest on lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">1</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">1</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">711</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">652</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Variable lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">83</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">70</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Short-term lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">7</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">17</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">817</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">755</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 2.5%; margin-left: 2.5%; width: 95%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Cash paid for amounts included in measurement of lease liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating cash flows from operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">683</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">540</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Financing cash flows from finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">16</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">16</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Weighted-average remaining lease term (years):</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Finance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">3.29</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4.29</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">5.06</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">3.62</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Weighted-average discount rate:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Finance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2.10</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2.10</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">3.42</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2.53</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 27pt;">The aggregate future lease payments for leases as of <em style="font: inherit;"> March 31, 2023 </em>are as follows (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="margin-right: 10%; margin-left: 10%; width: 80%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Finance</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Operating</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 62%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Remainder of 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">47</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,192</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">63</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,950</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2025</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">63</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,779</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2026</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">29</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,402</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2027</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">6</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,031</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Thereafter</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">3,774</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total lease payments</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">208</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">16,128</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Less: Interest</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(8</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(1,517</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Present value of lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">200</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">14,611</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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="margin-right: 2.5%; margin-left: 2.5%; width: 95%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Operating lease ROU assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">14,318</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">12,942</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Finance lease ROU assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">196</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">211</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;"><b>Total ROU assets</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">14,514</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">13,153</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Operating lease liabilities - current</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">2,879</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">2,458</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Finance lease liabilities - current</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">59</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">59</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;"><b>Total lease liabilities - current</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">2,938</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">2,517</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Operating lease liabilities - long-term</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">11,732</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">10,695</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Finance lease liabilities - long-term</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">141</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">156</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;"><b>Total lease liabilities - long-term</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">11,873</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">10,851</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 14318000 12942000 196000 211000 14514000 13153000 2879000 2458000 59000 59000 2938000 2517000 11732000 10695000 141000 156000 11873000 10851000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 2.5%; margin-left: 2.5%; width: 95%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>($ in thousands)</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Lease Cost:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Finance lease cost:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Amortization of right of use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">15</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">15</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 18pt;">Interest on lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">1</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">1</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">711</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">652</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Variable lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">83</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">70</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Short-term lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">7</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">17</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">817</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">755</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 2.5%; margin-left: 2.5%; width: 95%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Cash paid for amounts included in measurement of lease liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating cash flows from operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">683</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">540</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Financing cash flows from finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">16</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">16</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Weighted-average remaining lease term (years):</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Finance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">3.29</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4.29</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">5.06</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">3.62</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Weighted-average discount rate:</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Finance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2.10</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2.10</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">3.42</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2.53</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td></tr> </tbody></table> 15000 15000 1000 1000 711000 652000 83000 70000 7000 17000 817000 755000 683000 540000 16000 16000 P3Y3M14D P4Y3M14D P5Y21D P3Y7M13D 0.0210 0.0210 0.0342 0.0253 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 10%; margin-left: 10%; width: 80%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Finance</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Operating</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 62%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Remainder of 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">47</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,192</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">63</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,950</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2025</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">63</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,779</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2026</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">29</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,402</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2027</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">6</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">2,031</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Thereafter</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">3,774</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total lease payments</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">208</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">16,128</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Less: Interest</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(8</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(1,517</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Present value of lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">200</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">14,611</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 47000 2192000 63000 2950000 63000 2779000 29000 2402000 6000 2031000 0 3774000 208000 16128000 8000 1517000 200000 14611000 <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>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 0pt 0pt 27pt;">Basic income per share is based on the weighted average number of shares of common stock outstanding. Diluted income per share is based upon the weighted average number of common shares outstanding and dilutive common stock equivalent shares outstanding during each period.</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 0pt 0pt 27pt;">The weighted average number of shares used to compute basic and diluted net income per share consisted 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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,592</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,544</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Weighted average common equivalent shares due to restricted stock, stock options and RSUs</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">89</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">86</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">7,681</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">7,630</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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 0pt 0pt 27pt;">The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, when the average market price of the common stock is lower than the exercise price of the related options during the period. These outstanding stock awards are <em style="font: inherit;">not</em> included in the computation of diluted income per share because the effect would be antidilutive. For both the <em style="font: inherit;">three</em>-month periods ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022,</em> there were no stock awards excluded from the computation of diluted earnings per share for this reason.</p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,592</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,544</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Weighted average common equivalent shares due to restricted stock, stock options and RSUs</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">89</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">86</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">7,681</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">7,630</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 7592000 7544000 89000 86000 7681000 7630000 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 Reporting</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 0pt 0pt 27pt;">The Company consists of a <span style="-sec-ix-hidden:c97864197">single</span> operating and reportable segment.</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 0pt 0pt 27pt;"><span style="background-color:#ffffff;">Revenues shipped to customers outside of the United States comprised approximately 16.6% and 12.0% of the Company’s consolidated revenues for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022,</em> respectively.</span></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 27pt;"> </p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:justify;margin:0pt 0pt 0pt 27pt;"><span style="-sec-ix-hidden:c97864202"><span style="-sec-ix-hidden:c97864203">One</span></span> customer comprised approximately 22% and 15% of the Company’s consolidated revenues for the <em style="font: inherit;">three</em>-month periods ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022,</em> respectively. <span style="-sec-ix-hidden:c97864216"><span style="-sec-ix-hidden:c97864217">One</span></span> customer represented approximately 17% and 10% of gross accounts receivable at <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;"> December 31, 2022, </em>respectively. Approximately 18% of all long-lived assets are located outside of the United States.</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 0pt 0pt 27pt;">The Company’s products are primarily sold to customers within the Medical, Automotive, Aerospace &amp; Defense, and Industrial/Other markets. Net sales by market for the <em style="font: inherit;">three</em>-month periods ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022</em> are as follows (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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="14" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 44%; border-bottom: 1px solid black;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: center;"><b>Market</b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Net Sales</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>%</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Net Sales</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>%</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Medical</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">83,804</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">85.7</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">52,554</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">73.8</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Automotive</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,347</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">4.4</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,351</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">6.1</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Aerospace &amp; Defense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,217</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">4.3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">3,755</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">5.3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Industrial / Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">5,385</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;">5.6</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">10,582</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;">14.8</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;">%</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Net Sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">97,753</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100.0</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">71,242</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100.0</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">%</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 0pt 0pt 27pt;">Certain amounts for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March 31, 2022 </em>were reclassified between markets to conform to the current year presentation.</p> 0.166 0.120 0.22 0.15 0.17 0.10 0.18 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="14" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Three Months Ended March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 44%; border-bottom: 1px solid black;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: center;"><b>Market</b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Net Sales</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>%</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Net Sales</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>%</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Medical</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">83,804</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">85.7</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">52,554</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">73.8</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Automotive</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,347</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">4.4</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,351</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">6.1</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Aerospace &amp; Defense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,217</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">4.3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">3,755</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">5.3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">%</td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Industrial / Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">5,385</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;">5.6</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">10,582</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;">14.8</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;">%</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Net Sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">97,753</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100.0</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">71,242</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 11%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100.0</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">%</td></tr> </tbody></table> 83804000 0.857 52554000 0.738 4347000 0.044 4351000 0.061 4217000 0.043 3755000 0.053 5385000 0.056 10582000 0.148 97753000 1.000 71242000 1.000 <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>Goodwill and Other Intangible Assets</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 0pt 0pt 27pt;">The changes in the carrying amount of goodwill for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March 31, 2023 </em>are as follows (in thousands):</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 15%; margin-left: 15%; width: 70%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr 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: 83%;"> </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><b>Goodwill</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="width: 83%; 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: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 14%; 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></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); 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: 83%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">December 31, 2022</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: 14%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: right;">113,028</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; background-color: rgb(255, 255, 255); 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: 83%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Foreign currency translation</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 black;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">131</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); 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: 83%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">March 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: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">113,159</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); 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 0pt 0pt 27pt;">The carrying values of the Company’s definite lived intangible assets as of <em style="font: inherit;"> March 31, 2023 </em>are as follows (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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Intelletual Property / Tradename &amp; Brand</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Non-</b><br/> <b>Compete</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Customer</b><br/> <b>List</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Total</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 44%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Weighted-average amortization period</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">11.9 years</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">9.3 years</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">20 years</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Gross amount</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,103</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">5,502</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">65,228</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">77,833</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Accumulated amortization</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(879</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(1,125</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(8,483</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(10,487</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Net balance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">6,224</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">4,377</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">56,745</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">67,346</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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 0pt 0pt 27pt;">Amortization expense related to intangible assets was approximately $1.1 million and $1.0 million for the <em style="font: inherit;">three</em>-month periods ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022</em> . The estimated remaining amortization expense as of <em style="font: inherit;"> March 31, 2023 </em>is as follows (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="margin-right: 15%; margin-left: 15%; width: 70%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 81%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Remainder of 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">3,308</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,401</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2025</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,401</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2026</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,399</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2027</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,397</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2028</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,350</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Thereafter</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">42,090</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">67,346</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <table cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 15%; margin-left: 15%; width: 70%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr 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: 83%;"> </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><b>Goodwill</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td></tr> <tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="width: 83%; 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: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 14%; 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></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); 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: 83%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">December 31, 2022</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: 14%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: right;">113,028</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; background-color: rgb(255, 255, 255); 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: 83%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Foreign currency translation</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 black;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">131</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); 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: 83%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">March 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: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">113,159</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); margin-left: 0pt;"> </td></tr> </tbody></table> 113028000 131000 113159000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Intelletual Property / Tradename &amp; Brand</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Non-</b><br/> <b>Compete</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Customer</b><br/> <b>List</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Total</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 44%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Weighted-average amortization period</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">11.9 years</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">9.3 years</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;">20 years</p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Gross amount</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">7,103</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">5,502</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">65,228</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">77,833</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Accumulated amortization</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(879</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(1,125</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(8,483</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(10,487</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Net balance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">6,224</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">4,377</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">56,745</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 11%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">67,346</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 7103000 5502000 65228000 77833000 879000 1125000 8483000 10487000 6224000 4377000 56745000 67346000 1100000 1000000.0 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 15%; margin-left: 15%; width: 70%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 81%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Remainder of 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">3,308</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,401</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2025</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,401</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2026</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,399</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2027</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,397</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2028</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,350</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Thereafter</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">42,090</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">67,346</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 3308000 4401000 4401000 4399000 4397000 4350000 42090000 67346000 <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;">14</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>Other Long-Term Liabilities</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;text-indent:27pt;">Other long-term liabilities 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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Accrued contingent consideration (earn-out)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">12,421</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">9,568</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Present value of non-competition payments</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">6,097</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">8,155</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">965</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">497</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">19,483</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">18,220</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td></tr> <tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2022</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 66%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Accrued contingent consideration (earn-out)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">12,421</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">9,568</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Present value of non-competition payments</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">6,097</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">8,155</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">965</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">497</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">19,483</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">18,220</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 12421000 9568000 6097000 8155000 965000 497000 19483000 18220000 <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;">15</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 0pt 0pt 28pt;">The determination of income tax expense in the accompanying unaudited condensed consolidated statements of income is based upon the estimated effective tax rate for the year, adjusted for the impact of any discrete items which are accounted for in the period in which they occur. The Company recorded income tax expense of approximately 18.1% and 20.2% of income before income tax expense for the <em style="font: inherit;">three</em>-month periods ended <em style="font: inherit;"> March 31, 2023 </em>and <em style="font: inherit;">2022,</em> respectively.</p> 0.181 0.202 <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;">16</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>Indebtedness</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 0pt 0pt 27pt;">On <em style="font: inherit;"> December 22, 2021, </em>the Company, as the borrower, entered into a secured $130 million Second Amended and Restated Credit Agreement (the “Second Amended and Restated Credit Agreement”) with certain of the Company’s subsidiaries (the “Subsidiary Guarantors”) and Bank of America, N.A., in its capacity as the initial lender, Administrative Agent, Swingline Lender and L/C Issuer, and certain other lenders from time-to-time party thereto. The Second Amended and Restated Credit Agreement amends and restates the Company’s prior credit agreement, originally dated as of <em style="font: inherit;"> February 1, 2018.</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 0pt 0pt 27pt;">The credit facilities under the Second Amended and Restated Credit Agreement consist of a $40 million secured term loan to the Company and a secured revolving credit facility, under which the Company <em style="font: inherit;"> may </em>borrow up to $90 million. The Second Amended and Restated Credit Agreement matures on <em style="font: inherit;"> December 21, 2026. </em>The secured term loam requires quarterly principal payments of $1,000,000 commencing on <em style="font: inherit;"> March 31, 2022. </em>The proceeds of the Second Amended and Restated Credit Agreement <em style="font: inherit;"> may </em>be used for general corporate purposes, including funding certain permitted acquisitions. The Company’s obligations under the Second Amended and Restated Credit Agreement are guaranteed by the Subsidiary Guarantors.</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 0pt 0pt 27pt;">The Second Amended and Restated Credit Agreement calls for interest determined by the Bloomberg Short-Term Bank Yield Index rate (“BSBY”) plus a margin that ranges from 1.25% to 2.0% or, at the discretion of the Company, the bank’s prime rate less a margin that ranges from <span style="-sec-ix-hidden:c97864321">.25%</span> to zero. In both cases the applicable margin is dependent upon Company performance. Under the Second Amended and Restated Credit Agreement, the Company is subject to a minimum fixed-charge coverage financial covenant as well as a maximum total funded debt to EBITDA financial covenant. The Second Amended and Restated Credit Agreement contains other covenants customary for transactions of this type, including restrictions on certain payments, permitted indebtedness, and permitted investments. At <em style="font: inherit;"> March 31, 2023, </em>the Company had approximately $60 million in borrowings outstanding under the Second Amended and Restated Credit Agreement, which were used as partial consideration for the DAS Medical and Advant acquisitions, and also had approximately $0.7 million in standby letters of credit outstanding, drawable as a financial guarantee on worker’s compensation insurance policies. At <em style="font: inherit;"> March 31, 2023, </em>the applicable interest rate was approximately 6.1% and the Company was in compliance with all covenants under the Second Amended and Restated Credit Agreement.</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 0pt 0pt 28pt;">Long-term debt consists 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="margin-right: 15%; margin-left: 15%; width: 70%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31, </b></b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 81%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Revolving credit facility</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">25,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Term loan</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">35,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total long-term debt</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">60,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Current portion</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(4,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Long-term debt, excluding current portion</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">56,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); 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 0pt 0pt 27pt;">Future maturities of long-term debt at <em style="font: inherit;"> March 31, 2023 </em>are as follows (<i>in thousands</i>):</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="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Term Loan</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Revolving credit facility</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Total</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 49%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Remainder of 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">3,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">3,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2025</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2026</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">24,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">25,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">49,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">35,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">25,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">60,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> 130000000 40000000 90000000 1000000 0.0125 0.020 60000000 700000 0.061 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 15%; margin-left: 15%; width: 70%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>March 31, </b></b></p> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>2023</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 81%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Revolving credit facility</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">25,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Term loan</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">35,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total long-term debt</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">60,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Current portion</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); text-align: right;">(4,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Long-term debt, excluding current portion</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 16%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">56,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 25000000 35000000 60000000 4000000 56000000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="margin-right: 5%; margin-left: 5%; width: 90%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Term Loan</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Revolving credit facility</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><b>Total</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 49%;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Remainder of 2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">3,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">3,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2025</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right;">4,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">2026</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">24,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">25,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; text-align: right; border-bottom: 1px solid black;">49,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid black;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">35,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">25,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 14%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0); text-align: right;">60,000</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 3000000 0 3000000 4000000 0 4000000 4000000 0 4000000 24000000 25000000 49000000 35000000 25000000 60000000 Certain amounts for the three and nine months ended September 30, 2021, were reclassified between markets to conform to the current period presentation. EXCEL 80 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( /9)JE8'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 " #V2:I6V"/E1>\ K @ $0 &1O8U!R;W!S+V-O&ULS9+! M3L,P#(9?!>7>NFD9AZC+96BG(2$Q"<0M2KPMHDFCQ*C=V].&K1."!^ 8^\_G MSY);'83N(S['/F DB^EN=)U/0HL8C!*4_ MU!&AKJH'<$C**%(P XNP$)ELC18ZHJ(^7O!&+_CP&;L,,QJP0X>>$O"2 Y/S MQ' >NQ9N@!E&&%WZ+J!9B+GZ)S9W@%V28[)+:AB&=QOF:RKNBFJ5<&K/6\$7XGZ_GUV_>%W$W:]L0?[ MCXVO@K*%7W&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" #V2:I6UVFXJ;X% #.'@ & 'AL+W=O!:>B"+C!.7X M=V?:*I]IA(?'>_?;'!Y@GG@J/!G]&09Z==FZ:)% +'@6Z<]R\T'L@'K&SY=1 MFO\GF^+>;K=%_"S5,MZ)H01QF!2?_&57$0<"1FL$;"=@KP34K1&X.X&;@Q8E MR[&NN>;CD9(;HLS=X&8.\KK)U4 3)J89YUK!MR'H]/A:^AFTBB:3)" WB0[U MEDR3HGN8:FZ3=,652$<=#4\SFHZ_<[XJG%F-LTON9*)7*;@&(OA>WX%2ED5E M^Z)>,=3PCJNWQ*5O"'.8:RF/=TR^)0ZSJ;\KC5M6G)O;N<_2-??%90M>R52H9]$:__P3[3N_V7!_D-EW]-V2OHNY MCW<]Q8,*4#R".@C$"_E=;&W0N),#?T/:I;V^C1'5-F3LE8R]4Q@_BV68 B4T M]3V/A8T0]_ER.R./-]Z'^X>/#^^G-W,RO?=LK*A+0]9^R=I'RSB!KASDW?DV MXDL;(ZY?\"BU58V'RAI"#4JH 5HH+U,J1PI3'SKI5\&5&8P(#)369L3=VFW* MVBZU0:+"AI 7)>0%6JQR'-I1SH0*94!NX;)UT,;=/EGY4$U#OF')-_Q??'DK MUM+A7G43!ZIJR$>=:@9V3B-\W*ZM_?*(GCKM3S8J7-84ZR!8T-.P/F5<::$B M,Y2NI=)61-Q+J\PZNN"RIHBL0F2G(>Y>.FQP.6)5AIO:=(,;-&6MX@Y%\\1! M+X6I, WSN(.T)VY6.UW@NJ:05:JA)\6:VS 2Y#Z+GX2RPAU+-!2FBG[WP@IX MCD1#JTA#3\HTT\27"MHN3ZUOR%Q#IR52$4]F$.@@U\G WHEQ]^L;*_(Y@@VM MD@W%H\D.^9&_D&D '3A6H4>BN>4'>\D M", ]?;,_(/G2Y"&QMRMN21V'?.#P3L!%6&A:H<^1@6@5@BB>6UY#>^8,.O2C MW"168-SN7FR>,K6M&=T\7-T4MDI$%(\QKV'+UW>FY'.8^/8FQCWO)E;0;UZ SF6J(@'^%Z]H1ZHBC0X<]ZTN+ZYJ25F&)X0$G[Z\3)7@]&&XP M'%BG&US5%*L*2 Q/-1]EOB19R02;3X^8N#W69LRQ-]LY0A&K0A'#<\QCJ&%4 ME M"V2]/OY*Y\#,%+6F%Q)T\&<:2#T!6&R)/-M M_"0C*Q]N\.5V]FCE.D<>8E4>8GABV;<8N7GQ5SQ9BMK?>(X8W4_FUQ/K,@P7 M-B6LX@\[*?[L?PLI(GO>E#!KV!?11QR_6G\-]G!54\XJ]K"38L\T@:5FL3=@ MEF)\#V[EQ!WK.,^1=%B5=-A)2<RSN4[O27?@X-> M002(USRQ-NH1PUI07-<4M(HW+IY.]@VY$M"0&!YN4X]WCICC5C''Q1/*?HP] MF,,AE>?[9N0ATQ!:$S-[6HE_4(#9U4/AULO=S [N\WC0IUTZ'(PZSX>(G8,= M0]/[\HW4E/AF_5]L'I97R\W:2;Y%V:EN+W9Z[[CIO"F)Q *DSML!/%T5FZ?% MB9;K?/_Q26HMX_QP)7@@E+D!OE](J?BDF:_?D=9T1LI.L7Z MH8UD'\_/'7GW/"1/[X7\6N\X5^A[653UV6JGU/[U9E.G.UZR^I78\PJ^N1&R M9 I>Y>VFWDO.LG9066R(YX6;DN75:GO:?G8IMZ>B445>\4N)ZJ8LF7QXQPMQ M?[;"J\\GRDE=U+BHD^E0KH7XJE_>9VN#X^='[;VWP$,PUJ_FY*/[),[4[6\4KE/$;UA3JD[C_@W"J5-K439#08$95X=_K+O72)& ["_,(!T \A3!]!N &T#/2!KP[I@BFU/ MI;A'4EN#-_W0YJ8=#='DE9[&*R7AVQS&J>VYJ#*8%)XA>*I%D6=,PA*.Z[1K^>-E+Q2Z)++7&3H2\6:+ ?#E^@$?;FZ0+\^?XF>H[Q"GW>BJ5F5 MU:<;!?#TCVS2#LJ[ Q2R .4CDZ\0Q6M$/$(MP\_=PR]XV@\GT^$;2$J?&=)G MAK3^Z%)FNI!974,*7MOB.3CP[0YT ;ZN]RSE9RNHL)K+.[[:OGB&0^^-+;J? MY&P2*^UCI2[OVW-6[Q#,&DKU __6Y'>L@."MLWAP%;:N=)>XVX:!!Q-V-X[& M-/+] /=&$Y1^C])WHOS$4P[ K@M>KU'%E0W6>A$=BGYGN49XM_WNM;K M=JJ%VG$)+6:\RFVX0P,1#TOM_$P !/Z\C&Q6_F(N!S+";C;Z MJ^V?CB2:)$.#T !GL0J7^CT>J B[N>C0.QW@3)ZAB1?%\[YNLXMBG"PT(3PP M$@Z?I*Z*G%WG1:Z -*T2"SN9[4 M0YM5L"14R4!@Q$U@[T>-U;48B86&_,";@S2M0WO6_U"]8U(?%S5J)V3^ M+\_>H$H\?IK7-2A%:[I,>IUW+J?)-+#1(>:14TQ8R-!2%Z(BGBNL:!WZ9!V0 MI"T!>,-DG43>--;#N5FC@!))7*&7['+J?%:9ES^M'T7QK;#,+O6AIF0S"@;J%PR>N&'P$>QPF*\BV MO<>9BH!@0FDP!VFQ\P@(M 64@WB@;O$ &[&F;(KV-J8[J@7=(/E.7Z'= 3N+ MV@[MVFH@9Q29(UB-:^[N9E MTJY_P^9I2]Z4%R=!;(1[Q&H:[J!!J%N#'/B]7N02*V#+KM@/_7B^P;?9T2CP M@P70@RBA/RA*VNR/@_C%!3\Q+G:L!TE-BWMYG70BE1MH\[S@"V-H#O;X10CR_Z@K2_$-_^!U!+ P04 M " #V2:I6VG(D*M0" !@"0 & 'AL+W=OR,TI$\X\KL:6:A[+TG F8*F(+O. 3S5"P5]MPV2\IR$)I)012L9LXG_W8QM?%5P \& M6[W3)M;)LY0OMO,UG3F>!0(.B;$9*#XVL #.;2+$^-7D=-HEK7"W_9;]<^4= MO3Q3#0O)?[+49#-GXI 45K3DYD%NOT#C)[+Y$LEU]4VV3:SGD*341N:-& ER M)NHG?6WJL"/PPW<$02,(SA4,&\&P,EJ35;;NJ:'S6,DM438:L]E&59M*C6Z8 ML&_QT2B<9:@S\X44*;X32 FVM.0LI08[=Y13D0!YM(DUN5J42H$P9 F*R90\ M"5JF# .OR=62VID,#$LHU]?D(_E 7*(S'-:Q:Y#1KN0F#<]=S1.\P_.-J@$9 M^C_D6^*F K2>$GP3RO\T0Z5[U6? _K^N#T#86L@_"<#3.NR'SX\@CK$ M/A6Q!QRUP-%)X(7,<_QS^H_-$IVS67J"]M!'+?KH O2+=\KHJ)2!U[E5S@C< MXQ^W_./+^<_;*.,CI/$H#*)@>H#>%>?[01AVDT]:\LGEY'CB:D-%RL2Z#W_2 MA15,QX>5[XB+)OYH$G7C3UO\Z4G\[WA[T*7Z?6"@!WIZO VF4718\;ZH&MC= M.?_LW0,/D343FG!8HO)1NOZL$(\7D_P9/_@"U]OM'DP75S5=,WNF/Y:?Y9P M-^V\Y+QDE>*B0I*MKB=O\>62)*9!8_$?9X_JX!J94.Z%^&YN;O/K26"(6,$R M;5Q0^'M@2U84QA-P_-@YG73?- T/K_?>WS?!0S#W5+&E*+[Q7&^N)^D$Y6Q% MMX7^(AX_LEU D?&7B4(UO^AQ9QM,4+956I2[QD!0\JK]IT^[CCAH '[<#]'N8!GBU?H,K5G%)"W0:UK6;Q#-8<9RI24U:Q5B3[69:LY^C6VL$%;B M ;S#*@@P=L,G'7SBA7^;_=ARQ9M5-8/\._D2Z\O!@,VV@$'K)DL[LM0_&C>T M6C.SE*PHE^B!%EMF1F<&:P-T-RQ/YE+QG)D>%I4+/+6PSDEJ32;;*G"CSSOT MN1?]+S-63SZ CIXBZ->&"SD70VY'.8Q6$\TLGX0+VP ME_"VT@S41^_GUAFJF+,'=WX.OY_&\R&D;1229(21](S$WXMZP^0>$)VT77GJ MA"2..31DM&W.H[%,]W*$_7JT4_A[!AM#MLLVTO1IC^VD#>W,XW0>#8%MLSA( M1U8&W L5]BO5[>\QVDI$<#1<5AU6F(PFOMB1,Y9#ZTAJ1M-4NC M$27%O5[A5BK"7Z(AF./M'N[22>D5/E-D7*J:9NQZ E6$8O*!31:O_\!Q\,:U MR7HI;\=1]T*'_4IW0Q7/S Q$N2@**E4?O'L^MNZ2PW%Q0=)ABFRKX"(>V5'@ M7ONP7_S>\6)KMN+/P$U=N-8"8EMY<'N]PW/OB/K6%$S 2Q] -$"U87"5H'R[ M\@ J2*6A%@ Q<8\SKYP^>YR]D+?C4J/73>+7S7Z[0>2EOQT'W0DQ^71B.:P9QE8:69CBLQC6#](I+9MY\M/N8["@K+:IS M1A.O?C\[+2_D[3CV7LJ)7\K?P[:(KZ$^VDK)JNPG@IJN4D53=: U[/*=/6#7 MFK/YL/)P&(7I2$5'>GTG_H+4E:M13+NJ=&#:1N.8O2 3OR O'8/)B9A8(QH' M)+062]LL(@?3HZ6<'IR6E4RNFT-$!9VUK71[H-0][0XJWS;':%$W9W+W0FM1-I<;1J&.-0;P?B6$ MWM^8#W3'NHO_ 5!+ P04 " #V2:I6]DA;P;4& !O*@ & 'AL+W=O M=?7"P$CRU+6J))/WW*QL'8TE((55>@D7N/;H^5U?H7'MZ3ZKO=(TQ M P]%7M*SP9JQS8?1B*[6N$CH>[+!)?_/#:F*A/%A=3NBFPHG:>-4Y"/D.,&H M2+)R,)LVWYU7LRG9LCPK\7D%Z+8HDNKG)YR3^[,!'#Q^<9'=KEG]Q6@VW22W M^!*SJ\UYQ4>C/4J:%;BD&2E!A6_.!A_AAR7R:X?&XN\,W].#:U#?RC4AW^O! MY_1LX-01X1RO6 V1\(\[/,=Y7B/Q.'ZTH(/]G+7CX?4C>MS.(,QQS\UL$7'= 1AZ!U" 0' MZ!YQ"%N'L$G6CMTF-8N$);-I1>Y!55MSM/JBR6_CS3.2E?52O&05_V_&_=AL M3LJ4+RR< GY%29ZE">.#2\8_^(IC%) ;/B*K[VN2I[BBKT'T8YNQG^#-59EL MTXQ;OP5#<'6Y &]>O05TG528@JP$W]9D2Y,RI>_ J]YX.F(\\'KZT:H-\M,N M2'0TR*+@R[8) WS=,LHX3E;>@G^_X.(:5_\I(.=ZR(\I#YW70I*#\R1+ASS M>;+)&!]K0!=ZT O,>/%S^J*D*GE\5(<5&0+\.O\,/C)69==;EESG&##"0ZUX M3G2HL1[U&]^NZ+;ZN>/R'6B9U0 N#8"$4]9W&_$EN%^':+\.48/C'<'YE.1) MN<+@#4_$;@V]!0D#"[QZ#USX#B '0=7"V:'Z#6J][=[-0M_UIZ.[PZ6@G;K> M[#_03;+"9P.^FU-'![/??8.#\H5H"-L$BFV"QS(7K])E86IJOEV)WGV+W M22E^2EIW2$$OK4)291/7@S[L6RUD*WXW8R?LFT6RF74EU>8D%)?NM=@(E:%;"/P$1DM8CD2 MD5-5)$A="L&>JD!+U5_\<-ZL>$ Q8WES1*E/*!>75Z^IJ1X"*9XA$F*>:Z<_ MM2!L@D4VP6*9"C%YEJ;K93G<9SE\?I95F0U-:W$>RKF':#(1ZD*V$NO":!$; M8UF:8NEQ-MYS-M9R]I6M<=5L'Q5>UU+Q#O-3-Q]C%6%CTVW,C18+HT4D6[AC M82N*C2A+/4J/K,F>K(EQ@1TG9V)<31,C.;*%-_;' C_:($\M:6/42T-,/2:A MTPE(YSDG]R])M3_B(:7DG%\I'>/'TV=KT;MGU/5>H)849#/P@$!1!I(*3]AM%7(J#O&K*R<0) MCU5+)W/A+^M<-9TJH3M&(J%6E:Y5M,@J6JS@0ZZ6EU"[L).[\%EZ5YU>A>"5 MJL65;SEP0O&71V'&9_4G@5@MLMTP@.)I1A&8JEP4<[JA[_E'RJ53OO!EI"]4 M:-^QR*=5\6L5+;**%BO8D&KE)00P[!0PM">!H5%YSJ$L/:'C!V*EF&6PV20V MA[,TA=,GK=/"4"^&HP=9HEH9H^L1VNAKJA?4OM9R@+%Z'2-(XV@!.+B.;:)%5M/@Y:$#Y M4,I26/TUT;4/H+E_<%*#"II["E"6YT/D(R16D['W$)E-8G,\2V,\_>=\7;\ MZ?L%GRG=-N=BSM=J]_AQMU\92@G)^EBD4#_SR0_ZK#8+K*+%9C*6MB;LI[GK M%2!]K^!8FI6IE36YE%I9D ?"<62AL!%+PVP2FX-9ZH/I$W;P %S?&3BM@8MD M_2M19C19F$TBA8DW<47.C#A+ TZ?M$YC([W&UC=RD?&Q[AS)RE4B23:9A.Y$ MY$D;Z,GU;8Q\:0JKSVBGN)%><3^AG>LJN98U9AA 5Z3;JN:VBA9918L5?,AO M8[R$Z$:=Z$9ZT7VDG:M.KZQRI0:5PL;UPC 4ZTDV0Q"YXEL[D<)N"&$H;CT* M*[E!I9K3"[RQN&N/#MZDJU_%Y+S<9EQ#Y?B&.SKO0XY3[=YNW T8V30OUUT3 MQDC17*YQDN*J-N#_OR&$/0[J]_7V[YC._@=02P,$% @ ]DFJ5CEJ>U_K M!P #R0 !@ !X;"]W;W)K=28#(;--O=A\$^T!)M'WSABZ4V#X;3RQ5=L'NFOZ[N)-P-=UH*7K%:<5$CR>97@^OXXB8A9H&5 M^ ]G#VKO&AE39D)\,S>?BZM!9!"QDN7:J*#P9\-N6%D:38#C^U;I8/>=9N'^ M];/VGZWQ8,R,*G8CRO_R0B^O!N,!*MBMK+1 M .5KI46U70P(*EXW?^GCUA%["S#N68"W"_!K%Y#M NNY88/,FO6):CJ]E.(! M22,-VLR%]8U=#=;PVH3Q7DOXE,,Z/;T1=0%!806"*R5*7E --_<:_D"TM$)B MCFZH6J*?(>(*O?U:TW7!0>8,_8AXC?Z]%&M%ZT*]0V]^&),T^6">WO*RA"BI MRZ$&D.:KAOD6T,<&$.X!1-"MJ/52H9\ 6'&X?@C&[2S$SQ9^Q$&%MU2^1R1^ MAW"$"?IZ_PF]_?',@^OF]6JP7\T!/+(+ +%Z25\ C&_GUK=S*2H$!2JIYO6B MR7"N.5,7/CW3WZ%9\3H7%?.9V:Q-[5K3DS;3248FE\/-/GQ7*!F/QCNA UBC':Q1,##7 MQ?^A_)H:T ):5B[JG)<,U3N\YKFYRTT,5U)L.*0LFCV]/HBC4P;Q1,H.O)7N MO)4&@_B)@=*H#8M_7?&7RP&=& MYB",.S:X$NXHV340>B32I(^E'O,'8>9PWI8&1?O M]1NE�L4X$EIS->]O>>K?H3-9]3:3MT!FZ=@8,A^\)RQC=T5C(81* G>PW& MGCB,TVY"><62-.N)5TOT<9!%IY_K#62]D+PGEXC[M20:)5UT'K%LC'N:8MR2 M!1UX;EB).H9(N*6%^,P,5[GN5B;&6)%GTQZ>@&Z/)9&VA7*HY)#UO@EM-P MF--^%_7Y]S4M^9R#*XMGG^Z/#W;JV:O[/0+QF8-=6DM&W>G'(W2.)SW="K?< MAX-T8O<,SM3]=JTL9Y]YYV^O";'KZPQW"<$C=4YPWQR*6\["^*BM'P>"4*_9 M-> @%Q[+W*?2=NB%EA9QF!:OBX*;[+.[K,X$_LYF8W QQX^Q''6W2%ZQ0A) M>F+8TB9^B39%SEBQC2#L(^R0.^>/D(G]C(1=)L1=P*Y('U/BEBEQF"EW9;.M M%&_*>0%[*!2\W*4 KQB>9#T<@%L6Q>E1I3+G-87=^"M*)J$E M:QPFZ\-DH\4&? "48P]4-Z+<&'^8-7:?!=V=^RO&Y>DTBKK3D$<*C_?%#FUH MV1R'V?R./FW/%8]$[5*W ]DS!&3]D%M^QV%^OY.P#^0K6AIRWQV*EJ)>G&LF M*R#3F1^RR^0PE+B>?DGL\%RQ97P29GP?['I;.0R5C"IP^:SD"TO^WK(G'O:. MNX<'+P@=HF\9GH09_C#781Z!$97)G"N;)TJ+_!O0?#]R#[-'75+P"/5YO25U M$MZ(;O.[ 4GU&C9\3^B!Z^52E 6D.A@D)&2^TI+GYJB],65=["[WXE'6G10]4O$X'?=0!VD9 MFH09^J?YG.4V'N!XQA?U=C^;/T%&YFUH>)R_S.!2WM#7\MF#-U9EA].,L*1B^-=SI$-:0B9A0@Y: MP,Q&*HC=0\2CJ+O[\$C!IKIG%"0M#Y,P#U^;Z4&C6^#;'"CBCUM6S9C\GQ=G M4-/1/S6=2-NAW2V9D\D_L^DBP2'A:"^<2-OA+V[M;)"$9X/K'')5V7V7/2ZU MLY=-9O.!]'-0XA)]=Y;QB)SC*$M[CM&2=AQ(PN/ I^O[5^5J6,VQ43J5MD.C MVUDB^8<.")*3'A"<2MNA%]K9(WGA@.!OY2IQ?A)V,NJ0WW7JVHF%S8 M-TX4LF>ZS3L(NZ>[MUJN[;L^ZYYXX\S;;6/?@2,<"NTL;/DS*$^BQ-O2RQ$GYD:S2T ML[&N$H&FKDA][5#DT:C2:38>?TPKH4RRF,6UE5O,;!.T,KARX)NJ$NYYB=IN MY\DDV2_/(UGR=C)H0:96 $07]/>(E:,Q#1>.PPD]XE&[X<[]&O8^P4 MRUIXO+3Z3Y6'#K#/((N_6461Y)8)8S)S=@N/3A,:#&&JT)G+*<%)N@Z-=179A M\9L-"!/X!9;"*P]V RN''DT0+-HL#>2#3Z:RPUNV>-DK>%/X9DTH/7PV.>8_ MVZ?$K2>8[0DNLZ. WX0;P71R MDXFQ[!F_8!3R/>]$C 'H*%:V6$D4IHN*5@ MD0HM^*%X6[C383B^,V>^%A+G2W)GAY#7_SN"F'4 M7S$7)W!IC;=:Y:*M9Y/_E"O.W5!,<*6\U-8W#N'['>X"++65#S^&8CW.YAT5 MRF"9P%V)H$Q IRJ0EC)O/.8\ZOC29--3\P=JA'-_O8([E*6QVA8*_0E\-7($ M[P)!OGWS*VJH5YCK/)^7NH6]<$6J)#1.#0^\=/#;"45#ZF9Z?VCHF M;( ? YB,P=@ 5RBQ6J/;%VC6_O(V2_**%&NA20J$>&N)0:1%=2[+OM"'D$/I M$/]Y[O]O_=M%#(EYMR+V5368.F4X*.X**CS3HQ5*>F&E;4Q0IB $118U2UZ@ M02*9[%4HP87%560%*3V8Z,HR?30&>H,[)#36(D'!/1! M5=& ,R<\=9.:B=*=+D4 L=G0>]]F/.:,'(B*:44/=#Y*3J9:B;72AR+(#]>$ M#E)L' A[?LVF]<(IW9?5H%!L]QH=AT]HFHX [FHN%@\YU29I>#"*BI(T-A_% M_) TU'0B G7G-E$^5BS;#&9\J%JG([BA)0KQXI"YE;.&QK)C?\=7#.A&$<+0 M@Y:^:#V4O2(V6 \1KNU"_6K?PR_:UG4XWGX $.-"41P:-V0Z'OWZ(0'7-M5V M$FP=&]G:!FJ+<5C2=P@Z/D#[&TMO>S=A!_V7S>)O4$L#!!0 ( /9)JE8F M>Y/J.04 #L+ 8 >&PO=V]R:W-H965T&ULC59M;]LV M$/XK!W+P[WCWWW)%G:V._N$)*3T]5J=UYK_"^/AD,7%;(2K@C4TN-G:6QE?!8 MVM7 U5:*/!A5Y2 9#B>#2BC=FY\%V9V=GYG&ETK+.TNNJ2IAGR]E:=;GO;BW M$7Q2J\*S8# _J\5*WDO_N;ZS6 VV7G)52>V4T63E\KQW$9]D .2IQ#X>Y17LBS9$<+XVOGL;8]DP]WOC?>;D#MR M60@GKTSYE\I]<=X[[E$NEZ(I_2>S_DUV^8S97V9*%WYIW>I.TAYEC?.FZHP1 M0:5T^R^>.AQV#(Z'/S%(.H,DQ-T>%**\%E[,SZQ9DV5M>../D&JP1G!*4D*'=)%];913#)4CH7.Z!EK.*]]8>3;P.(H-!EGG]K)UF_S$ M[8ANC?:%HW"OL$8WBB))A,GK%WVB;]RCX&[V2 MMR-OZ$9IH3,E2KKWPDOPS;M]^;;NTOWNN'5.7"TR>=Y#;SAI'V5O_O9-/!F> MOA)LN@TV?*NK8G)$%_FCT)YN M9:XR% V*'-64-P9T=LWQZ-)>AK/CH9T8QKF$BE-\6PVBNBAD+0T)<:*TBOR M8E'*;K:H?[FVV!;8S42(UBPI T@JE[85U$+E3("@MY-6#A;04BA+CZ)L)!L& M%>>D=ZVF11B43D!#^5T)AJS"=DD<334T<,%08)M.%T MYX@^C.BN05V0&=5692]P MO<@R% ;(6-17/88JP"Q*9C-ZKQ^1OK&@093&PRZ@K$'L.+E#-(GAWN*6L?XY MHKI$4%% 5P+IFO&C<30=IG05IB$[P&BQ&.>.WHJJ/L7)98M-H6KXBV;)&$=[ M3'J,_@9)U9U[[,7)E#X8?9B9JI8HM%A9&8I$R7A&?TC.T?(D9^0;MZU[+54 HM,-%4F'TV]@U>(Y*/2GTP380VX; MU%,^X;)UX$=_,CF&_+U&G!+H+ZQI5JU\J:SS;9^V;;MI[!]:/3X* MS2HJ3IZ!M1+$ +M#F875H&WHB8Z3H))9:71Q3F T^+:W1_]7+$?,K

"&W M'?![9P?3"J\8'JS4:-'DBF$ =Z@UQW[.UQ_WH1S0/>BE,RHZ3A*)^!D>R"24"U7 ML!/AB@R%WXK&T2B=T+L-TK A5P@K3^A2.)5!8W@TC3'-R\8'@F Y;&NV,(]R M+QQ*MT]"KH>"3[XG-*MPXN@*="M'!NNZL;BD>.IIW A<\TH\DS8^_.^['P<[ M#YJ*+S]^MCD*S=.^;;;2[42ILAKW&L;?+/PI@[/ MHX7Q&"_AL\#K5EI6P/[2X*G0+?B [7MY_A]02P,$% @ ]DFJ5BRO:"C3 M! Q L !@ !X;"]W;W)KSH;LO<$O@J_-SCNY M3!9*?7P(\9KGUB$P/![X-:]K!P0:?W28@SZD<]Q]WZ!_\+DCEP4S M_%K5WT1AJXO!R8 *OF2KVGY1ZY]XE\_8X>6J-OZ7UL$VFPTH7QFKFLX9#!HA MPY,]=G78<3B)7W%(.X?4\PZ!/,L;9MG\7*LU:6<--/?B4_7>(">DVY0[J_&O M@)^=?U:6TXC>TQ?^P.6*XYFK4@I7LO.A101G-\P[M*N EKZ"-J)/2MK*T(^R MX,5S_R&8]?32#;VK]"#@)Z:/:91$E,;IZ #>J$]WY/%&!](U9!5]$)+)7+": M[BRS'#*S9E^^ 2[;#^$&E4@4I3 ?$ M%#D_]NBL42MIG>4&M(]3N G@6AF[!TN &E%PS3PS6S'KES?T^&,;3!4M.&%O MA:T!@4\A\6=>,5FBKHC_C)#9862._REAX69*KG0!(?&P+8&:YH 54%=;PQS9 M7-Y=TR2>4$(I:IO1F*2R=",,*TO-2^BOZ"ON@BY5C6$I9$F6+6J'AKV17>H= MH[<_G*3)]&Q+IW@&MWCRQ@W['2G9IS80"4DR6?19DE&U+\P^Z,U>&CH2KLIJ M9>!KWIV"I>;\6;,36C6O?*]^QEEB6,C]U'>N^TGI5JMBY;;E#-X3/=*U2Y?1^T3RROH5#]1$J6SC++I"4*46.+:V?34DV@ZF3JC\0P %KTL M^\@(,8VFXQ%>IK#(TFT#+5CM=LS0O6@5$U[.GP9KB#<<,YKY5Q[STV M0/--P%JPA:B!BG6G.5=J&PK8UVQ;I9[GSSMN!^N]];WA2ZZU;Y:0T'OH'Y63 M79XM*HB^>T,H_W3FGVDVI8\RQX%N$*> #\3PO+U0%8ZCLPB#:"N*V6R&ZB?) MI!?O3KL>I5$\F] [.AJ!W;M]U#@*MTMJ%(U/G";&49S%^S"+E1? X?I]?8Z>#8Z*F>V^,6.X-1' \GKE2NYZ'(W@^B.-ST)9 MG"9@ ^7YY>2,_$#R(ZK Y05NKIJ0=Q$:,RB$_)'=#9G_+[% ];^HZS)X_$MA M?9608NW'5)_TJ^)*I[%KN^REKEZ.] MAIO9UCS<;U'6TIV'-5_"-3Z>C@>DPYTQ?%C5^GO:0EGDYE\K7+.Y=@;X?ZEP M>>D^7(#^XC[_"U!+ P04 " #V2:I680\VW.326'/L8%_6[K_G['2A$Z6\.#[[N^^^\]F7V<;8.UW&+F:F M)24UWEAP;5T+^[!$93;S:!@]+GR6ZXK\0KR8-6*-MTA?FQO+5MRS%+)&[:31 M8+&<1V^'TV7F\0'P3>+&[/[)&/5=%E3-HTD$!9:B5?39;#[@+I^QY\N-0MXY,O7-F!;74W5=L=^>PYS!)_N&0[AS2H+L+%%2^$R06,VLV8#V: MV?PDI!J\69S4OBBW9'E7LA\M/AI"R. EW+9-HY"/FX2""^$JN.2"P97N"L\G M.(N) WJW.-^1+SOR]!_D([@VFBH'[W6!Q5/_F(7V:M-'M7':;S#VCJ&I'C/.(7 MXM#>8[1X\6QXGKPY(C;KQ6;'V!=]44Z?%NN==+DRKN6(\.,+;@F6RN1W/P_I M/QKAL/X!7X__7XZGD-Q#2@^1>Y#<\%MVY,"40!5":11#I%[#0&I>,:T3NG G M4_A26<0GEP>X]'G5U]X/::>D$;)@*CME.80LF^ Y3$8ICZ-AQHNYJ1%(;-&= M@N8VQ]'YY;<<"0;C!$X@'2;PT>B70;74]TSA1;$6*+M[X2W?/B1)=%..VTB? MIB@*Z3-SO)O;EE6N6@)M"!XX3A#&(K)7/ XG8_C4H!6!6B$W$K"^8W@Y+1O" M.>2C&9Z.TPS2R>N_T$J*E51! 0P8=NZE#SSR! [=KGBO*=1HUZ'U.2Y"JZGK M#_UJWUW?=DWE#[QKS7SV:\E9*BS9-3E[-8XZ\8\&F2:TF)4A;EAA6O$? JT' M\'YI^*'M#!^@_^&ULE5;;;N,V$/V5@7:QS0).;,N7N(EM MP$FZ:(%L&R1I^U#T@9;&%AN)5$G*3OZ^AY2ME;=>%WW1A>*<.7/F(DZWVKS8 MC-G1:Y$K.XLRY\JK;MB8?R5+K%__R4SJ+>IX0YYPX MCR!PV_ MY[D' HV_=YA1X](;MI_WZ)]"[(AE*2S?ZOQWF;IL%DTB2GDEJMP] MZNV/O(MGY/$2G=MPI6V]=SR.**FLT\7.& P*J>J[>-WIT#*8]+YA$.\,XL"[ M=A18W@DGYE.CMV3\;J#YAQ!JL 8YJ7Q2GIS!5PD[-_]9.Z81G=,C)RPW8IFS M):%26N3(EU )$S)/MX93Z>A>6\MVVG7P[.V[R<[+3>TE_H:7 7W6RF66?E I MIX?V73!N:,=[VC?Q2<#/PES0H-^AN!$8Y>>.QEO##8_#^4ZZLJ5(>!:A52R;#4?S#^_ZX][U";+#ANSP%/K\7@ME M.Q0X=^C9B)1#RGYQ&9N#1-Y)F^3:5H;ICV=^=723Z^3ESV,!G71Y/* S%,[_ M*)N#O8E&7UM'>D5@C3JHUG4F%%5U9H-F/5X1,)UE(]1W,BR4BW.?=7V): M)(FND"6,B#W\AW>3N-^_=D&9]S3N=2;C"1Y&H\YDU*-[MB![0#2IB>8UT;/+ M>$P?<1L,<&O1[I#"G R(_6%<(_;[E_2,$&YU40KU1M(2OY;:1W@,=. [U%;@10,X5*= MZ_5;"$K\6QG/+N4-9G$)^\IZQ3/D01N9H.8Q3?;CTCLQDH';P1PR!HT0J*TJ MY\N)D4!=R"2L(:87Z((EQ ICZ.27!1QO_&#>)7D/8]%950BZ'G!L['=4)^L( M98AP5['7TF/83!MW[M@4I$1@ AA;H41,.TU^*UL'M1WOW8O"0_NW8\*X3#@$ M\D9*NZ#ZEY)T80,2M)&I+W,R^'0.A;?"I WZB7H*V$%YGV((OS*Z.,Y"4^@O M\/2@OMIVM)ND8\N2]YGR6'#G]Z*BF%OMTNJ0$SWY7%NUIO-_0)S#^UHJY87Q M98LBT2DZP?<*^J'_/2W2OY!6/SF#OX;X5ST6.FS4QW51U#ILC72.%6"1HC4. M%-9])>V9WWX6^ZYL,V*5'G)!^[ZGX7!$QZ9MM_6W1.VMPYG 3R20J'^DR_'N7VJ'0PV.&HQ,;OP'? M5QI#?/?B'32'L?D_4$L#!!0 ( /9)JE91U]P_V@4 !0. 9 >&PO M=V]R:W-H965TZB4=A>#TOOZ;#1RHH2*NZ&I0>.;PMB*>WRTZY&K+? \&%5J-!V/CT<5EWJP M. ]K-W9Q;AJOI(8;RUQ35=SN+D&9[<5@,F@7OLIUZ6EAM#BO^1INP?]1WUA\ M&G4HN:Q .VDTLU!<#):3L\LY[0\;ODO8NMYO1I&LC+FCAT_YQ6!,A$"!\(3 M\;\-7(%2!(0T[A/FH'-)AOW?+?J'$#O&LN(.KHSZ4^:^O!B<#E@.!6^4_VJV M'R'%\Y;PA%$N_&7;N'?^=L!$X[RIDC$RJ*2.__.'E(>>P>EXC\$T&4P#[^@H ML'S//5^<6[-EEG8C&OT(H09K)"766WPKT[$#XCGG3"_C6 M72HC[OY^CO)AT-=8_?]1^]ZJ[*U:$,9B:1GWK""434"1FOD2F##:&25S3&B. MLZ,0 %CH59H]AG7ACC-14H8]PB&L*LC97_!#"R:FH3=RK8@"+N/YI\ M3X?YPF18)G.$#Z0P/%K$-27Y2BKI)5IA%BG.ZI$+H]P/V?(G MN(!&6P-.'V;').*TVY#&%K. Z;-<.QZ$U!TR-D(T-F;<-44AA202A87[!K38 MA,H6R4H*]6<-HOXC>6NL[1J0O0Y$3>/0D7MSQJ[) M47<>L?<@H%IA(Z:5:5?/FP8W8C%C Y(P>D2ET,63O+X.Y_$4H9="6&J!_5N! M6WV$]ZPW["6;G&3SZ81^S+.WQZ?L)B:HC:5@VN@C8:H:O S6-=]%K3K)?AO/ MV&2>]C]QCDH675Q@3USN&R648#U AI<8.^H(!7_4"7JXM)'GN MD%>@@32*VZ">J37[D)RLPFF!"6,\SP,8$GE:B]2Q8>J@:^#]%#+D*%234V>A MRO$UOEFG,7XY&0_'>-53*@Q:KU1F U%:/ [>+ Q&GVOQW F=H0YC]BD4(4R3 MSFR000ZSQT5TDE8P"SSU'CS@W=_1^=M-B_-!K?!)<&MW(8 J0L0]-8KZ0]2D MWC2M0' 2H*2%KC26M,HW-IP:M&I<7R-='/R?G+3V*>Q."Q6>$T=8_ J/Z=43 M$NZ)/+@D,]0GJ)XVI#QJSZ^&M-KJ*THQG@=1@H(5Z0+2Q-.%;[A40952V1.Y MX7,WOE'OIEZ!78?O$<="$>*EO5OM/GF6\:;_N#U^+^%8K3%?J'(%FHZ')_B% M8>,W2'SPI@[W_I7Q^!41?I;XV0:6-N![NEZU#^2@^Q!<_ M02P,$% @ M]DFJ5F" \'35!0 TPT !D !X;"]W;W)K&UL MC5=?<]HX$/\J.S33268H&-N 21-FDO1ZUYGK-9.D[W__>VN=+%2^M$4B!;655F;RTYA[>*\WS=I@94P/;7 FD[F M2E?"TE+G?;/0*#+'5)7], A&_4K(NC.]<'NW>GJA&EO*&F\UF*:JA'ZZQE*M M+CN#SF;C3N:%Y8W^]&(AD?P M3>+*['P#>S)3ZI$7G[++3L &88FI90F"?I9X@V7)@LB,'ZW,SE8E,^Y^;Z1_ M=+Z3+S-A\$:5WV5FB\M.TH$,YZ(I[9U:_8&M/T.6EZK2N/^P\K3QL -I8ZRJ M6F:RH)*U_Q7K-@X[#$GP D/8,H3.;J_(6?E!6#&]T&H%FJE)&G\X5QTW&2=K M3LJ]U70JB<]._U(680SOX+X0&M^Q@QG#4?#^ MB+'QUMCXF/2IS\NUR\NM>&(;X4IK4>?.7OC[ =<6KDN5/OYSR/:CT@_;?DJ MV%6["X<]G*2[!]) A<(TF@Z$!5L@Y&2FA8Q""YZ!R'A_+J2&I2@;!#5W.V(E M-+'5&8O1F*J\EO^R($.;@&M60\1+U(Y@,W7J2J-JJ4'),,YEO\F2W^@!JM MHWQ"H0&YA. #IEC-R/>V"$(V6B/N%1I0F:2%(WDQ1QI+I]BJ#0'S+O[9LD#)+W?HP\UYZ!%>-SL=!J M+6E (*'N)"%';:$:PUKX[R1*!L\[F^Q:G[]MRK;9Z!Y,QX-S<2=8FY)@>>DO M#&1[UFA&_DNZNFW"ONQEE=7,54F3FGFI%,5F6G/XS"X.W#CE,FHH\!JHY-J2 M..;AN8>F(9PPDU=NX+N;G63T%==6CO#;&G4JR;U;S<5]2O7K$W/V*^T=\MV# M[;VA:M!D5T.@^5/.B8_ P65DSN JSS7FW(D^$9&DM*?PS76@4X<@GQXB_-)8 M DV=L4"J[5]*#R9A-Q@/":71I#=)X/.M_=20HNXX"> , MPJ1'-?.3])_R/QEUPXBK+A[UH@$,>Z.$%DDWB)*-2#$K\0#G..G&@PD;->PE MS$GL)V13-([A&Q4I>BPR:E+? %QO?-V&DWTK/AQ'58O@PX#SC>MPRVB;[#[^ MK'/6 Y!JW5"9^ENHP]^,KIA '>89B:] _ORP[@/P1<8@ M(&C$'*SAJ!>$O@^2V#CN#@@4+3;:"ECZK)S&23>,8P+(,.I1ZVA/R<\Y2D

#*S^!VLG$+&XS?&\@D#2KD$':A65 @VQG9 M=;$L5$F%:=Q(RZDS^N;:ECR!ID;[SA4BS4%K2V[1U'[VQC+/?[JHRJJIZ"YK M"Q;IL[EV&/2$FYH5E6HHUM1JJ&^3'.M:>CLL61Q=$_B:4SNCNUM^Y:%>H<_><8-/)!W_GWNYN7RQ7_J+^ M3.Z?.Z0NIS8$)B-Z8&@_1/"+ZQ:N&O[3%EZ!+C/@EY=J)F SN>*[A7M M@A5LWW'3_P!02P,$% @ ]DFJ5DL=U..C @ K04 !D !X;"]W;W)K M&UL?53?3]LP$/Y73AF:>,C(SX;"VD@4AL8#$P(V M'J8]N,FUL4CLS+Y2^.]W3MJL2*4O]MF^[_-W/M]-UMH\VPJ1X+6IE9UZ%5%[ M'@2VJ+ 1]D2WJ/ADH4TCB)=F&=C6H"@[4%,'<1AF02.D\O))MW=G\HE>42T5 MWAFPJZ81YFV&M5Y/OA?1^2QU_IW#+XEKNV.#BV2N];-;W)13+W2"L,:"'(/@Z04OL:X=$LE]WL7,L[^HD[EE2"13XQ>@W'>S.:, M+M0.S>*D4)$V$NTD(&9VYT&Q89GU+/$'+ G< M:D65A6^JQ/(]/F!%@ZQX*VL6'R2\%>8$DLB'.(R3 WS)$&;2\24'PK1 &JZE M$JJ0HH8'$H3\O6AOO#U=NI_.5[Y-Q1M<25O4VJX,PN]'?"68U;IX_K-/\$'*_8*/.?$[:7]G"[[2NA9GZ9DS$G^49+ O1<%."35HEEVCL!SK M2E%?3G5EQ M/T7C'/A\H?FW;A;N@J%#Y_\ 4$L#!!0 ( /9)JE9\:8$!- , ,' 9 M >&PO=V]R:W-H965T M1 T7*E@M^K6-62UTYZ10N#%@NZ;AYFF-4N^601(\+WP6V]KYA6BU:/D6;]'] MU6X,S:(1I10-*BNT H/5,KA,+M:9U^\5O@C6+('/GR%E&QQUT/N.PGN"E\U,K5%MZI$LO_VD?$<23* MGHFNV4G C]R<0YJ$P&*6GL!+Q\#3'B\]$;@%I^%&**X*P27<.N[0AVN/Q3O M9+ M;"%U+8S"-_^ MQ$<':ZF+^[^/!7'2S?$@SNAXG/;_8[?UNV&_C>-VH>D*6P>Z E:UNB'H5;P"K)PEK)A M3!)8=T*6A&__KYIF8=:RQ=*TS"9,X#5O MVK<'4>4LG$\F?F!I"C>=4<)1!4*HQ*,7;$B!-VWGT-B]L=65VW&JTB3,DHG_ MQPE<47:10DA(ENR]C32Z93^;,I>9OA%@E]!DJ0AF\]Z*0XGQ.NR*+JF MDW2@2VI25$TZX4,;]"ELM''BGV'A+,_(1P)O2&)A/L](^D2O0?L+G_D\C-G4 M"[,P)H['CGETT)@:--N^_5I*3*?&ULA5=9;]LX$/XK V^ZFP*.K3(5IX+O+27'4R:Y?3?M_$&1;"]-02 M2WJ3*ET(2U.]Z)NE1I$XI2+O!YXW[!="EIW9I5N[T[-+5=E9J==7Q.^N%>[G(+"_T9Y=+L< 'M%^6=YIF_8V51!98&JE*T)A>=:[]Z ,,?8L@5!CR>\Q3QG0P3C>V.SLW')BNWQ MVOH[%SO%,A<&;U7^328VN^J,.Y!@*JK-A9O:0O 3"R%\5*7-#+PM M$TQV]?N$9@,I6$.Z"4X:_"AT#T*_"X$7A"?LA9L00V=:@,#.HG[,Q^_\T?>G^> #O8@!V>,)-Q3K*L M'J.VU"L:';>TJX7?*[GDO>FM\:RDS4@09"DM[YY%79 ^^ &4RKK_^T]?0%#F MK*%.X:(J+=AM''_0.MRX5P_88\%>)Q;6LI7AS?8%EI4XG2(=FXZK4#..Y1:"2OL5J4\@,Q)$1HUYX28-]DN*20UB"?1%XAIRR5SYCL0U)/J/?"[K5)0'$1 MM*K8:+K$R#+.JP29'AROJS"B)1)ZH@2+$%$(U-;P*D/:1 N2\R>,*L4\?]D0 MPF84$[U=R3PG0ZACR:YXM?:PFR1*A\B- I'\1UV2H#$1F;'4DE%K="A$'.N* MAMK1Z=KL[59#X43M<^CX%L04I326\\AV4I73D<:4.7?P565(S[R> G6P.',M M[ W2_LPIO>M^QC]!J[IK+RW79^ /NJ$_YD'0G0R"3?$?B/J3(02^#Y^5I:K8 MMQ'Y QZ$73\*#QRVP[J@_0)2K/IA,DG)6"%"M=]R0*ZP#UM 4Y9FLIU1"= M(EH5K7.F*L8)A>"FAO=+JD%\!5UFRD7 M_/D+"LT5N]ZKL!=,8, _6YA1SQO2BV%P:#21)N8< (GBUDK0H\/TU?JQM13V MJ)QYG2KRE>NP8K'0N. VF59T_AV<%ISF)BX^B-,6"QWIUAZW/NY=G'2TL;23 M.8/!R)6=/PEX90##D(LQ\G@6U;,1E3W-J*%,N/@])SD"FG>]D.N!B"A22AH5 M3DC2@QVB;/ &WIBRW_6#,?!-9KJE\/D87L.Y[VK_-=SM'TR']";$GE>WLB$1 M^MC=JM^Z]Q:H%^YVSWV:MJ2^ F]6-Q\0U_6]>2M>?WU07A>RY",A)56O-XHZ M=7&N)U8MW2UZKBS=R=TPHX\@U"Q [U-%U\QFP@XVGU6S_P%02P,$% @ M]DFJ5I;ZK":" P FP@ !D !X;"]W;W)K&UL ME5;;CMLV$/V5@0(4">!:MNS=.!O;0)P+FH<4BW72/!1YX$ICBS!%*B2U)I'C.G+F1FM?&[ER.Z&%?*.T64>Y]>1?'+LVQ$&YH2M3T96-L M(3Q-[39VI461!5"AXF0TNHT+(76TG(>U>[N@JN*0MB_5JA,O8C& M4;?P(+>YYX5X.2_%%M?HOY7WEF9QSY+) K631H/%S2)Z-[Y;37E_V/"'Q-H= MC8$]>31FQY//V2(:L2!4F'IF$/1ZPO>H%!.1C)\M9]2;9.#QN&/_%'PG7QZ% MP_=&?9>9SQ?1+((,-Z)2_L'4OV'KSPWSI4:Y\(2ZV3M)(D@KYTW1@DE!(77S M%OLV#D> V>@"(&D!2=#=& HJ/P@OEG-K:K"\F]AX$%P-:!(G-2=E[2U]E83S MR]^-1QB/X5?XK%-3(-RCA74N+,YC3_R\*TY;KE7#E5S@FL 7HWWNX*/.,#O% MQZ2K%Y=TXE;)5<(OP@YA,AY ,DHF5_@FO;.3P#>YXJP#;^"3U$*G4BA8>^&1 MBLR[<_XV=-/S=-PO=ZX4*2XB:@B']@FCY2\OQK>CMU?$3GNQTVOLRX_":JFW M[I 1^/,K[CVLE$EW/\[)O4[XDO/\SRS#2CB9@FR62UIV85FZ4.P94.?X'*$. MY4US\826NA5T53S2;K-I (Y'Q%'0?BK:= =T C@O=$8^#.!6C+]NIRG^W MU/&W!@\&@%Z0L0UJ\5,9^+.23T)1AL_ALLKR"T6:LRAILB%\_4_N5BR:2HF, ME>0:>T%Q['701TU'ZC-_4T/GF>//1,7N;HRB@Y%%O)0< %,Y(G&O[DB'13QI M*:"&(*%=1_ C:1/X3/#E6+T>W+Q)^#F=PO<+L.=1RRID=VGHK4P9$N([Z+)= M\B'K0@ >UM\THN24% CL+)T5'54U))6$^%PVT-WL"LJA$J(4V>FTY!L6':F2Q1P$Z5@WL MMS:>(*%8GM?'X-Q1%!]=& 7:;;@6'?E0:=_<'?UJ?_.^:RZR9.MM,>TF;BM'O8V0,MP18G M$JDEJ3CY]PM2LN*VKGNQ2>#AX0$BP=E.JB==(AIXJ2NAYUYI3',9!#HOL69Z M)!L4Y-E(53-#6[4-=*.0%2ZHKH(X#,=!S;CP%C-GNU>+F6Q-Q07>*]!M73/U MNL1*[N9>Y.T-#WQ;&FL(%K.&;7&%YFMSKV@7#"P%KU%H+@4HW,R]Z^ARF5J\ M WSCN-,':["5K*5\LIM/Q=P+K2"L,#>6@='?,]Y@55DBDO%?S^D-*6W@X7K/ M_L'53K6LF<8;6?W-"U/.O:D'!6Y86YD'N?N(?3V9YJUO&)PGOF!I!$OD0AW%R@B\9JDT<7W*B6@U&P@7'J>S%^92-RS'N45U*U"^.<17PPL*YD__7M,^$GJX\+_L.?@YZ2/)<*-K!LF7B&7 M=!NUT2 WP$"3NT*"/J-HJ:^ZY$V#A>UO=W)1$;(UFA=H(PPQ?17<$,1U71-? MW2BNR<":1LD73M<,JU>(QJ/Q.3!1D*11>+X/[F51*.SFRX@6SE&HO M@R:50YM2(0(=H;PCRBB(HHVIP8Q^D94 M&@TZ3O60RA_:LN.FY,+IO,."YZSRX;HEI[13BM:HI/M"<,'JYHKR;V@2DL,V MY9,HB$C1\0V^$(.B@:">D(8S?*8QKEE%75B_]M;?]X,J<9Z#NWL4=M?QV1PK ME^/\NW5?!YS!-/&G80K3;#0A^QEDL9]E*4R2T93V;V5"ZB?I!-)12F9:9Q&, M1Y&%'*^>,-1FPB>$2?Q)ED'FUF\-@0"ZEF1^,K7N,;FCT,^F,42IR_^F^0S> M3X@E(4 X"IW42>3':3P8;E 9>MF U;*E$7&JES$G!.KQQU]UH?X-W#R1EVW*AH<(-A8:C2>:!ZAZ=;F-DXP;]6AKJL%N6]$ZC ML@#R;R2-OWYC$PPO_^)_4$L#!!0 ( /9)JE9^=80$UP, #X( 9 M>&PO=V]R:W-H965TAV86B,K&J%*!'$8CH**<>G- MIPWO3L^G:F,%EWBGP6RJBNG] H7:SKS(.S#N^;JTCA',IS5;XP/:/^L[3:>@ M1REXA=)P)4'C:N9=11>+U+UO'OS%<6M>T> \62KUY Z?BYD7.H-08&X= J// M,UZC$ Z(S/C687J]2B?XFCZ@?VQ\)U^6S."U$E]Y85*F.87MNW;-/,@WQBKJDZ8+*BX;+]LU\7AE< X_(E W G$C=VMHL;* M&V;9?*K5%K1[36B.:%QMI,DX+EU2'JRF6TYR=GZK+$*4P#E\4JK8418]/>V/08^OR'A, --[E09J,1 M_G[$G86%4/G3/^\9?A3Z?02K#LRK?=I1[1& MF>_!:B:-8$VO1TGT%K25C(:3UM2#;<],;,ADLLV9J*#HT9=!NJ);N-,U/;?<0P*-F!4I6(9RRJKZ$ MA78!O57RO-&+I.:Z:7AR^'=N+#PJ2PA?F\&"Q3E[1DUSTH536_YOZRF!A*SC:ERM+B&GLAY.PRVP?A/\_ME^-5NQ->GK>;E?Q;&PO=V]R:W-H965TV&VFY[F/9@DH-8=>S,=DK[[W=V0LHFRDMR/M_W^3N?[Z9;I1]- MCFCAN1#2S(+M=,$L+?4F-*5&EGE0(<(XBH9AP;@, MYE/O6^KY5%56<(E+#:8J"J9?%BC4=A;T@IWCCF]RZQSA?%JR#=ZC_5XN-:W" MEB7C!4K#E02-ZUEPT9LL$A?O WYPW)H]&UPF*Z4>W>)+-@LB)P@%IM8Q,/H] MX24*X8A(QI^&,VB/=,!]>\=^[7.G7%;,X*42/WEF\UDP"B##-:N$O5/;S]CD M,W!\J1+&?V%;QR9Q &EEK"H:,"DHN*S_[+FYASW *'H#$#> V.NN#_(JKYAE M\ZE66] NFMB@ET(5O-D<--TINNA9U 3>< MK;C@EJ.9AI:.,OT M&?1['8BCN'^$K]_FW?=\_2-Y&[ *KKED,N5,P+UE%NF]V8/YUG3)83K7.A-3 MLA1G ?6&0?V$P?S#N]XP^GA$;-**38ZQSYO2O!8$KKA)A3*51OCU@,\6%D*E MC[\/"3]*?5CXB7L1>^_AX;_WT.R)]JV(O;U44<<:"VH-% 5K):CQN=S "9?D M495A,C.G$Z"2IKFOZ16F6*R(<5=@]XGA(DUUA9ECM$1 E:G),]3,M_0),BV[ M-&I.X3WTXDX2]\@8=P;#$2Q=-H1X8J)")T8JV4U54:+E'ERR%U]L&':B\3F, M.KW!H$EL/!Q 0CXB'7>24=\9HTX<1W"HF.%>]Q6H-W[&N'NHI*T;L?6V8^RB M[M[7\'H&TI5LN#0@<$W0Z.Q\$("NYTJ]L*KTO;Q2EB:#-W,:Q:A= .VO%;WK M9N$.:(?[_"]02P,$% @ ]DFJ5E>(3,[@ @ 6@8 !D !X;"]W;W)K M&UL?57!;MLP#/T5PD.'';HX<=JNZ)( 3;MB/70H MVFX[##LH,AUKE25/HIOD[T?)CIL!:2ZQ1)&/[TDD,UE9]^Q+1()UI8V?)B51 M?9&F7I98"3^P-1H^*:RK!/'6+5-?.Q1Y#*ITF@V'9VDEE$EFDVB[=[.);4@K M@_<.?%-5PFWFJ.UJFHR2K>%!+4L*AG0VJ<42'Y&^U_>.=VF/DJL*C5?6@,-B MFER.+N8GP3\Z_%"X\CMK"$H6UCZ'S6T^38:!$&J4%! $?U[P"K4.0$SC;X>9 M]"E#X.YZBWX3M;.6A?!X9?5/E5,Y3M]O$75JWO M^#0!V7BR51?,#"IEVJ]8=_>P$W ^?",@ZP*RR+M-%%E>"Q*SB;,K<,&;T<(B M2HW13$Z9\"B/Y/A4<1S-OEE"&)W"1[@UTE8(3V(]28F1PWDJ.Y1YBY*]@3*& M.VNH]/#%Y)C_'Y\RHYY6MJ4USPX"W@DW@/'H&+)A-CZ -^YECB/>^(!,#V3A M1AEAI!(:'DD0WA3O9#QW((??;Z$G"MO-36-P[AUQ.N">;:RN??^Q@?QOP0'OD5F"_CJ40N7T+'525B MA]@"5.M!G!K7W/@>V03$KD+R22W,1IDE-$8TN2+,05I^<7:+*V^URD4P^_YR M=U"5CPV40U/;%A0]J2H&8%%@;-"8V[$->.)$IPT*=PPB_\/=P)Y;LV(VD@(\ MDX*<+\JQ&F!6E8=5J60)PK6\&[,-[,34Z)3-PZYU9-L&K)0-5UVXEZM6*D\= M:1U7]+Y["8GKVMEU5* W,#H?C(Z83,Y%.\B.=H0OD'/C/I"M&"H=(G#5,YEM MV8>?['A?/:4[_5ZA6\:IYB$*;5N_M_:#\[*=%Z_N[=3EE$ME/&@L.'0X^,1S MRK63K-V0K>/T6%CB6127)0]_=,&!SPO+K=5M0H+^[V3V#U!+ P04 " #V M2:I6:X>>J^\# #Z" &0 'AL+W=O-E>"TBEO>I6VNY6A;O3ZG0?3#(0JXZ=LYT"__[& M3LA1%I#N"_AEYIEGGAG;&:V5?C49HH5-+J09!YFUQ4T8FB3#G)F.*E#2SE+I MG%F:ZE5H"HTL]4ZY".,H&H8YXS*8C/S:LYZ,5&D%E_BLP91YSO1VBD*MQT$W MV"V\\%5FW4(X&15LA3.TOQ?/FF9A@Y+R'*7A2H+&Y3BXZ]Y,^\[>&_S!<6WV MQN R62CUZB9?TG$0.4(H,+$.@='?&]ZC$ Z(:/Q38P9-2.>X/]ZA/_K<*9<% M,WBOQ)\\M=DXN X@Q24KA7U1Z]^PSF?@\!(EC/^%=67;BP)(2F-57CL3@YS+ MZI]M:AWV'*Y/.<2U0^QY5X$\RP=FV62DU1JTLR8T-_"I>F\BQZ4KRLQJVN7D M9R??E$7H#N$*OL@4%Q93B<:,0DO8SB),:IQIA1.?P.G!DY(V,_ KP:3O_4/B MU!"+=\2F\5G )Z8[T.NV(8[BWAF\7I-HS^/USB1JP"IXY)+)A#,!,\LL4H/9 MH_E6_CW$]BW:A>=V">(20:4VYAR1(NN.6D;$E0&BSMS3!1,H4[4I9: 1B-7] XK5.XK_SN M5AJ]\D"FAAL+:@D,6OV(>EP(=UP-)I1Y"A9U#D(QZ6KGX.]57C"Y];BL,=/X MIL0;EZL#:MMVS6R=\21[!Y"S[5["5:<-.T"-1X9UY\4=;S;_WVDQ(0S0G0E< M4@9D1U>%2X5*D\)BZXE0/94+OH)9IK2]FKM4ITR^P@^.(O75V8"F"'#QZ<-U M'$>WT]GTAQ]V;R^A$*4A">@R77&2)V.6C.6*BK'4*H=N)QY\=*K%G>@C*-T& M,G!Q4VHLC?Y2)-GW)&G[R8(8N!C=S[<&"DU7<,5!N"8Y'R=>K_W3_*N2 MJRM?4M=XN^J;'8^E$O1*N"I>^!"J-*2SN;PY "+E3Y0;6A /VE$4P;QIG%Z] MH"P=>O&>P3#R>_>EUJYN!=7!Z7+1]\N7!X3;@)M$E*D/?.#2@L'0.SV6UIU9 M>C%*79T-RNX@+&EWD-%^OA7WKX[[Z42K=%[0O;RNP2F(!VI!S]-HT9V^&]-& M'ZJ4KNI_6AK\O#2$N!Y7FO5_J;%J#1MU6SOECMUVX=Y[E%-_^U?74+5+::NG MJ5EM'O:[ZCW[S[SZ*GCRW6:H^9;D&G4^#P+0U4M;3:PJ_.NV4);>2C_,Z.,$ MM3.@_:6BB[^>N #-Y\[D7U!+ P04 " #V2:I6[Z8Q\! $ #(" &0 M 'AL+W=O+"$6J)&4G^_4[DK*: I[1+XEXO)?GGGNAYWNE MGTV%:.&E%M(LHLK:YFHX-$6%-3,7JD%)-QNE:V;IJ+=#TVADI3>JQ3!+DLFP M9EQ&R[F7W>GE7+56<(EW&DQ;UTR_KE&H_2)*HX/@GF\KZP3#Y;QA6WQ ^[6Y MTW0:]EY*7J,T7$G0N%E$J_1J/7;Z7N%/CGOSYAM<)D]*/;O#3;F($@<(!1;6 M>6#T;X?7*(1S1#"^=3ZC/J0S?/M]\/[)YTZY/#&#UTK\Q4M;+:++"$K[7_';M\/,!"">/_PK[332(H6F-5W1D3@IK+\)^]=#S\C$'6&60>=PCD47Y@ MEBWG6NU!.VWRYCY\JMZ:P''IBO)@-=URLK/+6V41,CB'5?&MY88[J@PP6<(' M8LM8;EN-,'AD3P+-V7QH*::S'!:=_W7PG_V/_Q%\4=)6!C[*$LL?[8>$M0>< M'0"OLY,.OS!] :,TABS)1B?\C7H"1M[?Z 0!!D)^Q](+UOEQ:SH?1\MTOZ21Y?P);WF/+3WE?/M (EJU 4!NXQT)M)?\72[@I45J^X?2Y M,@:M"<73=':%^\S9$Q=42_SF6ZTDTQW/]Q+B& M'1.M!UE0\_ 2-0MM9#639H/:(;MFIH*&<<)HH1#*<+F%7R$;Q9/D$OZP%6H0 M'?)7&,W&P6*C50VKDA4$67^8)G,&CLDS\&,RY2N-T,H*[5A<5S2DTFA<( M3%"Z0655%*J51)?& OG.,T)F<3:;P8W<$:E*O](Y3Y,.4-$2=HK, LU92NXU M+41M7V-H!(&*/>5(]#>UTQS'TR2':S^XS@$UOZ;-8^ =JYOW%%D$;BK>D+]X MEHTIM*6E1%NJI:2:SCW=I=D4;I4\+U3=($TIVVI$'R0;S^ SNARU6SJ.^98. M!Y27LPY^)\A3^$VIBT_45R9/I=[(:]NH5!M-I1MR3 M7+=43WRA=\%0BPTFDTN2WTC"B6#92Y"1Z -VM>^$>3XC:0 NWC3IP"$^@UOL MB6:'?NZK>F*:QOTTC4].T[JEGD-CWJZZV-43_'ZG#,(;YUKEY^;E9+SC\_)8 M41'/:[<3X0XU5V78C$![K:@.BRV#P5?)VI);+,_@@=%N(BJFXSB?4&T;W_,T M/CQP3C 5K9GA!&LG%-*4M+UKKB:9C MA5>I^_JX8VG)+><%H/ #9E21&)0AW$-(Z'LZ?T-^[W"F7%=-X M)9M_>&GJN7?N08EKMFW,K=Q_P#X?1["0C7:_L.]M0P^*K3:R[9V)0CZ"LG/[/X+ U" M F_A%G@Z&&7'6S\ FP"GZ0PM8:_1(GE MK_X!41QXQD\\E_$HX">FSB")?(C#.!G!2X:\$X>7C.2MH(O-0-2O*B=Y)_I;M",A"(J%ZX ]B>&&R7+;6$T MO($\]:=Y3)-I[D_""=Q)27$K8,("%35Q4(\0^7&>0IJ=4XB*ME!9&TN!%X0> M^=DTLT:3G ,:T ,D2E$YF>3A"896:0QC @]&82>C I]1?DJNA?HS)D:KMQI M0^7#L'^I-9J#]=^0LK).&%E9W::D,%D"5)2M7+6)[&-+P^$D(#IX$ M"E>YAT]3);?"=*_#L#N\K9?=D_+3O'N825822T.#:W(-SS+J8M4]=MW"R(U[ M8%;24&YN6M/_ U36@+ZO)5VV_<(&&/YQ+/X'4$L#!!0 ( /9)JE;ITUV< MT ( /\% 9 >&PO=V]R:W-H965TP4RX(9O%3B%\]M,0F& >2X M9+6P#VK]#;?Q]!U>IH3Q*ZP;W<%Y %EMK"JWQL2@Y++9V6:;ASV#8?2.0;(U M2#SOQI%G><4LFXZU6H-VVH3F#CY4;TWDN'1%F5M-KYSL[/1.680>G,*\KBJ! ME&[+!%PR4\ U%0QN9%-XE\'.(UL(-"?CT))G9Q]F6R^SQDORCI<4;I6TA8&O M,L?\K7U(C%O:R8[V+#D*>,OT&:1Q%Y(H28_@I6T:4H^7'DF#@2:^0^$UUKW# MUJYQ1J9B&4X"Z@R#^AF#Z:, MZ+-8) 86/L(P36A-XQY=9JI$L&R#I@N2Y@S%0:U7R]Q IQ_!"21Q!'=*GF8. MCLMG@N!R!4P2+I=,9EYR_L=IGARJ+IJE?U9O12*E?<0I2X)), MH[/S?M!PWPE65;[%%\K2P/#'@B8T:J= [TM%_WLK. ?MS)_^ U!+ P04 M" #V2:I6--Z'N X# !E!P &0 'AL+W=O"1V9KNT^_<[ M.VU(IQ+M2_P2WW//W>,[C]92O>@,T<"FR(4>>YDQY:7OZR3#@NES6:*@/PNI M"F9HJ9:^+A6RU!D5N1\%0=\O&!?>9.3V'M1D)%=P>^<5SK MQAQL)',I7^SB[=(:-N<[]%L7.\4R M9QJO9?Z=IR8;>T,/4ERP56X>Y?H3;N-Q!!.9:_>%=75V<.%!LM)&%EMC8E!P M48ULL\U#PV 8O&,0;0TBQ[MRY%C>,,,F(R77H.QI0K,3%ZJS)G)<6%&>C**_ MG.S,Y(LT"#&"JA5NO MYM9K0Y\\446FJQQ!+F":)'(EC.Z 8]PA:9BHE+OE@G3C8MG0%'ZXD. 9-P9F MN4Q>?AZ*KM7_X>A(@"1S"MR0MV*.JI;#?J*:*97PCLWQAV$4AE=&L13A"/I! M9]@?TB2..\,X@#O4%,G>_4NJ^Y=O[]\@ZL,I#=TN#8V;VP%!?%]+Z"'J]^*"*?J/U%:B6KL%K M<%I57;#>K=^0:=4ZWXY7#Q"EBG*A(<<%F0;G U)'54V]6AA9ND8ZEX;:LIMF M] ZBL@?H_T)2*6X7UD']LD[^ E!+ P04 " #V2:I6*YSIXJ," "U!0 M&0 'AL+W=O7.?:6#AV9CLM_/N=G39T4NE+ M;8GHX*62RDZBTKEZ%,>6EU@Q>ZIK5'2RT*9BCI9F&=O:("L"J))QFB3#N&)" M1?DX[,U,/M:-DT+AS(!MJHJ9URE*O9Y$_6B[<2^6I?,;<3ZNV1(?T/VL9X96 M<<=2B J5%5J!P<4DNNR/I@/O'QR>!*[MC@T^D[G6SWYQ6TRBQ M"B=QY!D:_ M%5ZAE)Z(9/S=<$9=2 _QXY">X*8;\),VS#I.V$RN-/*E1:^J@*+__$Q M2>YTIUO=T_0@X1TSIY#U>Y F:7: +^OJD 6^[$ =++3Y[4NO10_VHWWGC&S- M.$XB:@V+9H51_NE#?YA\.:!MT&D;'&+/WZZF!Y?6(MW$'3+;&"R 'O8]\L88 MH98P9598^!VR@$=\<3"5FC__V9?0P9#[$Z*:\[(K.EPCQVJ.9KN3PG=D#>M*-"PT))'X?6EQR.XY-PTE,[[KLB,.J&I<@P? MH7_>&Z1];PQZ9\,+F'F)!%EMGZ_2ZH3KJD8G KIFK^T+/N]]3C+H)[UDD,&^ MJXEW6JE"LPP#PY*81KFVJ[K=;B9=MJWXYMX.-"K74B@+$A<$34[/SR(P[9!H M%T[7H3'GVE&;![.DN8K&.]#Y0E-Y-@L?H)O4^3]02P,$% @ ]DFJ5F37 MTB0J! 3@H !D !X;"]W;W)K&ULI59M;]LV M$/XK!RT8$D"5]6XILPW82;H56%)+_?R'._A\49;+I[D"E'!-!S4K&VLR,FMS,1GQM:K*!N<"Y+JNF=C-L.+;L>59+PNW M9;%2>F$P&;6LP 6J^W8N:#;86\G+&AM9\@8$+L?6U+N"#R4N)4'8]"1 M/'+^I"2-O+>"7-%[:]K&M!MI:*U[TR(:C+IONS MY_X,\4F(\&W(+0T6=,#$ZK1)G!EHY.R4()V2])3DS^X M0AC".UBLF,!W.L =;;][]@.X"-O MU$K"39-C_JW^@'#NP?HO8&?^28,?F7 @\&SP73\X82_8!Q\8>\&)X"5T\1T+ MK],.CVOKZW(I6Y;AV*+[(%%LT)K\_),7N[^MD3:N*9]V0]&XQXT53_DU2/XR[E2#0AR0 2F&V,CD\)%QV&(/ BBE: M5/S2)%I_?!UF39MT(;(G* 1KE(0S\%RW_R[,!F^-B7X_#2$*Z!2D$F6F379" M]TVINO@EG%NWBWMI74 2^R2G\VP\ M=:FFS#)Q.2#5-=OTJU^\%TG?1Z/%T&BJ3CR5'T;B5\-G6- MP$TW**A,P\TSBJR4"'.AJ7C>DK YKHO7LK>HWX6R*2A]C1)4@M=TN+^72](K M&]@A$_("ID4AL*"YT3A'G\.YX$]3%RX #]QB"K_ MLOZ5J8:$:6S[@29;&#N!!Y$3)S1);#=(7DR:M+S6'"9VZ*4:5.0D6I/4SPA3 M, SA@;A)2,@KX'.+6<=[V-#RVQC.OD5Q@HSQGHSQ_R/CT;OTG[EY$L1Q;AYU M?(2=)N5PK]2H[3$T@BD*6VF0R?VWB+7T$XB39%XZ"3!T4P.#M[X&D5A M.AE)Q6G=J.ZYWZ_NFZ5IUR-\%>\Z+7)>T"V#"I>DZCI#JA6BZUZZB>*MZ1@> MN:+^PPQ7U/"AT *TO^3T-A6-GMD/AW^_:"5DGE;[$]]KW')_C M^'J^5?K1U(@6GALAS2*HK6U/H\B4-3;,'*D6):VLE6Z8I51O(M-J9)4'-2)* MXW@:-8S+H)C[N1M=S%5G!9=XH\%T3(/2<"5!XWH1G"6GR]S5^X*?'+=F)P;G9*74HTNNJD40.T$H ML+2.@='PA.N$ MO57;;SCXF3B^4@GCO[#M:R=Q &5GK&H&,"EHN.Q']CR,,N*N59;T*Z:V%S@K7HTB>/2_90[JVF5$\X6WY5%F,%GN))/**W2' U\ MO&;3/+*TA2N,RH%NV=.E;]!E<*VDK0U\E156_^,CDC;J2U_U+=.#A-=, M'T&6A)#&:7: +QO]9IXO.^#70.]OG[T>G>]'NPXY-2TK<1%0"QC43Q@4']XE MT_C+ 6WYJ"T_Q%[<4<=5G4!0Z_%WO(1PWFE-,?SRJN$>GRTLA2H??^\S<'"+ M_0;HC,O:'_(%EMBL4(\G[CXIW+(MW3F+FC-AX#WD29C$4Q>D87X\@0=J/. 2 M6JU*- :F89)DD(?)+(-++CE=SPHV2E4&3L(\BZE@=CR#>V69(-S@E/@FTW": MG[@@"R?9%/8=:K1SV1O4&]_2!DK52=O?^W%V?#7.^F;Y5]X_.61\PZ4!@6N" MQD?'DP!TW\9]8E7K6V>E+#6B#VMZ^5"[ EI?*[I.0^(V&-_2XB]02P,$% M @ ]DFJ5O3!KAP# P C 8 !D !X;"]W;W)K&ULA57;CMLV$/V5@1H$":"N)$KR96,;6&\2I$ 2&$G:/A1]H*6Q12PO"DFM M=_OU'4I>Q4D=]T'DD)HST^<:U%7O<@)1.6II-$<:&CU:+?V]C5PG1>"HT;"ZY3BMO'-4IS M6$99]+3Q2>P;'S:2U:+E>_R,_O=V8VF5C%%JH5 [8318W"VCF^QZ703_WN$/ M@0=W8D.H9&O,75C\5B^C-!!"B94/$3A-]WB+4H9 1./K,68TI@S 4_LI^MN^ M=JIERQW>&OFGJ'VSC&81U+CCG?2?S.$='NLI0[S*2->/>\44

0^)>I:ON>>KA34'L,&;H@6C+[5'$SFAPZ%\ M]I;>"L+YU4?C$>;P*VPL';3UCS%L)-<>N*[AS==.M'0"'EY\X5N)[N4B\90T M0)/JF& ])& _29##!Z-]X^"-KK'^'I\0V9$Q>V*\9A<#?N#V"O(L!I:R_$*\ M?.Q WL?++W3 P5#?N?(&='$>'>[,M6MYAX_1ZODOV21]=8%;,7(K M+D5?73Z4OWK2\ 4?/*REJ>[^/L?_8H;S_*G%5=/W^#56J+9HQX:'@<'[0"0\ M0K76W&.@X^ 9%/$L9\.<9;#NA*R%WKO_NN9%7+(R3$4Q@?=(]ZHQ\@>G:9S- M&)1QF=)'Q*N&J-M'>,Y5^PIP[$+)XOED$B:6Y_"VLUKXSF(,._$0#!=#953; M>;3N"'9FYP_<(DSB(IN$,(A=! 1/:$#C3RZ91&-F4GMZ0=#^0; ME6>097G,YK/>2N,)\;JIJDYUDGNL22VHQY7@@QZ%%BICO?AGV'A1%I0C@Y=D ML;B<%V1])%EN_R=G.8]3-@W&+$Z)X[GO+CE1"(5VW^N@H\9TV@]B,>Z.4GLS M*,PW]T&GZ>/8"^U XHZ@Z=6TC, .VC&PO=V]R M:W-H965T'QYMNN?@IC$8RS;%B@\#ES+IT)U>1EC<"WPO=L9CD:$):8*FV!T><1 MK[$LM2&"\<_.IG5PJ16[X[WU3R9VBF7!)%[S\D>1J7QF)19DN&2;4MWR[1^X MBR?4]E)>2O.&;2,;QQ:D&ZEXM5,F!%51-U_VM,M#1R%QWE#P=@J>P=TX,B@_ M,L7F4\&W(+0T6=,#$ZK1)G!%K3?E3@GZ6Y">FO_)%8+KP "^( 4GX?R>+4J4 M%].1(O-::)3N3%TUIKPW3/GPE=WQ.KA":^4^$UVL%I;7TZ)G+-4IQ91'^)XA&M^:^_N)'S M6P^VX( MZ+,^;[)O@SD5 [X?%NC8*JH5U!JO'#[[0%8 _(, MW,#VW40//'L<>/"IJ%F=XK&H.X[ )X8&)X?M,M.&:2_6":5=O,JW? MWGTN$%^4!FAY=GX&10TJYQM)+)<7':X9' ;&Y%7J4K-V67&ABG^9*>Y\"4*? M'#W8D$A+J+!Y?:XI8T@AD?!Q4BGE1QNKO4!,-(U"#[XS49A4=/XE/L0.W.4$ MH]F.KAX05;I;:%;/(*'E,XC#$*Z9S&'-B@SH9@56\4U-@(LZ+3D"ZG#_M/:\D?4H71ZU0D/O2P/CJP/GJ']<08HGWK05?=/8I]==Y7 MX6>;.*PV@D;_\XST>C]=C??.6TBW)O$9E67B@SDI9Q#$IC2Y8T^O!!#YNF"% MCIZ%S2RFTD@S*KIC72 =(QD#S6W'IS*@GH;$W:,W6>P 6F0 M%EQ1OV6&.36X*+0 _5]RZAQV$^W@T#+/_P-02P,$% @ ]DFJ5B4T-F:5 M @ U04 !D !X;"]W;W)K&ULE53+;MLP$/R5 MA0H4+9!&#S_BI+: .&G1'!(8<=(FT*1 LOI9!F$A365A=A:+("2V9.5862;I9*E\S25J]"4VEDN0>5 M(DRB:!B6C,L@'?NSF4['JK:"2YQI,'59,OUGBD)M)T$<[ [N^:JP[B!,QQ5; MX1SM8S73M L[EIR7* U7$C0N)\%E?#'MNW@?\)/CUNRMP3E9*+5VFYM\$D1. M$ K,K&-@-&WP"H5P1"3CN>4,NB<=<'^]8__NO9.7!3-XI<03SVTQ"48!Y+AD MM;#W:OL#6S\#QYVN^P!QA%[P"2%I!X MW*8L0Q_ %;F2F2H09 M:I@73"-\>F +@>;S.+3TD L/LY9TVI F[Y#VX%9)6QCX)G/,W^)#$MBI3'8J MI\E1PENF3Z$7GT 2);TC?+W.=<_S]8ZX-M#X.V2O0?D1;O]/6/\:>SJGN\EH@J"4\^9\*<[C\,7"5*AL_?N0GZ,O'O;S4&C$-WD$RD)6=&EP0P)39G@&VYU.UNJD M7ZFDFC.-2&H&QC*9<[F"LY/!>>+&?O_5WC\P?*[YA@F4=L>0UPA6414+=Z$L MM0&_+*COHG8!=+]4]!NW&_= U\G3OU!+ P04 " #V2:I6-OBVD<8" #F M!0 &0 'AL+W=OSI MCHNMS!$5/%9E+6=6KE1SYKHRS;%BTN$-UG2SYJ)BBHYBX\I&(,N,4U6Z@>>- MW(H5M95,C>Y6)%/>JK*H\5: ;*N*B:9-FR#2U3? MFEM!)W= R8H*:UGP&@2N9]:%?S:/M+TQ^%[@3KZ006>RXGRK#]?9S/(T(2PQ M51J!T>2*6C=EJ03=%N2GDANN$/P /L 2-U1L!7?8<*&* M>@/O[MFJ1/E^ZBJ*I.W=M$>==ZC!/U!#6/!:Y1(^U1EFK_U=8CC0#/8TY\%1 MP 43#H2^#8$7A$?PPB'MT."%1]*6T.5W*+W..SKLK0?E3#8LQ9E%DR!1/*"5 MG+[Q1][Y$6[1P"TZAIXL:?"RMD3@:VK& ]8MPNH)%NPW%W!I?@D44JN>6]4W M3\)/DQ/@=5O:&C?T+!G5$=Z^ MDA>8%2DKX00FH3WQ(IC$SICT)Q '=AQ', Z="9TO6DJ(Z]F$R ZC,41.1&J2 M8Q]&CJ]-4'!3;SAE57,.5[BFM:#M U_;AV03VN,XAMC(UW5&91(%17?AJ\I1 M0&R'$WT]HFO?L^-) 'YDXC]S/H&/8T()RBV2G=0O#&3O.** M:F;$G!8Q"FU ]VM.OW5_T &&U9[\!5!+ P04 " #V2:I6(=!7!X8# !U M" &0 'AL+W=OZDKHA5,:LS_S/)V76#,]D7L4M+.5JF:&5+7S]%XA*UJC MNO)"WT^]FG'A+.?MVK5:SF5C*B[P6H%NZIJIQQ56\K!P N=IX8;O2F,7O.5\ MSW9XB^;/_;4BS1M0"EZCT%P*4+A=..?!V2JUY]L#?W$\Z!<>+["J+!"%\:O'= :7UO"E_(1^V=Z=[K)A&B]D]8,7IEPX M4P<*W+*F,C?R\ 7[^R06+Y>5;G_AT)_U'<@;;63=&U,$-1?=ESWT/+S&(.P- MPC;NSE$;Y4=FV'*NY &4/4UH5FBOVEI3<%S8I-P:1;N<[,SR2AJ$(()3^"QE M<>!5!4P4\(.UIUCL+_&3*+#XW=ZCH(?(PZ?(5^$HX'>F)A %+H1^&(W@10,348L7C3"AH;O? ML>MUUO%Q:]L[9WK/?J[C176^&!@5QL$>!CX<]>/B(.=8;*H2>YA#>0A!$KA].@7J"*EY0 MC2J%(G\$HYC0%6M[+8@"H/SDY9"@WC)(9C#"1S+PD;R:CTLNN,'3;]3TYI.AB-Y7@]W*"=@06E ME2+L2SYR(W]JE9BHB?W BLFSF%K"9C,K9JV867%JQ<2'-3W!R+:&$./0]6=^ M7RJCK'HO1@&5V*X=>!IR6Q3=5!A6AYEZWHV2Y^/=0*8&WG&AH<(MF?J3C)I$ M=4.N4XS&E,[>W5.E,-J;D I<*=%-53+TLL)3;N1=YNXT[ MOBF,W0C26(_F1[U4M IZEIQ7*#27 A2NY]Y%=+Y(;+Y+^,EQJ_=BL)VL MI'RTBV_YW NM("PQ,Y:!T>L)+[$L+1')^-MQ>GU)"]R/=^Q?7._4RXIIO)3E M+YZ;8NY-/,AQS9K2W,GM5^SZ&5F^3);:/6';YB:4G#7:R*H#DX**B_;-GKLY M[ $FX1N N /$3G=;R*F\8H:E,R6WH&PVL=G M>K0)(X+>RCW1M%73CB3WDJ# M$"4P@.^F0 774FP&!E4%UYRM>,D-1PTG#VQ5HOXX"PS5M,@@Z_@7+7_\!O\0 M;J0PA8;/(L?\-3X@K;W@>"=X$1\EO&'J%(:1#W$8#X_P#?L!#!W?\,@ -+3] M'6JO12>'T=8RY[IF&^N%=- X_'=&6]-J28^QI>R2W4F2-4BC, MJS/Y[33# SX;6)0R>_QS2/[1 H?ETX2SPHWX"C.L5B1A-V_[B.$BRU2#.61T MLEQLK# *-<]1,6>U$V1*#.@*^ CO(8K])(XHF/JC\026M@XAGEC9(,@U""D& MF:QJ--R!:_9"IC<:QGXX/8.)'XU&W<\Y'8\@H3TBG?K)9&B#B1_'(1P:=K#G MB@K5QGE?D]1&F-8@_6Y_O5RTKOJ?WMY--)(-%QI*7!,T/#T;>:!:O[<+(VOG ML94TY%@7%G1%HK()]'TMZ3?K%K9 ?^FF_P!02P,$% @ ]DFJ5H&(DA/% M @ S 8 !D !X;"]W;W)K&ULE55M;],P$/XK MIU"A(6U+FKXP1AMIW4!,VM#4#?B ^. FU\::8P?;:;M_S]E)0P==!%\2^WSW MW'//Q9?)1NE'DR-:V!9"FFF06UN>AZ%)KW#I#F$Q* MML)[M%_*.TV[L$7)>('2<"5!XW(:7/3/9R/G[QV^L$G:N-I^PJ<<33)4P_@F;VG<B/X02N988+ MBYE$8^#H@2T$FC>3T%(2YQJF#>"L!HQ? !S K9(V-_"!\++G\2&1:QG&.X:S MN!/PENE3&/2/(8[B00?>H*UXX/$&'14;J.L[5%X=/3P<[>[(N2E9BM. +H%! MO<8@>?VJ/X[>=W ;MMR&7>C)/=VYK!((:@E7U WX[GG" VXMS(1*'W\I@RJ9KFK:PPQ[42:RY7D&K,N(4E2[G@]@EZ$(^.HR@B#KH H9B$06-0E@FR MR-6)=6?N\X%QY,\N*ZU16BB5]I?O:.C-;^#FF?LQX#855>83_Q'2@]'8!W7H M.FIU'?VSKK?,5II;3A\![3P?7]I_Z-V9[+#>/L6-4^]EJ6M!Y^AF:8;:T?/- MZ<' "]&C6[I;T\$0:E%/FC>91G^;QA WZ[IKPW<-5M/%MK^]7>\.Z1WN39@" M]!FXQ*T/[#D%U!+ P04 " #V2:I6*CZ_MHL& M #Q-0 &0 'AL+W=O=J1"STVZ7QU.28WY,9Z20GSQ2EF,A M3]E3E\\8P4EEE&==RS#L;H[3HC,^K]INV/BT@(Q\GC1N31/(W.H#*H> M7U/RPM>.D;J4!TJ_J9,PN>@8RB.2D5@H!);_GLF$9)DB23^^U]#.<"<3&CV9YJ(Z45GU$$)><1E)F[I2T#J"QHH7DPS7OU%+W5?HX/B MD@N:U\;2@SPMYO_Q:_U%K!E8UAL&5FU@[6K0JPUZNQKT:X/^K@:#VF"PJX%= M&]B[&@QK@^&N!J/:8+2KP4EM<+*K@6DL[IQ1*6A^RRN].%C@\3FC+XBI_I*G M#BK15?92)FFAXN-.,/EI*NW$^#,5!%GH-W09?R]3GBK1J]3K-,D4Y[PKIH!JF M&]?.N'-GK#>,_2[&V0?C?KE%!_6-:X.Y.\!Z9@7K M:7SR=L?H+LW78QP2[X0)=L>8&DP(]H,NI[%;?_!O>J MY+*%!X;Y]WG=75O]Q@.!\T^/J1+ 20LA(1% M0+"&I/M+2?>UDKY,GG$AT#5)TAAGZ*]KDC\0]G>;=+6@?:4+"7,@82XDS(.$ M^9"P !(60L(B(%@C' ;+I'Z(:PF!1")CZ(/J*O5*3%$PH+0:0# MHN[+6A=.5]KA]@V:.6RT-F>:S1G3>;>'"^F0!PGS(6$!)"R$A$5 L(:\[:6\ M;:V\;_ /F:1+R0JZ4"U:2)[(=.0S$4KA$\RG2U4?H7LJ<-8F;NU@^XH;$N;, M82?K<7"R$0CVNTN4>8_!6@_+&-JCC44*I-\!)"R$A$5 L(9LATO9#G]*MCZC MO'6U/=RZQU;/-C;NX*2EEVD9&VIPM"[NN\B A'F0,!\2%D#"0DA8! 1KR'FT ME//H5Z>1V@'VG7DA80XDS(6$>:.MZ=SN;3P4?,@!@]'6O-+;F%3"[2ZVO>%3 M!.130ZHG2ZF>_ ^IWC"*JM?L)S&" M,T2XD">JE!;2%ZQ]E:EW8N]0@:0YH#07E.:!TGQ06@!*"T%I$12M&536*J@L M;5 Y*9]1+D-$)LKE[$@^A>*L3-1+3/E)3 N1RF5;@OZ8$58_FB:TX&E2G[9& MD';$O2,(DN: TEQ0F@=*\T%I 2@M!*5%-:V13)F#M9)?2R750ELBD99'UM$8 :-D8E.: TEQ0F@=* M\VN:W=#%%3>/0ONHM)@5E* MY?HK^:?D0M4#]2D^:'$:E.: TEQ0F@=*\T%I 2@M!*5%4+1FT*TJY*:^1/XK M4GS(@NL$E.: TEQ0F@=*\T%I 2@M!*5%YO;O,,RMIU%W;<]&3MA3M4>(HYB6 MA9C_ZG79NMR'=%GMOMEHGYBGCMG2[IJG7EN[;YX&\]U'JV'GFZ&N,7M*"XXR M\BA=,(Z'\H'*YON+YB>"SJJ=) ]4")I7AU."9>BI#O+S1TK%XD0-L-SE-?X/ M4$L#!!0 ( /9)JE:VG8^>]04 (LI 9 >&PO=V]R:W-H965TM@_#/C#2 M<4Q4$E62MA-@/WZ4Y$C6Q6P$G"^)*?&\1WI(47Q%+@Y"?E=; $T>XRA15X.M MUNF[X5 %6XB9>BM22,R9C9 QTZ8H'X8JE<#"/"B.AM1Q)L.8\62P7.3'[N1R M(78ZX@G<2:)V<#WSF#UN='1@N%RE[@"^@OZ5WTI2&I4K( M8T@4%PF1L+D:7+OO?#K- O(:?W$XJ)/?)+N5>R&^9X6;\&K@9%<$$00ZDV#F MWQY6$$69DKF.'T?109DS"SS]_:S^(;]Y("*5_R6'8UUG0(*=TB(^!ILKB'E2_&>/1Q G :YW)H > ^A+ M T;'@-%+ [QC@/?2@/$Q(+_U87'O.;@UTVRYD.) 9%;;J&4_[T*$!QY%71BMD=D0\TZE+("K@1E#%,@]#):__N).G-^ZH&**K0NQ M22Z6C57[I>N.W/%\,=R?HNRLYM!96:V&;%0B&UF178=[EFAR"R$/6$3^N87X M'N2_702M0GT)8HJM,<5\)+%::WAE:WC6UE@QM24IXR%AF@214#QYZ&H*K]47 MZ&CBS.H]9M51RS4OQ7JMM?6*^L)#$JO!&Y?PQE9X?^HM2!(=!]ZG+FZ%P/B$ MR&@^;E"S)NG;,S'%?"2Q&MQ)"7?R\YZYD2(FQ8C117?2HGM)9UZCOZVL>?KR MQ13SD<1J?*AS? ;F D%#T&R;&K1A7C:0DQ==S)J(+:FZHL84\Q' M$JLAGI6(9_9771"(76(F:A("X'MV'T$7XED;,9TW7L8K:Z:^A#'%?"2Q&N%Y M27AN)7R3["'10G:.O?,V5\]M#@Y6_;Y<,<5\)+$:5]>IG(?S@G=;L)/2 "8L M-QR=9L'I&"":PX,]5U_*J&H^EEJ=\XG#JG"Y)&YBUWD7LY,+XN M-8:_\Z5W%#PE/IXZ7A.Y-6UOY)AJ/I9:'7GEV5R[:?L(3 &1V4<*(C9D9PJ6 M_DW;_7O6')SM"7O#QE3SL=3JL"NWY]KM7C&.6/B.6GP]MXD7U;NAJOE8:G6\ ME7US[?[-]@'B&'J*=NJV9L?V!+WAHIH[++4ZW,K>N79_5TR1S?0XT7S#L^F; MK2.WK1X=>VP?-,I;4)&M7RH M:CZ66AURY?IJYF.IU?E6KL^UV[XU;, 8D]!"N&W^ M+CVO-6]#=7^H:CZ66GU=H_)_U.[_BDER5"TJ=2YQM,W?97MV;,_4>_$"U?UA MJ=4I5^Z/VMW?)WCVUH05BWEA)^>VY>OZ"F=/UALTJN?#4JN#/EFGLWN^,ZM. MY#^RRI=QC4=9B41+%NAB.?4S1/DW4;7EJ;*N4MDS]U[HPUWI0[626&KU-JRL M)+5;R0\\X1HN/_*]&?EO$LV2!VZFB=TC4]M6TCEMKKS8$_:&C6HLL=3JL"MC M2>W&\OP#8\A#E&TEV9GCSY^O[$\(IBE\-&M:M8:G78E5VE/[&K9Y^03R*;_Z>@@5P_2(#L2^Y/WB&8%G.% MJK9&5?.QU.J-5ME?:K>_O9Z0:7L[0W.3S,J>KS=K5!>,I5:P'I[L8\NV*=XR M^< 312+8&'GG[=0\CK+8^5<4M$CSK6WW0IL95OYS"RP$F54PYS="Z.="MENN MW'^Y_!]02P,$% @ ]DFJ5GXUW#68 @ 5P8 !D !X;"]W;W)K&ULG57?;]HP$/Y73E$?0&H;2(!L58A4RJ;U@0Z5L3U, M>S#)0:PZ-K4=Z*3]\?./-&,=\+"7Q#[?=]]W=_$EW0OYI$I$#2\5XVH&YB M!BVE!1ZN7Z-_=+F;7%9$X9U@WVBARW'P+H "UZ1F^E'L/V&3S]#&RP53[@G[ MQK<70%XK+:H&;!14E/LW>6GJ< "(XQ. J %$3KVCM+3NJ" M:BRZT)FB)I2IKL46.\(US+"@.6'P?8;5"N4/N( 05$DD*J #+[#X&Q^:[-L21*\EF$1G \Z( MO(:X?PE1+XI@N9A"YZ)[H/T,1=Q6.784@Q,4"\+>QO'*/&SD8/;^[+)D.!B] M3\/=$;9!RS8XR_9YB](TC&],I7-1X3%B'V%X2-R+XN.\PY9W>);WPM"[].]M +\J&3 T&]ZZ1_ M7%#2"DK."II25IOK\;^2DF.2WB@*#RY[A7+C1IJ"7-1<^WO?6MNI>>N'Q1]W M/W+-E[^A7 '#M8$:*M,CZ<>8WVBQ=:-C);091&Y9FLF/TCJ8\[4PXZ/96(+V M7Y+]!E!+ P04 " #V2:I62C2CG6\" #/!0 &0 'AL+W=OYT"6#(?<6%'GNE,?65 M[^NLA(KJ"UF#P)NU5!4U:*K"U[4"FCM0Q?TP"$9^19GPDMB=S542R\9P)F"N MB&ZJBJJ'"7"Y'7L#[_%@P8K2V ,_B6M:P!+,;3U7:/D]2\XJ$)I)012LQ][U MX"H=6G_G\)7!5N_LB56RDO+.&I_RL1?8A(!#9BP#Q64#*7!NB3"-GQVGUX>T MP-W](_L'IQVUK*B&5/)O+#?EV'OCD1S6M.%F(;_JL - GL. L .$^X#A,X"H T1.:)N9DS6EAB:QDENB MK#>RV8VKC4.C&B;L7UP:A;<,<2;Y(@V0B+PB"]B : #73!:"N1J?3L%0QC6Y M@7O34'Z&?K?+*3D].2,GA ER4\I&4Y'KV#>8C*7TLR[PI TY%#_A3OHXA>2?BH9!(>)9Q1=4&BP3D)@S ZD$_Z[_#P2#I17]C(\0V?X9O" M&I2"O"_L]QE4*U _#I7J*)5MY"M=TPS&'G:J!K4!+WGY8C *WAW2^9_(GJ@> M]JJ'1U6G^$\5MB:^8E.2U+U?4.?D,Z,KQIEY.-]_:+_V?WY;D3;,R(6QDVB3 M#-X&0>QO=I7^[11>1KU/*\#?Z0U,I7 C0Y-,-L*TCZL_[:?2M6O&O?,)3JMV MN/RA:4<=/IV""4TXK)$RN+C$7E?M^&@-(VO7@2MIL!YN6^+$!64=\'XML0L[ MPP;H9WCR&U!+ P04 " #V2:I6T;:T5 D# ":"0 &0 'AL+W=ON$'S%LQ-X[494L&'M0@V_!T+"4($C EXJ!XF,-8T@2180R M_I:<1O5)!=Q_W[%_UK5C+0LJ8,R2GW$@HZ'1-T@ 2[I*Y"W;?(6RGJ[B\UDB M]"_9E+F60?R5D"PMP:@@C;/B21_+/NP!D*<>8)< ^QC0>0;0+@%M76BA3)_P4G<2"AB&'D$H(R&)+9 1D2O\P3NZV.0C"EN0+8X$@- O('/@Z]C$Z9TE MSB<@:9R("^2[GT_(^=D%.2-Q1NXBMA*8+P:FQ%*4(-,O98\*V?8SLMMDRC(9 M"7*3!1 ]>'D=U(.*7\DK1;'XAMV>T:/>/_A]L-A%ZEJ]>HZXXQ#(5ZJ4VI'^$TWS9:TLCW4DO> MB.R@=*A7HOJ-HFZR$"/ =YY,<--,6(YG M7?-":61]J2MO1';0 +=J@/MZ5]R3?:CE])PC5VJ2[*Y[9(NY=\REP$-]^@OB MLU4FBYV^BE87C&M]KA[%1WCQ*.X)3S3%K07W&ULI99M;]HP M$,>_BA7U12N5YA$"%2 5V+1)ZU31=7MMD@.L)C:S#73[]#L[(:5)8$]O2&SN MSK\[_R_V<"_DLUH#:/*29UR-G+76FUO75)([>*DK((3-E?LB]M/8UQU MK<@[GD+ZUM_%]*H<@T..D^!LP'LJ;TCH7Y/ "\(6GNF?NP=G<,*JY*&-%YV( M-X,E2 DI=H$M>5N%B@@]&\%TXFX<]>+!T-T=8[<8!5%<&;V!BRJXZ"S<1Y[@ MUT#AUJ8H!BU((K!E4Y!4%XV; +9=2I92Y*4^0;9N2E0T%7!,N-'Z6=H(EF)R1]3GI]INR#!O=US2* M3U5_4&4R^(TTZLU74I;HN %MN(.F2OTPJ&NYQ2KR@W9@WWL]/KQ_$0S@.7%6 M*F78XX_7<6<5R"U&D5='=H\./RS5RMX)%'ZWMEP79T0U6]T[[NQI6YN?F/N( M/51?PQ27&3P!4/^*9+#$D-Y-C%64Q?V@&&BQL4?L0FC<+_NZQCL52&. _R\% M'K/EP"Q0W=+&OP!02P,$% @ ]DFJ5KD\H/ V P BPD !D !X;"]W M;W)K&ULK59=<],Z$/TK.X9A8(;6CIW/DGB&IG3H M ]P.O<"S8F]B#;)D)#DI_YZ5[/JFB9L+,WU)+'G/\=D/[6J^4_J'*1 MW)=" MFD506%M=A*')"BR9.5<52GJS5KIDEI9Z$YI*(\L]J!1A'$7CL&1-K[P36'=1IC.*[;!.[1?JUM-J[!CR7F) MTG E0>-Z$;P?7"QGSMX;?..X,WO/X#Q9*?7#+6[R11 Y02@PLXZ!T=\6ERB$ M(R(9/UO.H/ND ^X_/[!?>]_)EQ4SN%3B.\]ML0BF >2X9K6P7]3N([;^C!Q? MIH3QO[!K;:, LMI85;9@4E!RV?RS^S8.>P#BZ0?$+2 ^! R? "0M(/&.-LJ\ M6U?,LG2NU0ZTLR8V]^!CX]'D#950,J/90*6 MS!1P31F&&]E4B@LY&5$1Y;5 4.L_ ;R^0LNX,&\(^O7N"EZ_? ,O@4OXMU"U M83(W\]"2$TY*F+6"+QO!\1."$_BDI"T,?) YYH_Q(3G?12!^B,!E?)+P$]/G MD S>0AS%28^>Y9_#XQ-RDBXAB>=+GN#SD:P8SX'B>-$7GP8_[,>[4W]A*I;A M(J!C;5!O,4A?O1B,HW=]SCT3V2-7AYVKPU/LZ8VT2*RVS\D&.?9(UXFVZ32A M\&[WM1_;)(-A9_-(TJB3-/H?29DJ$2R[1_,6)'51JG1J+/43M=JPC?8DG(VB M YG'-O$@ZI?S-G1J3P;C,:'AZ+'ZEAHN#?72M0; M/^X-9*J6MFGPW6YWHWCO!^G!_B7=-)J+P7\TS36%VO>&4]D(7!-E=#ZAT.EF M]#<+JRH_/5?*TBSVCP7=EE [ WJ_5C1!VX7[0'?_2G\#4$L#!!0 ( /9) MJE8SJZ/+3P( (P% 9 >&PO=V]R:W-H965TNY5QFRO?%\7%=147\HM"-Q92U53@U.U\?56 M 2T=J.9^% 03OZ9,>'GFUNY5GLF=X4S O2)Z5]=4_;T!+INY%WJO"P]L4QF[ MX.?9EF[@$(G=%6F;.UI(;FF9(-438:V>S Y<:AT0T3MHJ/1N$N0YS)?T@# M)"47Y $*8'NZXJ )%26YYEA@*@H@>%7(0D')#+F36N/^8?3I$@QE7)_A^M/C MDIR>G)$3P@3Y6 2^^!B^ MA**'1X=P'Q/49RGJLQ0YON0=ONNBD#MA--[;5]^?/\VB,/QB%"UAS%]+.'&$ MMI7V^22836:9OQ_:>!N5IK,TZ*,.U,:]VOA#M7>@L88']2O:^G%7OS&Y+6,Z M$'(QC29':L>"XGA<;-*+33X4.[A)YT2 &1.7C.0R3*(C=6^CTC0,IT?R_$&O MV'<*;]J&"4TXK!$77$[1GFI[OYT8N77MLY(&F]$-*WPN0=D W%]+;*%N8CNR M?X#S?U!+ P04 " #V2:I6CG/J<;@" %!P &0 'AL+W=ON)EQI2WOJ_C M# NFKV6)@G92J0IF:*HVOBX5LL2!BMP/^OV17S NO.G8K=VKZ5A6)N<"[Q7H MJBB8^C?'7.XFWL#;+SSP36;L@C\=EVR#*S2/Y;VBF=^R)+Q H;D4H#"=>+/! M[6)D[9W!+XX[?3 &Z\E:RB<[^99,O+X5A#G&QC(P^FUQ@7ENB4C&WX;3:X^T MP,/QGOV+\YU\63.-"YG_YHG))MY'#Q),696;![G[BHT_D>6+9:[=%W:-;=^# MN-)&%@V8%!1<&%O<644[7+"F>D/:1 BZ,$#QLBW;)VC!B82F.5TP4S$")0J ML%"8< /?I=:TWX-5?>D@TR/#I:S6)JURF,6QK(31<+E$PWBNKPCVN%K"Y<45 M7 7\#.3E::C]-@WY(G5X\>-ZGFM.GA#=0AW4IA,PV>18/(:[U,$VC $^S#, M@[.$=TQ=0SCX $$_"#OT+-X/#\[("=M;"1W?\ V^EYCV8(T;+@07&QOL$A67 M25? :L*1([2ENYW>A.3)]M")4YMH\*FU>:5TV"H=GE>:_*$DI;(V[OKQN:3Z MQ 3B.F%RES!=>FO:Z$!+;W0DM\,D&G3+C5JYT7FY19V4.\6-04$A38%MJ-EI M R9#8/O =TF.3O4,CB1WF 1AM^11*WGT[EQ *LRS63 ZS8+@.*RG-L-A=*31 M/^@H!:J-:[0:7$G75=6NMKU\YEK8T?J<>GS=DE]HZ@>":H826T..*5'VKV\H M:JINNO7$R-+UK;4TU 7=,*-W"I4UH/U44N]J)O: ]N6;_@=02P,$% @ M]DFJ5GB)WP/3 P +!$ !D !X;"]W;W)K&UL MK5AK;]LV%/TK%UHQ)(!K/?Q(G-D&;,OI"LQ%T*0=AF$?:.G:)DJ1+DG%"; ? M/U*2%3M35+M0/L0BQ7/NY3DBJ:OA3LAO:H.HX2EA7(V+@E:[Q'_65[)TW++5EBFB!75'"0N!HY$_]F[GL6 MD(WX2G&G#J[!3F4IQ#?;^!B/',]FA PC;2F(^7G$&3)FF4P>WPM2IXQI@8?7 M>_;;;/)F,DNB<";8GS36FY%S[4",*Y(R_5GL?L=B0CW+%PFFLO^P*\9Z#D2I MTB(IP":#A/+\ESP50AP _.X;@* !*<".@6@6$1Y0P^,B5EJEY-+2"BQ UH4S! S[IE+!+@_MR'\+%NTMX!Y3#@C)F M[%=#5YO<; 0W*O*8YWD$;^3A![ 07&\4S'F,\3&!:R95SBS8SVP:U#(NB&Q# MQV]!X 6=BH1F]? 0HQ(>5,##$^!!D,']*CE.C^[7B-$I;>YD?-TW^&9&6XPV ML,"81H2UC*T1$!Y#.+G?=\+?"TR6*/^I2'=:2V]WLQNU)1&.'+-=*92/Z(Q_ M_<7O>[]5*=\D6=@DV;PALB./NJ5'W5J/IJDR/4K!3"1+L_[L1MHR#;,IQRBS M)CQ(PM4*I<2X!7]0LJ2,:HK*^IG:WBKO\K#]+*P].!['@3=T'P\=^?&0L#;Y MIKRM=F]CH5\$>^Y!0]"$U8E7![1G((O:0[:_<'1 MWRLA:Y,\]]%NDFS>$-F1.?W2G'ZM.:?N,K4LY^XR39*%39+-&R([LN*JM.*J MUHH[2VF60WG4?Q+\?222+6J:;3&3M42TYWV503FW[Q^LB*OVZS50F\"YPC=) M-F^([$CXZU+XZ[/7 /R;R3^KDE_5KI3:6.>NE";)PB;)Y@V1'1DV* T;U*\4 M\IS[H 5,HN\IE0C[4P95"SY(H:K>=*>UM.=ZTR19./C?L>N_.N;G#<4[4MSW M7JH1[R=.\7)-F,)#)G#Q%Q)Y6:5\/?NYTC?*%OY@YKX'SV9:U:530XGDIK@' MU6*"0NS \S]E3#U9]&P *=^[V.WL2RHQHGD/UEA MRG%P'4"!2]IP\R@W7[&-Y]+IY9)K_X5-BPT#R!MM9-62K8.*B>V?OK5YZ!&B MX0>$N"7$_TM(6H+/'-DZ\V%-J:%9JN0&E$-;-3?PN?%L&PT3KHI/1ME=9GDF M^RX-P@@&<$^9@A?*&P2YA'LFJ,@9Y? @M%&-K9O1#M6MWVJ-=FF&5#<*"Z!F M3\(6"!XQ;Y1B8@5W5#,-IU,TE'%]MG?<>0_W:X;5 M7O \"#J!NCS^$;KI%# MTH<]/TWA].0,3H )^%'*1E-1Z)08FQL7(01.<0AW%R MA#[YG#[%O*/'^W1B*]*5)>[*$GN]X0=ZMWFN&IO57 IC$V.S[X::%:BHO_ZG M2)48V+8\.Q;K5GSDQ5T?K[/H:AA'*5GW0SJ"&EZ.KCO4GO.DJ][:K._ M4$L#!!0 ( /9)JE;"Y%G<5 0 *H0 9 >&PO=V]R:W-H965TET'TPR M@-4DYFSSTOOU-W;2$"#DNFUOOY38F9D\\WAF/-/>AHM'N0!09)O$J>Q;"Z66 ME[8MPP4D5%[P):3X9L9%0A4NQ=R62P$T,DI);'N.T[83RE)KT#-[8S'H\96* M60IC0>0J2:AX&D+,-WW+M9XW[MA\H?2&/>@MZ1PFH!Z68X$KN[ 2L012R7A* M!,SZUI5[.7);6L%(?&.PD:5GHEV92II'LV0IAZH_980YIF$'R3D#RR2U/U4*2FS2":%_?1O<*'[UG'X=>K<%; M*BZ([S:(YWA^!9[1R]6]&CA^0;EO[#5/V!L+'@)$DLP$3\A$\?"1?%UJKM'E M+8B0R4.W,R\SLVUC5J?G>N ZW9Z]+KMR+.,4$GMHFP7:9BW:+"Z&)B[&] DS M6)$K(6@Z!_W<(%]XN@:I\/75AHJH@=$C%>XJ\H15Z Y"/D_9/X OKA*^2E65 M9\TCU!W'<0YVW$$;^O(5D"N*O*H=K M+;\<=T;".QG;(R$H2 C>%C4W6UUGH4'NZ98,(849J\R/X#@__,/,SV1:)1F_ MXU;G?J? WZG%?Y,L8_X$0+"0ZPB'YW6Y:-4>9:W]'SW*=S*V1T6WH*+[XJ/< MNQ[+03U](I5'GE6$O,8WBB)O+LVL'#3(YU0)AMU12+[1> 559':/3SAP#Z+@ M6.9$_7>=78?@_#_W56ZW_L*J$#J%N-33N&_+NTG6LWQG:K& ."O&.@7-!H\C MEL[)UVG,YGD+A.>4M3F5!3I'4R:]TSX\F'K(KXQ>U]M1XOTW)1+98-7>ZCTC M0RIB'#N@1[S%QH*%8,B(>!SCI4.6(#)BJGG)( 7E\_>""Z=U2$TM]-=2LVO' MW/I^[ [O;?1,W]U9<)L^EIS=31[D>6UUJS?\H^7MO:SMT[#K\]PW-GKOG#3- MHZ3QG&8K.(R-8S&WZP?M$R5BU\^Y+VCH?G8^M([SP0TNND?Y<"S7QK3Q#GRV M2U-? F)NAF%)0MUD9\-1L5L,W%=FS#S8'^I!W$R3.S/9%(^.SO%2(C',T*1S M$2 RD0W&V4+QI9DMIUSAI&H>%T C$%H W\\XSI?Y0G^@^/?$X%]02P,$% M @ ]DFJ5B3=$0@) P [ D !D !X;"]W;W)K&ULK59=;]HP%/TK5E9-G=0V(8$ '2 5VGT\M*M@; _3'DQR(583.[,-M/]^ MUT[(^&JT2KR [=QSZ&:4<6?0LVN/96+#'+@"LF.)$P[SLWC>M1U\3;@!\, MUFIK3$PF,R&>S.1KW'<\(PA2B+1AH/BW@A&DJ2%"&7]*3J=ZI0%NCS?LGVSN MF,N,*AB)]">+==)W.@Z)84Z7J1Z+]1/B1$M\RA"G!P]" VF32S))J(1+4Y&8C$2&NT116^C+W>E(*$W.;T%3 MEJH/!H@6,+ZX()^!@Z0IH3PF-S%J94I+:EPB=\^& !3Y=0_9#.1OQ$TGM^3\ M[ ,Y(XR3[XE8*@2JGJLQ*Z/-C<)THRZY6Q=G!G)A^PF%KU]R75P8U6K5LMS8FWIO M?8BM3-%Y_*,I^B"\#A:,*Y+"'"F]JS9N&UGT%L5$B]Q>SS.A\;*WPP3;,9 F M )_/!5[1Y<2\H&KP!G\!4$L#!!0 ( /9)JE9PW_F>" 0 &$0 9 M>&PO=V]R:W-H965T^\LP M6@OYI!:(&I[3)%,7G876^6?'4=,%IEQU18X9C KFD2N\%LGO<:07 M%YVP Q'.^#+1W\3Z%ZP"ZIOUIB)1Q2^LJ[EN!Z9+I45:&1."-,[*)W^NB-@Q MZ+49>)6!5^ N'14H;[CFXY$4:Y!F-JUF7HI0"VL"%V=F5R9:TFA,=GK\16B$ M ,YALN 2STV $5R+E'9=\8(W&BIW#,0,)EI,G^!K7HQ<&D9CO8&3&]0\3M0I M3;Y-\T1L$(%G$7P1&6[;+TS_O,/T$>5?\ D<4,:U@CB#ARS6ZHPZZ?VWA5@J M6D2-'$V!&KC.M KJJ@S*:PG*ASN1Z86"VRS"Z*6]0P35+'E;EJX\ZX)W7';! M9V?@N9X/#Y,;./ETNHN]?%@\^?5^^(6G7HNGKTNM-$4=9_.S[>)+BD*"*)A3 M<$+W+E*>\H6O4-(1 M!GQ&.8T50B[C*19((Y$D7"K(*8("JP'=$'<(>(D@V 'N#[O#\##P?@V\;P7^ ML^0903V2T_X>I\'0;Z%T4",;O ;9>]D:[+'%&.OV>X=!!36HP KJMMK)8PD+ M]@@[]X/0/0PNK,&%K]O+#TK <(]2+^P.6Q@=UJ"'_]'!'NX?[('GMW#*W$8( MW/_]:%<0=JGM#;H^:\&^(V+L".P2S><)C<&49$'2A\"2)Y#$,XKC#^3R]"!4 MN\<^;- $'T):2DT/(KZQ*0#SFFB\UT?#YW.)! MEXL/=C@.7;_E^F2-+C&[,%4W G],\,C\9?O*%(0]-FQ!V$@3LVO3"X0?E< ' MQ*G?#=L2N%$G9I^R'&=Q(&K-KVHMPWI[!@[T,#OR@ MY?YEC:0QNZ9]1U602M^E^)Q354 -+6!%W<=F]+[,V:[D1N>87>BLB#\JP_?5 MSW9%-_+'[/KWMEC>E_%V!&^_LKU&/#V[>%JC>_,!J)S]X IW=JJ^%.6\J&T5 M$;;,=%D UKUU_7Q95HW-]++XIOIF3K@@P1F9NMV 4EF6]6S9T"(O:LA'H:DB M+5X7R.FLF DT/A-41U8-XZ#^5V'\+U!+ P04 " #V2:I6UB/J=!$# #& M"@ &0 'AL+W=O8LQK3[<'TT#4M1,K1^R*!Y&F\)26W MNMU'W3/WZ(;7F)G(<\Z0:[L>>H"USGHZ@]^3X4LIN,!%0HKU MF3R_K2]<^U+6OI"B27B*?AU,76NI,P4ZDWK/MA/'=FT_&EG; X1^2^@_G[#2 MYU?RX2TP^3XB7&&6H 3+\['"A*$MSDK0Q G-,LPXV@"KF17\SL)# FJ0L",@ M&)BV>Y@_:/F#H_Q310C)7[L;[+GK^T[@'X8;M'"#Y\&]K;&#/6,=QS'[X,,6 M/CP*OZC?A:WT]17\#??\/?E8" #L!0 &0 'AL+W=O3_" MZWEJ\0[PA\%.[XV)S>1%RE<;W%4S+["&@$-IK +%WQ;FP+D50AM_>TUOV-(2 M]\C@X:)[D_?^CKL$<+D"T+4$Z+_)<0](7:)=LY<6@MJ:)$KN2/*HE'- M#EQM'!NS8<*>XM(H7&7(,\5O:8!,R7=R)[8@C%0,-$;+[E")7 T+[^1\ 88R MKB\0\+1_Z?:/OMC_%U67) Z_D2B( MXA'Z_#1] >5 CS[3?:S$4(YH*$?D])(O]![H#JMK0#'*1[/IZ)FCVP[9%DD8 M!EGN;_=-CZ"B9)(.J$_>XL%;?-+;,_:#K7:K9 EZU%TGD.[MFX5A?&#N&)2$ MTWC<6S)X2TYZNV6"X26LR%K*\6N0'.UZE<3!@;5C4#:=3,>MI8.U]*2U1VDH MQ[KUMWC,6WIT7&F6)5<'YD90<1IG!^[\O5ZT[R!>\#43FG!8(2^XG*",ZMZ6 M+C"R=>WY(@TVNQO6^!R#L@!<7TELT3ZP'3\\\,4_4$L#!!0 ( /9)JE:9 MM^KMM@, -H/ 9 >&PO=V]R:W-H965T[#SVR;*'U@+V8%V=)'JKX4*P$[NT59LXSFDO$<";J96Q_PS1*'VJ&R^)/1 MO>RLD0[EB?.O>O-Q/;<6F M\H9H6*YE?%0"KC+P4XM/7%$T1>_12L"M(=3+%5JE)%>(Y&OTZ[>2%:"9.KU^ M=63P]HXJPE+Y#DR_/-ZAMV_>H3>(Y>B/A)<2;.7,5L!7_ZL=-]QN:V[N&6X/ M1%PC#U\AUW$]@_MRV/V.QJV[VW>W(4MMJMPV56Z%YY_!.V2@.&2 OF; %%Z- M%U9XNIYV"XP]=SJ9V;MN&"8S)PS#UJQ'UVOI>H-T/\1QF94I470-]S74>,Q( M73E FV1<*/9O=6!B7D,''4KO ]^-\!%SDYD;3'TS<[]E[@\R_P1/KZ*?[._G MVC^A$DP=-SHB;+":.)%KYANT?(-!OK]7&85/M?B8 ?<=U3PE^ON!9D]4_&-B M/ BJ']\WLB QG5N@G:1B1ZW%SS_AT/G%5 HC@?7B#]OXPY$+(SR1P9]X[I%6 M)B.,S5)%+=5HD.IMR=(UR[<5Q7;SPY(-@E\JV4A@O3Q,VCQ,1I9L M')>7P2H(',\L%>[T$WB0[@.)$S@2+T<-PI!:PY"7RC466C\!ARX!C]TF-( ] M)=QIY_W?Q&4R<[USBAWZ!#S<*-R7(F>J%/0*W;-GO9 UZ27/BE)1,5QJP^@7 MBS<26C\7A\X##[<>_T.\TY8B]/&)=B8KY\S+#!\:#SS<>2QY+I4HZXD(FFV@ MOX6T?$>P41N/L=#Z&3BT'GCLWJ,![+;;D1<=-XHF*_>D4;0[@Y>>>F%BV;)< MHI1NP,VYCB YHAXDZXWB136+/7$%DUVU3&#XID(;P/4-AWFLV>CQKAWG%_\! M4$L#!!0 ( /9)JE838>(%C , +,. 9 >&PO=V]R:W-H965TV$G2%0.*PVF7A G'AIM/6 M(K&+[6Z7M\=.0IJVKM7"WK1V,O/GF_%A[.&&BY]R":#00UDP.?*62JTN?5_F M2RB)O. K8/K-G(N2*-T5"U^N!)!9Y506?A@$J5\2RKSQL'IV+<9#OE8%97 M MD%R7)1&_WT#!-R,/>W\?W-#%4ID'_GBX(@NX!76WNA:ZY[P<0A/=8@:AZ@*M":KPKHBBHR' M@F^0,-9:S32JW%3>.AK*S##>*J'?4NVGQI^X H0#U$,?0&=#ZD8UE#T^[]U) M0*^E!"418;/: 'V@9$H+JJBV?7X%BM!"OM!>=[=7Z/G3%^@IH@Q]6?*UU#YR MZ"L-:3[EYPW0FQHH/ +TD8@+%.&7* S"R.(^<;M?0=ZZA[ONODY-FY^PS4]8 MZ<5']+YP10IT\_D.D2H3MH!JA;12,,OF?HSC!,=#_[[+;;&*.$,"4C;>63#HDX2#*]G M1@GNVVGCEC;^1]J"LT5/@2AM MO/$!"L99/]H#ME@%68+MQ$E+G#B)J[6 ^!QUUL+WCU!.0?RPH3K5S)9\*5V6;Z(XGM!)ZV@:?.P#^O0!!%V:(9+O<*2 ]S'T=X M?TI9K,)!'-I'J-^"]IV@;RDC+(>3,/N' (-T#_+0)L1')E'6(F;_O8=DE@P> M[B$6J^-[R*#%&SCQ#O;UEVA2;Q[.J>X4/7>J/Y+83OPXV-; X*S)?O).VNCN MS):L/]@;-9M5G&3V4<.=RHW/F/FG,^,#FN2 V&FSR[NMI/B44GHN;7A*L;)9 M':U6>%MK.^=)R M2K*968Y)?N=&8:YS^E2^H$QJK+GV"R[Z.FA1WY#JCN*KZI(QY4I?6:KF4M\J M01@#_7[.]46CZ9A[2WM/'?\!4$L#!!0 ( /9)JE:BIH)TI , #(- 9 M >&PO=V]R:W-H965T^+[(2UTA(VD>N0K7ZPY1KEQJBL_ M#(+$KQ&AWF)F^A[X8L8VLB(4/W @-G6-^,L=KMAV[D%OU_&%K$JI._S%;(U6 M^!'+;^L'KI[\3B4G-::", HX+N;>+;Q9PE@[&(OO!&]%KPUT*$^,_= /[_.Y M%V@B7.%,:@FD_I[Q$E>55E(,FJ?T@NR[DW M]4"."[2IY!>V?8?;@ Q@QBIA?L&VL4UB#V0;(5G=.BN"FM#F'_UJ$]%S"(\Y MA*U#>*Y#U#I$)M"&S(1UCR1:S#C; JZME9INF-P8;Q4-H7H:'R57;XGRDXM/ M3&( _ &?, J&V+7 $LF)+BXQQ*12ERJ[F^/]^#BU25X!0@%7TNV$8CF8N9+ M1:&U_*P=\:X9,3PR8@0^,BI+ ?ZF.[APZM/>B#7*\-Q3NU)@_HR]Q>L_ M8!+\98OL?Q([B'/2Q3EQJ2]N:\8E^8W,;F0%X'K#Z,9&A8^$P-*Z.!K1Q(CJ M,^9Y >.9_]R/RFERP!IWK+&3]3V56&5 X5%0F?FI"'HB%9$$6RD;N;B/,(!T M61PP)AUCXF3\O,9<)9.N6L),K2 ;6C(:.(5#N+%-$H=VO+3#2YUXWQ%7*:OP M";IT-/(T&L"-3=+ SC;MV*9.ML=2+<4W:HKK$W33\= #N+$%3.UPUQW0H0@;JY0^$$Y.C%%N7RA-3D+*G#0/=7('3>/+UEY0C5+1&W M?"$\'J%;89>LM(LP.AGA_O*#[MNOG4IK8(TG#'MK)[@*PN$A?=KND&U_V4'W M;==EWTH76T>-)N$0SVX8QM& S^]5GS7F*U.4"W76;:ALJKBNMRO\;TVY.^B_ MTQ\$IJK=RS1?$ZI&6Q$JU)XNE&1PE2HVWA3HS8-D:U/C/C&I*F;3+-5'#>;: M0+TOF*ISVP<]0/>9M/@/4$L#!!0 ( /9)JE;<%VZ9,P, (, 9 M>&PO=V]R:W-H965TX8?Q,)@$3O M69J+F95(N;FR;;%*("/BDFT@5WLD"G-8<&1*+*,\(\;2-EN9F'K\\(3C1.I+]CSZ8;$\ SR=;/@:F8W M6=8T@UQ0EB,.TS$WAAI*4O&WO3D83VS'%T1I+"2.@51 M?UNXA335F50=?^ND5L/4@?OCS^SWI7@E9DD$W++T#UW+9&9-++2&B!2I?&*[ M'U +&NM\*Y:*\A?MJF<#WT*K0DB6U<&J@HSFU3]YKQ=B+\!U!P+<.L MZZY M995W1)+YE+,=XOIIE4T/2JEEM"J.YGI7GB57=ZF*D_-?3 +"#KI CZ#$"36X MCF,.,5'7[PM9<*CNH 7Y4+LA!3J] TEH*L[0":(Y>DE8(4B^%E-;JH)T6GM5 MPV\JN#L _TGX)1KA<^0Z[@B]/M^ATY.SKVELI:<1Y3:BW#*O-Y#W"?3[N :. M6%3F/D<1S4F^@KX:JUQ^F4N_Q-NY%TSM;0]_U/!'_\M7GQ$GDN9Q7P55MO%> M!2X.W?X:O*8&SUB#PGI&V5X'ZH_ZD>,&.3X":50Z[BH-QTX_UF^P_B'LV*C4 M/UIIT""#(Y!&I4%7:1"$_=A)@YTY>U'A@TR/ )I5!IVH9XS\/9B MI_4EYQ X,&JMX[]LZP!TSPSQ$5"CVCK#%[G." ^06\?"9LMZ24 =JI$$;A;M M=N@#7P]NS0J;W6H?;9;>]:E1$'@#_-:HL-FI7I@D*4K+0V93'S+F1>A:E^M, M!LIHS0N;W:N_#/."=.T,^]@=*J4U-&QVM$<0X@H]Y&I+0$CS6G3-[6*(W[H; M-MO;=[YY$;I.=X''>. (Q:W78;/9+11;[0':DK0 ?9!66Y-2LJ0IE10.O"0] M7N@,?2NM&V*S'1Y3E'FUPDZW@3T??_Z^CT]VQZI1BF@N%BU2<)[Y*-)%3MC'UV+Z&&OI';SI/6^NV3,52TJ[LY,AYIN&F,5]V3:+7.= M15Y'D)(L2]-/3'&AD[*(9VM;%J;W4FA<6W"]4MS^6:(TNWDR2PX'=V+;^G# MRJ+C6]R@_]&M+5EL8JF%0NV$T6"QF2>+V>4J#_[1X:? G3O:0U#R8,QC,&[J M>9*&A%!BY0,#I^4)5RAE(*(T?H^> .5T;^$K5OY\F7 M!&IL>"_]G=E]PU'/1>"KC'3Q"[O1-TV@ZITW:@13!DKH8>7[L0Y' .)Y'9"- M@.PEX/P-0#X"8N78D%F4=<4]+PMK=F"#-[&%3:Q-1),:H<-?W'A+MX)POOQN M/,)L!A_A1E=&(:S1PJ;E%N'#%7HNI(-[W/N>RQ-R.Z=@7S ME$X@9=48>CF$SMX(G<.MT;YU<*UKK/_%,Y(Q:R>=?"IM'OG.W^!;:"]J(?O0I[#!JK?""ZK:];Z2/2F&QAH%*Z.Z MWO/8TZ:!:VZUT%OW_!].8:%,KSU\H'(/A3]YK=A#,A]Y M# K942,IM-LX7PZJ$'_X#]/I-,*+V+DOSI2NT XD-4:9G MGRD?.\S:8'C3Q79],)Z:/VY;>I[0!@>Z;PRU[&B$ -.#5_X%4$L#!!0 ( M /9)JE9CF,O$J@( - & 9 >&PO=V]R:W-H965TWT"XF!)NVP'E8$S;J>%9N)A>K#E>2X^_>C9,=+ M4R?;81=+HOBH]TB)'M=*OYH"P))WP:69!(6UY4T8FJP 0Y#@83087(2",AFD8V^;ZW2L*LN9A+DFIA*"ZE]3X*J>!,-@:WAB MZ\(Z0YB.2[J&!=CGW>,@GP< 1 @Z9=1$H#AN8 >8*:X\5]2M[Z#@&25L4JT8&0@F&Q&^M[F80> MC&B9=%1=6XRY# MG$T?E04R')(OY$%F2@"9@R:+@FI TXM/ N3D=@,::TH>*['$?;5J7 QY-KAK M%9DI4588Z1'OW?U\04[NP%+&S2E&,8UK.S!)?A2J,E3F9AQ:E."(A%E+=]K0 MC0[0C.V,=+#L2;4L,R4F_S3MN\8V4$WODVA?@8C<7\,;DF)VQK/NW+9G/:R)_F M'O0FO1Q=(]'-KL0^IR3IG#X(23HAR5$A+P07N!N'4:I8Y M"%[Z[/6L&8@JW7,W!/62I\6S^9OBY).8J^L]O3TN%_UJ1YW:T5&U=XQ7COG_ M*]SHE'"G.0C0:]\S#3*KI&W>26?MVO*M[T9[]BFVZZ:[ M_@G3]'I\!6N&->*PPI"#\TNDI)O^V2RL*GT+6BJ+# P LA0 !D !X;"]W;W)K M&ULM5C;;N,V%/P50@6*72 ;77R)D[4-Q%9OP+H; M)&WWH>@#+1];;"122U)V"O3C2U**;+DRLPZ8EUBD.,-SYDPHDN,=XX\B!9#H M*<^HF'BIE,6-[XLDA1R+2U8 56_6C.=8JB;?^*+@@%<&E&=^% 1#/\>$>M.Q MZ;OCTS$K948HW'$DRCS'_)\99&PW\4+ON>.>;%*I._SIN, ;> #Y>W''5N+=AC=Q.- ,^(/ CMQ\(QT*DO&'G7CE]7$"W1$D$$B-056 M/UN80Y9I)A7'UYK4:^;4P,/G9_8?3?(JF246,&?9%[*2Z<0;>6@%:UQF\I[M M?H8Z(1-@PC)A_J)=/3;P4%(*R?(:K"+(":U^\5,MQ % \70#HAH0'0/Z)P"] M&M [!@Q/ /HUH&^4J5(Q.L18XNF8LQWB>K1BTP]&3(-6Z1.JZ_X@N7I+%$Y. M?V424!BA#^@!-JJ>$MU#P;@D=(/>Q2 QR03Z#9YDB;/W8U^J*3703VKZ644? MG:#OH06C,A7H![J"50<^MN-59*<)?)5KDW#TG/ LLC(N,+]$O? "14'4ZPAH M_NWPJ"L?.SR&Y!2\E4VO*5_/\/5/E:_,E\ 16Z//!7!LRE874G15JV(;&#:] M)&RGX=C?'J9OG4^O0C>BP E,/+7,".!;\*;??Q<.@X]=8C@B:TG3;Z3I6Z69 MFW\>)#(>M;(7IGWJ,E[].;6^PG8AN,B)0F*B9"<+$M-=QGRR+6Q-;979AX&^^UC MX,*2MTG"2K4G4=Y,@&SQ,@.KT>RSGNLTIVRQ*[:VX@<;]M#=Q[;FLGUM[=.= M+8YMPG;&T3[CZ*T]=LXWUQ[-V=YSR1:[8FM78G_:".W'C?-7NIKP: V[.O:@ MTU-']YPG7+@_3H1.SA.?&-U\^$2VL$*W0H"RHZN/KSV^LWWI]/3ABJU=F_WY M([0?0%[ART&71T;'OG1TT*A%>F'.*GG_X#)'V6UC+L4$,FM;=S*OKLSU-=9NWP'Q#J$ 9K!5E<'FE N/5!5G5D*PP5T9+)I7GS6,* M> 5<#U#OUXS)YX:>H+FFG/X'4$L#!!0 ( /9)JE:[[M'J-00 )<0 9 M >&PO=V]R:W-H965T4@1)VST4>Z"EL2U$$K4D';?_?H>4(MNRQ&X"'VR+Y+S1F^&3 M../)CHM'N0%0Y$>1EW+J;)2JKEQ7)ALHF+S@%92XLN*B8 J'8NW*2@!+#:C( M7=_S1F[!LM*93N,_6&Z4GW-FD M8FMX /6UNA,X$@&KJ7--KQ8TU@!C\2V#G3RX)CJ4)>>/>O I MG3J>9@0Y)$J[8/CS!'/(<^T)>?S;.'7:>VK@X?6S]X\F> QFR23,>?YWEJK- MU(D=DL**;7-USW=_01-0I/TE/)?FF^P:6\\AR58J7C1@9%!D9?W+?C2). #0 M8 #@-P"_"X@& $$#"+J < 0-H#09*8.Q>1AP12;303?$:&MT9N^,,DT: P_ M*_6^/RB!JQGBU.PS5T"H3_X@#[#&_53D'BHN5%:N<>XS"N^!Y2#)\B>Y9>(1 MQ^\6H%B6R_>X_O5A0=Z]>4_>D*PD7S9\*UF9RHFKD)GV[R8-BWG-PA]@$9!; M7JJ-)'^6*:3'>!0 M9@G+R?=;*)8@>FE9/>A7[I6L6 )3!]^I$L03.+.WO]&1]Z%/4F=R=A3LJ UV M]'J!C4ZD$P>Q%W8VX-0J\J,H[-^$<_BSSSJZV7[@Z0OGW9%V&,5C*-H8&OV9SVU'_:O M4J'=Y9 *@WX5=FN' ;N#&N,XU'WY0.VG_:7BR\,WD[CGE? M5E![76$77G1ZB@9QU-V/4ROJ1?% ,4?W10"U5P&O4-Z\<7FBC5&7. M3JHKA..9_6E*[<EB)7I%YG4IWLZVG?*-Z0\[\W/= M0??,7]/QU1P3VK<2XXIINMW]K>N6'7N8=59*DL,*:6"5@Z(3=1=<#Q2O3%^X MY K+%W.Y 9:"T :XON+8&S8#?8/VOXC9?U!+ P04 " #V2:I69"/Y;S " M #4! &0 'AL+W=O;)'B.3JD M2!6M=7>^1B1X:+3QDZ0FVIX+X5XF/ -X6MWUM#R&1I[5TP+JI),@Z"4..* M H/DWSW.4>M Q#)^])S)<&0 [J\?V3_$W#F7I?0XM_J[JJB>).\2J' M=YJN M;?L)^WS>!+Z5U3Y^H>UCQPFL=IYLTX-90:-,]Y'2&JH]O#<55G_C!6?H*LG&6/Z-G_O_P[ 4Y^5#I//*='N";-M:1^B5C]]KUO\5]KF0=9=K= M7IC(^S(=I86XW\^C"SK;CQDB.JEBKT$:=)LX-QY6=F>H*^C@'49S&CORB7_& M(]M-V!^:;MZY7!ME/&A<,^5X])8;WG4SU!EDM[$-EY:XJ>.RYF<'70C@_;7E M5NR-<,#PD)6_ 5!+ P04 " #V2:I6,=_3X54" W!0 &0 'AL+W=O MV!IT224%P]^SDHU).R$OL7:UY^S9S:Z*3IL'VR(Z>))"V6G4.K>Y MC&-;M2B9/=4;5'2SUD8R1Z9I8KLQR.H DB+.DN0\EHRKJ"R"[\:4A=XZP17> M&+!;*9EYGJ/0W31*HU?'+6]:YQUQ66Q8@W?H[C5\XN-#P&^.G=TY@Z]DI?6#-Z[J:91X02BP<1%RB$)R(9?P?.:$SI M@;OG5_:OH7:J9<4L+K3XPVO73J.+"&I-J4#CO M%6;O*,SA6BO76OBB:JS_Q<=4[5AR]EKR/#M(>,W,*>3I!\B2+(?[NR4<'YT< MX,W'5N:!]^P=WB56*%?4MH$[VU=K3W$>*/S"/)9IFB?911$_[DE]-J8^.YB: M!I3&3]' &(.J>@9GF+*"^<'?IZ)GF^RJR-/]$B:CA,E!"=35JAW;NB_I9%_I MZ>3S?WGCG6&6:)JPLA8J/V+]7(_>\568]-C0^@.[7FM9C,'R"\:TL7P!02P,$% @ ]DFJ M5FZWX+&A P U@\ !D !X;"]W;W)K&ULK5?; M;MLX$/T50EL4+=!$]TNRMH'$QK8%>@F:MONPV =:&MM$*=$EZ;C=K]^AK,JV M[#"-XA=;E'C.S!GBD,/!6LAO:@&@R8^25VKH++1>7KJNRA=04G4NEE#AEYF0 M)=4XE'-7+270H@:5W T\+W%+RBIG-*C?W5IM6<33F0*Z5 M*YPV@1FKF(8SCN4OCDQY,0%-&5PE>49813XOQ$HAN1JX&C,W M\=V\R?)ZDV5P3Y;OJ3PGH?^*!%X0'H&/[? )Y"T\V(>[6*^V:$%;M*#FB^[A M>RV%4H268E7I8V(VZ*1&&Q_=C=(T"S'QN]V +9C&3E>ZR13D2V)]WW MMB>W]R0K-?#=Y8MC+^@LGSU(7Q$[[8=_,CLU5/LGD1_$7476B'T5;7L#W]X< M/."I!KTK(@K3[F%JC]%7P[8[\.WMP;AN/+$#?,?4 X:R,SW64:=BV]>];2-\ M>Q_QH*6.=!)Q$&3=U;-&Z:MBVW+X]I[C49Z*CYQ14=8]<>T1^RK:-@V^O6MX MR%/)0>L6)VETL#&&ULE95=;YLP%(;_ MBH5ZT4I;(4 @5 2I'^K6BVU5/[9K)QR"58,SVY1NOW['AJ)L=1KM)OC8Y[S/ M>P@<\E[()U4#:/+2\%8MO5KK[9GOJW4-#56G8@LMGE1"-E1C*#>^VDJ@I2UJ MN!\&0>(WE+5>D=N]6UGDHM.J:ALI?%\!%O_1FWNO&'=O4VFSX1;ZE M&[@'_;B]E1CYDTK)&F@5$RV14"V]\]G916;R;<)W!KW:61/3R4J()Q/B_PQC/W.CMQ944U+7(I>B)--JJ9A6W55J,YUIH_Y5Y+/&58IXNO0@.91>0C^21$ MV3/."6U+\DW7(,E-JVF[82L.Y%PIT K3KCO=28P;(37[3>VM%94C]?@*-&5< MG9 CPEKR4(M.H;3*?8V^#=U?CQXO!H_A'H]?J#PET>P#"8,P(H_W5^3XZ.1O M&1_;GGH/I]Y#JQOOT;T#\]26V"@V8+1=U@:)Q$J8)_RYB*)@D?O/#G T@:-W MPL*,O5P*'TAB8&3=]H8H_4$L#!!0 ( /9)JE8F!^UE>@( M #X& 9 >&PO=V]R:W-H965T%?S_;"5%H4]A-XX_SOGZ.[>,F M>RY>9 &@T&M)F9P[A5+5M>O*K( 2RTM> =,S&RY*K'17;%U9"<"Y%974#3QO MXI:8,"=-[-A*I FO%24,5@+)NBRQ>+L%RO=SQW?>!Q[)ME!FP$V3"F_A"=1S MM1*ZYW8N.2F!2<(9$K"9.S?^]2(V\3;@-X&][+61R63-^8OI_,CGCF> @$*F MC /6GQTL@%)CI#'^MIY.MZ01]MOO[M]L[CJ7-9:PX/0/R54Q=Z8.RF&#:ZH> M^?X[M/E8P(Q3:7_1OHWU')354O&R%6N"DK#FBU_;?>@)_.B$(&@%P?\*PE80 MVD0;,IO6$BN<)H+OD3#1VLTT[-Y8MRPN4>A?H, +P@'YXG/Y$K).'GR4NWJ'NFT*NFT*K%]T MPN\FRT0-.UU' $6;*S+Y'PHU\9\8LU-7>U2/X@"/W%W M_92.HV;Q9-H%?0 /._#P4_"5 &EH=YC6@/@&,<[&&2\K4,2"5_A-%Z4:/*+& M.NX!3;S9U0'U<=#4C^-AZJBCCCZEMK=MB"@Z6FPVB0^ CF.B'O0'GKCCB;_F MZ=_Y"_3 658+H;=NB#,^/O!9- T/2 >BID'@';"ZO>HV+ZLNC2UA$E'8:)UW M>:5M1/-:-1W%*UOP:Z[T\V&;A7[@09@ /;_ANNC;CGE#NK^,]!]02P,$% M @ ]DFJ5K0:7'\: @ N00 !D !X;"]W;W)K&ULC51-;]LP#/TK@D\;T$7^:-:B< PT:8?UT"%(N^VLV'0L5)8\2:FS?S]* MWJD2>6]TB^F ;#DT II%E%C;7=#J2D;:)F9J0XDGM1*M\RB MJ7?4=!I8Y4&MH&DRNXA+4F9M^V3/]>@E#](DJBHV/# M=XUU#EKD'=O!$]COW5JC14>6BK<@#5>2:*@7T6URL\IG'&0[6(8B<(!)36,3!<7F$%0C@BE/%KX(S&*QUPNC^R?_&Y8RY;9F"EQ$]> MV68174>D@IKMA=VH_BL,^)L\4U9(,FA2[3=PD?F9Z1++D@:9QF)_2L_A^>OB,G&^N6 M>;[+,WSW=0V^ Z=UVS LY@9*)4LN.'-]>D'6H$N0]E0)PQ5)T.SF[;6(9\EU MDM/7:68GPS"/,2QD0"==T(+>^>$PI%1[:4.=1^\X?[>^[=[XESB788S^TH2A MQBKNN#1$0(V4\>P*NUJ'00F&59WOM:VRV+E^V^#; MH%X'FML-\&PUTPOE;% M'U!+ P04 " #V2:I6&@4T4SL$ W%0 &0 'AL+W=OJ& Q3DH3?PP"+I^RKCP!KW\VD@- M>C(S"1I[U%M?>."SN;$7_$%OP68P!O-Y,5+8\ZLH,4]! M:"X%43#M>]?TZH9>6$ ^XPN'E=YJ$TME(N6C[=S%?2^P.X($(F-#,/Q9P@TD MB8V$^_BK#.I5:UK@=GL=_4-.'LE,F(8;F?S&8S/O>Q<>B6'*LL0\R-7/4!+J MV'B13'3^GZS*N8%'HDP;F99@W$'*1?'+GLI$; %H^Q5 6 +";P6T2D K)UKL M+*=URPP;])1<$65G8S3;R'.3HY$-%_88QT;A*$><&?PB#1#:):?D3L0P,1 + MT)J\NP7#>*+))W@R&4O>XX3/XUOR[OOW/=_@NA;M1^4:PV*-\)4U;B$Z(V%X M0L(@I#7P&S?\GJDSTJ(YO+4+]Y%M13FL*(=YO/8K\3Y*,3O]!"HEMTBXCHX3 M;POK2B]8!'T/*T>#6H(W^.$[V@U^K"-7!.OFP6Q1+0?=H/CK^.4W*&/91==^_(SQW$+&156. M0$4XC(_/.I[.)0[E602CX1;1X"SHTGJ>%Q7/B__@GH2X82*E;<_(>"Z5.356 M[D,F'LGO')(X?W@]Y&/M;SG&=@).JKH928= \1PSW@6.U.>GL MV;_+>L/OWL^Q?#=>F;K-\E[UH'7D,N81&;'G\HKB(N(+EM02[>ZY>%K/LR%W MO>WD[TT?)1/N6FG4>S<5;3>G&X].W2;]T+?@,MQV4;1?*8I& M_:^_]57+?E*\9VK&A28)3#%\<':.ZE7%5[JB8^0B_] UD<;(-&_.\6$"RD[ M\:F49MVQW\ZJ;Z6#?P!02P,$% @ ]DFJ5KZSD63% @ '0D !D !X M;"]W;W)K&ULK59K3]LP%/TK5H8FD("D>;5B::31 M"@VI3 C&]F':!S>Y;2T<.[/=%J3]^-E)L-('&4S]TOIUSCWG7ELWR9J+1[D M4.BIH$P.G852Y87KRFP!!9;GO 2F=V9<%%CIJ9B[LA2 \PI44-?WO-@M,&%. MFE1KMR)-^%)1PN!6(+DL"BR>+X'R]=#I.2\+=V2^4&;!39,2S^$>U$-Y*_3, MM2PY*8!)PAD2,!LZGWL7HX$Y7QWX3F M6V-DG$PY?S23ZWSH>$804,B48<#Z M;P4CH-00:1F_&T['AC3 ]OB%_:KRKKU,L801IS](KA9#9^"@'&9X2=4=7W^! MQD]D^#).9?6+UO79?NB@;"D5+QJP5E 05O_CIR8/+4#O-8#? /RW H(&$%1& M:V65K3%6.$T$7R-A3FLV,ZAR4Z&U&\),%>^5T+M$XU3ZE2M O1B=H6N6PU1! MSD!*/9UP-C]3( HTULOH> P*$RI/]-;#_1@='YV@(T08NB&4ZGK(Q%5:CB%U MLR;T91W:?R7T#1;G*.B=(M_S@SWP43=\#)F%^YMP5R?!9L*WF? KOO 5OF]< M88JHM6VRL<]4S1)7+.:-K-+82]Q56WAG(/,N+V2),Q@Z^N%)$"MPTH\?>K'W MJ<-&8&T$G39&2R& *51R8=[)/@^AZ(;",Q YN8P4'J.]AY2/YV?3L# MO=>&VVI>YL-!MX4Y81)1F&EZ[[ROKYJHFW$]4;RL^MF4*]T=J^%"?[^ , ?T M_HSKGM9,3(NT7T3I7U!+ P04 " #V2:I6$2KS:0D# K"P &0 'AL M+W=OO/*E3,&W@[ODV^VW:O&EF0A3<"/:=QGHQ<+H.BF%&5DR/ MQ.8+Y T%-M]4,)7^HDVVMV.(TY72(LF#S3JA/#N2U_Q![ 3X?DV GP?X:=T9 M**UR2#2)^E)LD+2[339[DK::1IOB*+=O9:REN4M-G(Z^"@T(A^@"W?$8)AIB M#DJ9Y=B\_WC% (D9>B!Z):E^0^=#T(0R]0&=(YUQ_1KN Y&7J(4_(M_S6^AY/$3G9Q_^3N.:5HI^_*(?/\W;KLD[ BO%&*2M MV^:N*BU+$:8IK&S74X%ARZ5ZXV;Y2Z+T@O%'8S4E. M5#8N;0\W^]Y1VL;[+ECO[KBT07S0!RL5CBN,L!Y7&B%N=L):E>\;8 .N-$#< M[("U0N_LRZV!5YH4;G:I(X3>W?^3KA"ZNS/ZV#'2S!5SRA5B,#-QWF7'E"ZS MR2Q;:+%,IZ&)T&:V2D\79IH%:3>8^S-A)J)\80>L8CZ._@!02P,$% @ M]DFJ5I#4.!90 P (A0 T !X;"]S='EL97,N>&ULW5C=;MHP%'Z5*%VG M5IH(D#60%9 VI$J3MJE2>[&[RA '+#EVYI@.=KGGV5/M2>9CA_!3']3U8BT+ M:F.?S^<[WSD^(6X'E5YQ>C.G5 ?+@HMJ&,ZU+M]%436=TX)4+5E289!6KP-U/WIR%LHAAXY:1@?.7,73!,)9WJ](HG"FRZG0OPHV#O9D@$ZDRJIHPG7!M&@TXS4&.8K,YW+4L M(P"UEH499(S,I"!6P]JC'AC:*>7\!A[MK_D.]S+?VC>[:Z(9&D'UT-&X"?!O MLSGN;=KX2;Q!R>ZE_K PZ0@[AT:CUXKF;&GGR[P1@+%W<'92EGSUGK.9**A+ M_M$!1P.R]@OF4K$?)AJTRM08J J#>ZHTFVY;OBM2WM*E7K?3,L;CO+ X_U,^?30? MAV':^EZDC_KT41_GY4/&]H/%\?NDYO)GFJ9QG"181<=CKX(Q5K:T#\=0./-/7O-A8'/+!=P'H' MXOOC0$_Y?>(8=A73ACW!.)*F& *]Z._1)$&JD\#'OS_84Q+':>I' /,KB&,, M@:<11S %H %#XMB^!_?>1]'Z/15M_BLX^@-02P,$% @ ]DFJ5I>*NQS M $P( L !?3T\$MP>:4#M.*2VBZD8_1!2:5K5N %(MB6/ M:(7->=I3W;+T]!;X"O M.DQQ0FE(2S,.\,W2?S+W\PPU1>5*(Y5;&GC3Y?YVX$G1H2)8%II%R=.B':5_ M'EV'U"OKH1FY!]J*PDJMX&1[XEF*K7G_O3UD+]+( MN:RD?9T,NN^5&+!:*EG+GZ*<#,8#9E9Z^Y=NY$^M+*]F1:.K:C*(^A^>16-E M\>'TK(5\XG/3G;%\_L@!9#+(QU#@0C;&=E=TY7-@?!%P<7^TL7HJ*RN:&V[% MET9OUE(MVV+@*4;.8W1Q>/OL@WC>_)\PZL5"%N)&%YM:*-O'L1%5"ZC,2J[- M@"E>B\G@[1)VI4KV65D($KM5?5%P;?ND<.O;LG]J"[A.#)MS"3\TMV4'?CC( M:ZU*H8PH&7PSNI(E<)3L3UYQ50CF0,8(9'Q$R']C!S)!().C0,Y:'/BK YDB MD.D1(;U(9@AD=DS(Q(',$RSD65Z_CC#71 >63<=V!FR02JXAT7O]G3V ML6W7*#]_=S$QVT0'UDT_DH^!\TY +7OAPP03D1@FZNJVT+5@#Z+I6Z-+B.DE MHO!+U IF)I9=JOLHUAHR>K5T$3&Y1!1VB5J]?-&ZW,JJZEK?5[N"8-YZ23AF MF(A",5'KF)[L3JOE$"8Q-;N3?.Z.-C&FF)A",5'VWB2?^ ^7#?-*3.&5*._8 M2C&'C%$)XW;F&)W!4.@DE(IYB7>,Z22FT$D@&6.?GEQ,S"PQA5E"&9D?32XFYI^$PC_!///&72S'_)-2^">$.70K M/<4LE%)8*(3I#4@I9J&4PD+!K-WMZ2EFH93"0L&LW<-$=W(H+!3$3%U,S$(I MA86"DPLOFIB%TJ/.@;QH8A9*CSH'\J*)62BEL% 0TXLF9J&4PD)!S,S=#<4L ME%%8*(B9NYB8A3(*"^U.?-O!OJYY\^K*,L,LE%%8*#CU=;M0AEDH(YD+.5-? M&.CEC'\V[A; !EFH8QD+N1A=E^@?1K+/KF8Z!L%Q'L\;8*\7#9B"3QL MNG$Q,0ME1]OR@:186!<3LU!&LN^S%W/(_O':)F:AC&3O)[#J<>-A8A;*2/9^ M]F,.V;W[N@MFH9QD+2ZT...]E8-9*"=9D0MANJE'CEDH)UF1"V&ZJ4>.62@_ MZHJ6T3LU!.8B%_^[0;V+FL#'-WUW+TS382"WU<./P%ZF)B M%LI)+/0!<_BK]EU,S$(YB87V8,Z@\-)-/7+,0GEGH5%WL;F\*,5"*E'>PRT, MG"]X53PTK/WHWYQ*L_9]AL6FJJ[AW%=UIWGY]A;TVQO&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E M;'/-VDM.XT 4A>&M1%X E;JO0(LPZ@E3Q :L4'F()(Y<;@&[[R@,DF/UH"?( M9V25+5__HT]6V8\O9=\.N^Y8M[M3G7T>]L>Z;+;#J;^=T3P]WLZ M@GH+@=Z">@N!WC)ZV2;06U!O(=!;4&\AT%M0;R'06U!O(=!;4&\AT%M0;R'0 M6U!O(=!;46\ET%M1;R706U%O)=!;1YLE!'HKZJT$>BOJK01Z*^JM!'HKZJT$ M>BOJK01Z*^JM!'H;ZFT$>AOJ;01Z&^IM!'H;ZFT$>MMHLYM ;T.]C4!O0[V- M0&]#O8U ;T.]C4!O0[V-0&]'O9U ;T>]G4!O1[V=0&]'O9U ;T>]G4!O'WVL M)-#;46\GT-M1;R?0VU%O)]#;46\GT#M0[R#0.U#O(- [4.\@T#M0[R#0.U#O M(- [4.\@T#M&/YL0Z!VH=Q#H':AW$.@=J'?\I-YU^-J7>NWY7N-/03])]7"^ MMUP??UE^GT2<%Q>7M+2;-DVN MMOGGV+A^7@1J8S&YV&T$,I\<]\15X^-1WE"P M+Q.&E>\#7L_=/%((34V36QO2M>WR+K9M64S/+<5R?XDO>G3+95-1[:I-EX^4 MT0>R=5P1I:XM=T6/]B>G?,.T^^0'YX]E]@7FG;?!^9@G%NCW<6\C&4Y/?2Y$ M(37[7_$],9<^^/UHF'9-]0^S\_4^N; >YQ'9^#C\CC_.^+W^+_L0('U(D#X4 M2!\:I \#TLN]<^L_CA^?96>;_BV?C?\17+P 4$L! A0#% @ ]DFJ M5@=!36*! L0 ! ( ! &1O8U!R;W!S+V%P<"YX M;6Q02P$"% ,4 " #V2:I6V"/E1>\ K @ $0 @ &O M 9&]C4')O<',O8V]R92YX;6Q02P$"% ,4 " #V2:I6F5R<(Q & "< M)P $P @ '- 0 >&PO=&AE;64O=&AE;64Q+GAM;%!+ 0(4 M Q0 ( /9)JE;7:;BIO@4 ,X> 8 " @0X( !X;"]W M;W)K&PO=V]R:W-H965T&UL M4$L! A0#% @ ]DFJ5MIR)"K4 @ 8 D !@ ("!;14 M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]DFJ M5CEJ>U_K!P #R0 !@ ("!!"4 'AL+W=O&PO=V]R:W-H M965T&UL4$L! A0#% @ ]DFJ5BRO:"C3! Q L !@ M ("!F#8 'AL+W=O&UL4$L! A0#% @ ]DFJ5D+&PO=V]R:W-H965T&UL4$L! A0#% @ ]DFJ5DL=U..C @ K04 !D M ("!3T\ 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ ]DFJ5I;ZK":" P FP@ !D ("!7EL 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]DFJ M5BB(\R2\ @ Z 4 !D ("!YV8 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]DFJ5N^F,? 0! R @ M !D ("!%W$ 'AL+W=O=0 M>&PO=V]R:W-H965T&UL4$L! A0#% @ ]DFJ5C3>A[@. P 90< !D M ("!$GP 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ ]DFJ5@7)/B=Y @ 5P4 !D ("!DH8 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ ]DFJ5B4T M-F:5 @ U04 !D ("!'Y$ 'AL+W=O&PO=V]R:W-H965TB6 !X;"]W;W)K&UL4$L! A0#% @ ]DFJ5N">"VR1 @ @ 4 !D M ("!I9H 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ ]DFJ5K:=CY[U!0 BRD !D ("! M*Z< 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ ]DFJ5M&VM%0) P F@D !D ("!S+( 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]DFJ5G^\?UAW @ =@4 !D M ("!:L8 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ ]DFJ5G#?^9X(! 81 !D ("!X] M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M]DFJ5IFWZNVV P V@\ !D ("!]]H 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]DFJ5MP7;IDS P M @P !D ("!@N8 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]DFJ5N#'\0+> P LA0 !D M ("!1>\ 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ ]DFJ5C'?T^%5 @ -P4 !D ("!+?H 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]DFJ M5B8'[65Z @ /@8 !D ("!,@,! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]DFJ5KZSD63% @ '0D M !D ("!I@P! 'AL+W=O&PO=V]R:W-H965T(2 0!X;"]S='EL97,N>&UL4$L! A0# M% @ ]DFJ5I>*NQS $P( L ( !718! %]R96QS M+RYR96QS4$L! A0#% @ ]DFJ5@_=6DI(!0 12X \ M ( !1A7!E&UL4$L%!@ !- $T $A4 $ XML 81 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 82 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 83 FilingSummary.xml IDEA: XBRL DOCUMENT 3.23.1 html 138 323 1 true 57 0 false 6 false false R1.htm 000 - Document - Document And Entity Information Sheet http://www.ufpt.com/20230331/role/statement-document-and-entity-information Document And Entity Information Cover 1 false false R2.htm 001 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) Sheet http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited Condensed Consolidated Balance Sheets (Current Period Unaudited) Statements 2 false false R3.htm 002 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) Sheet http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) Statements 3 false false R4.htm 003 - Statement - Condensed Consolidated Statements of Income (Unaudited) Sheet http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited Condensed Consolidated Statements of Income (Unaudited) Statements 4 false false R5.htm 004 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited) Sheet http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited Condensed Consolidated Statements of Stockholders' Equity (Unaudited) Statements 5 false false R6.htm 005 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited) Sheet http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited Condensed Consolidated Statements of Cash Flows (Unaudited) Statements 6 false false R7.htm 006 - Disclosure - Note 1 - Basis of Presentation Sheet http://www.ufpt.com/20230331/role/statement-note-1-basis-of-presentation Note 1 - Basis of Presentation Notes 7 false false R8.htm 007 - Disclosure - Note 2 - Acquisitions and Divestiture Sheet http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture Note 2 - Acquisitions and Divestiture Notes 8 false false R9.htm 008 - Disclosure - Note 3 - Revenue Recognition Sheet http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition Note 3 - Revenue Recognition Notes 9 false false R10.htm 009 - Disclosure - Note 4 - Supplemental Cash Flow Information Sheet http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information- Note 4 - Supplemental Cash Flow Information Notes 10 false false R11.htm 010 - Disclosure - Note 5 - Receivables and Allowance for Credit Losses Sheet http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses Note 5 - Receivables and Allowance for Credit Losses Notes 11 false false R12.htm 011 - Disclosure - Note 6 - Fair Value of Financial Instruments Sheet http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments Note 6 - Fair Value of Financial Instruments Notes 12 false false R13.htm 012 - Disclosure - Note 7 - Share-based Compensation Sheet http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation Note 7 - Share-based Compensation Notes 13 false false R14.htm 013 - Disclosure - Note 8 - Inventories Sheet http://www.ufpt.com/20230331/role/statement-note-8-inventories Note 8 - Inventories Notes 14 false false R15.htm 014 - Disclosure - Note 9 - Property, Plant and Equipment Sheet http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment Note 9 - Property, Plant and Equipment Notes 15 false false R16.htm 015 - Disclosure - Note 10 - Leases Sheet http://www.ufpt.com/20230331/role/statement-note-10-leases Note 10 - Leases Notes 16 false false R17.htm 016 - Disclosure - Note 11 - Income Per Share Sheet http://www.ufpt.com/20230331/role/statement-note-11-income-per-share Note 11 - Income Per Share Notes 17 false false R18.htm 017 - Disclosure - Note 12 - Segment Reporting Sheet http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting- Note 12 - Segment Reporting Notes 18 false false R19.htm 018 - Disclosure - Note 13 - Goodwill and Other Intangible Assets Sheet http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets- Note 13 - Goodwill and Other Intangible Assets Notes 19 false false R20.htm 019 - Disclosure - Note 14 - Other Long-term Liabilities Sheet http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities Note 14 - Other Long-term Liabilities Notes 20 false false R21.htm 020 - Disclosure - Note 15 - Income Tax Sheet http://www.ufpt.com/20230331/role/statement-note-15-income-tax Note 15 - Income Tax Notes 21 false false R22.htm 021 - Disclosure - Note 16 - Indebtedness Sheet http://www.ufpt.com/20230331/role/statement-note-16-indebtedness Note 16 - Indebtedness Notes 22 false false R23.htm 022 - Disclosure - Note 2 - Acquisitions and Divestiture (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-tables Note 2 - Acquisitions and Divestiture (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture 23 false false R24.htm 023 - Disclosure - Note 3 - Revenue Recognition (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-tables Note 3 - Revenue Recognition (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition 24 false false R25.htm 024 - Disclosure - Note 4 - Supplemental Cash Flow Information (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-tables Note 4 - Supplemental Cash Flow Information (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information- 25 false false R26.htm 025 - Disclosure - Note 5 - Receivables and Allowance for Credit Losses (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-tables Note 5 - Receivables and Allowance for Credit Losses (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses 26 false false R27.htm 026 - Disclosure - Note 6 - Fair Value of Financial Instruments (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-tables Note 6 - Fair Value of Financial Instruments (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments 27 false false R28.htm 027 - Disclosure - Note 7 - Share-based Compensation (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-tables Note 7 - Share-based Compensation (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation 28 false false R29.htm 028 - Disclosure - Note 8 - Inventories (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-8-inventories-tables Note 8 - Inventories (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-8-inventories 29 false false R30.htm 029 - Disclosure - Note 9 - Property, Plant and Equipment (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-tables Note 9 - Property, Plant and Equipment (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment 30 false false R31.htm 030 - Disclosure - Note 10 - Leases (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-10-leases-tables Note 10 - Leases (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-10-leases 31 false false R32.htm 031 - Disclosure - Note 11 - Income Per Share (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-tables Note 11 - Income Per Share (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-11-income-per-share 32 false false R33.htm 032 - Disclosure - Note 12 - Segment Reporting (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-tables Note 12 - Segment Reporting (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting- 33 false false R34.htm 033 - Disclosure - Note 13 - Goodwill and Other Intangible Assets (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-tables Note 13 - Goodwill and Other Intangible Assets (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets- 34 false false R35.htm 034 - Disclosure - Note 14 - Other Long-term Liabilities (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-tables Note 14 - Other Long-term Liabilities (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities 35 false false R36.htm 035 - Disclosure - Note 16 - Indebtedness (Tables) Sheet http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-tables Note 16 - Indebtedness (Tables) Tables http://www.ufpt.com/20230331/role/statement-note-16-indebtedness 36 false false R37.htm 036 - Disclosure - Note 2 - Acquisitions and Divestiture (Details Textual) Sheet http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual Note 2 - Acquisitions and Divestiture (Details Textual) Details http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-tables 37 false false R38.htm 037 - Disclosure - Note 2 - Acquisitions - Assets Acquires and Liabilities Assumed (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details Note 2 - Acquisitions - Assets Acquires and Liabilities Assumed (Details) Details 38 false false R39.htm 038 - Disclosure - Note 2 - Acquisition - Pro Forma Information (Unaudited) (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details Note 2 - Acquisition - Pro Forma Information (Unaudited) (Details) Details 39 false false R40.htm 039 - Disclosure - Note 3 - Revenue Recognition (Details Textual) Sheet http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-details-textual Note 3 - Revenue Recognition (Details Textual) Details http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-tables 40 false false R41.htm 040 - Disclosure - Note 3 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details Note 3 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details) Details 41 false false R42.htm 041 - Disclosure - Note 3 - Revenue Recognition - Contract Assets and Liabilities (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-contract-assets-and-liabilities-details Note 3 - Revenue Recognition - Contract Assets and Liabilities (Details) Details 42 false false R43.htm 042 - Disclosure - Note 4 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details Note 4 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details) Details 43 false false R44.htm 043 - Disclosure - Note 5 - Receivables and Allowance for Credit Losses - Receivables (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details Note 5 - Receivables and Allowance for Credit Losses - Receivables (Details) Details 44 false false R45.htm 044 - Disclosure - Note 5 - Receivables and Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details Note 5 - Receivables and Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (Details) Details 45 false false R46.htm 045 - Disclosure - Note 6 - Fair Value of Financial Instruments (Details Textual) Sheet http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual Note 6 - Fair Value of Financial Instruments (Details Textual) Details http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-tables 46 false false R47.htm 046 - Disclosure - Note 6 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details Note 6 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details) Details 47 false false R48.htm 047 - Disclosure - Note 7 - Share-based Compensation (Details Textual) Sheet http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual Note 7 - Share-based Compensation (Details Textual) Details http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-tables 48 false false R49.htm 048 - Disclosure - Note 7 - Share-based Compensation - Compensation Cost (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details Note 7 - Share-based Compensation - Compensation Cost (Details) Details 49 false false R50.htm 049 - Disclosure - Note 7 - Share-based Compensation - Summary of Stock Option Activity (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details Note 7 - Share-based Compensation - Summary of Stock Option Activity (Details) Details 50 false false R51.htm 050 - Disclosure - Note 7 - Share-based Compensation - Restricted Stock Unit Activity (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details Note 7 - Share-based Compensation - Restricted Stock Unit Activity (Details) Details 51 false false R52.htm 051 - Disclosure - Note 8 - Inventories - Summary of Inventory (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details Note 8 - Inventories - Summary of Inventory (Details) Details 52 false false R53.htm 052 - Disclosure - Note 9 - Property, Plant and Equipment - Property, Plant, and Equipment (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details Note 9 - Property, Plant and Equipment - Property, Plant, and Equipment (Details) Details 53 false false R54.htm 053 - Disclosure - Note 10 - Leases - Right-of-Use Assets and Lease Liabilities (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details Note 10 - Leases - Right-of-Use Assets and Lease Liabilities (Details) Details 54 false false R55.htm 054 - Disclosure - Note 10 - Leases - Lease Cost (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details Note 10 - Leases - Lease Cost (Details) Details 55 false false R56.htm 055 - Disclosure - Note 10 - Leases - Aggregate Future Lease Payments (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details Note 10 - Leases - Aggregate Future Lease Payments (Details) Details 56 false false R57.htm 056 - Disclosure - Note 11 - Income Per Share (Details Textual) Sheet http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-details-textual Note 11 - Income Per Share (Details Textual) Details http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-tables 57 false false R58.htm 057 - Disclosure - Note 11 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details Note 11 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details) Details 58 false false R59.htm 058 - Disclosure - Note 12 - Segment Reporting (Details Textual) Sheet http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual Note 12 - Segment Reporting (Details Textual) Details http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-tables 59 false false R60.htm 059 - Disclosure - Note 12 - Segment Reporting - Net Sales by Market (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details Note 12 - Segment Reporting - Net Sales by Market (Details) Details 60 false false R61.htm 060 - Disclosure - Note 13 - Goodwill and Other Intangible Assets (Details Textual) Sheet http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-details-textual Note 13 - Goodwill and Other Intangible Assets (Details Textual) Details http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-tables 61 false false R62.htm 061 - Disclosure - Note 13 - Goodwill and Other Intangible Assets - Changes in Carrying Amount of Goodwill (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-changes-in-carrying-amount-of-goodwill-details Note 13 - Goodwill and Other Intangible Assets - Changes in Carrying Amount of Goodwill (Details) Details 62 false false R63.htm 062 - Disclosure - Note 13 - Goodwill and Other Intangible Assets - Definite-lived Intangible Assets (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details Note 13 - Goodwill and Other Intangible Assets - Definite-lived Intangible Assets (Details) Details 63 false false R64.htm 063 - Disclosure - Note 13 - Goodwill and Other Intangible Assets - Future Amortization of Intangible Assets (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details Note 13 - Goodwill and Other Intangible Assets - Future Amortization of Intangible Assets (Details) Details 64 false false R65.htm 064 - Disclosure - Note 14 - Other Long-term Liabilities - Other Long-term Liabilities (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details Note 14 - Other Long-term Liabilities - Other Long-term Liabilities (Details) Details 65 false false R66.htm 065 - Disclosure - Note 15 - Income Tax (Details Textual) Sheet http://www.ufpt.com/20230331/role/statement-note-15-income-tax-details-textual Note 15 - Income Tax (Details Textual) Details http://www.ufpt.com/20230331/role/statement-note-15-income-tax 66 false false R67.htm 066 - Disclosure - Note 16 - Indebtedness (Details Textual) Sheet http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual Note 16 - Indebtedness (Details Textual) Details http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-tables 67 false false R68.htm 067 - Disclosure - Note 16 - Indebtedness - Long-term Debt (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details Note 16 - Indebtedness - Long-term Debt (Details) Details 68 false false R69.htm 068 - Disclosure - Note 16 - Indebtedness - Schedule of Maturity (Details) Sheet http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details Note 16 - Indebtedness - Schedule of Maturity (Details) Details 69 false false All Reports Book All Reports [ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 28 fact(s) appearing in ix:hidden were eligible for transformation: dei:EntityRegistrantName, ufpt:BusinessCombinationAgreementTerm, ufpt:NumberOfMajorCustomers, us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount, us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred, us-gaap:CommonStockParOrStatedValuePerShare, us-gaap:CommonStockSharesAuthorized, us-gaap:CommonStockSharesIssued, us-gaap:CommonStockSharesOutstanding, us-gaap:ConcentrationRiskPercentage1, us-gaap:DebtInstrumentBasisSpreadOnVariableRate1, us-gaap:NumberOfOperatingSegments, us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired, us-gaap:PreferredStockParOrStatedValuePerShare, us-gaap:PreferredStockSharesAuthorized, us-gaap:PreferredStockSharesIssued, us-gaap:TreasuryStockCommonShares - ufpt20230331_10q.htm 8, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41 ufpt20230331_10q.htm ex_512699.htm ex_512700.htm ex_512701.htm ufpt-20230331.xsd ufpt-20230331_cal.xml ufpt-20230331_def.xml ufpt-20230331_lab.xml ufpt-20230331_pre.xml http://fasb.org/us-gaap/2023 http://xbrl.sec.gov/dei/2023 true true JSON 86 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "ufpt20230331_10q.htm": { "axisCustom": 0, "axisStandard": 24, "baseTaxonomies": { "http://fasb.org/us-gaap/2023": 619, "http://xbrl.sec.gov/dei/2023": 29 }, "contextCount": 138, "dts": { "calculationLink": { "local": [ "ufpt-20230331_cal.xml" ] }, "definitionLink": { "local": [ "ufpt-20230331_def.xml" ] }, "inline": { "local": [ "ufpt20230331_10q.htm" ] }, "labelLink": { "local": [ "ufpt-20230331_lab.xml" ] }, "presentationLink": { "local": [ "ufpt-20230331_pre.xml" ] }, "schema": { "local": [ "ufpt-20230331.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/2023/elts/srt-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-roles-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd", "https://xbrl.sec.gov/country/2023/country-2023.xsd", "https://xbrl.sec.gov/currency/2023/currency-2023.xsd", "https://xbrl.sec.gov/dei/2023/dei-2023.xsd", "https://xbrl.sec.gov/exch/2023/exch-2023.xsd", "https://xbrl.sec.gov/naics/2023/naics-2023.xsd", "https://xbrl.sec.gov/sic/2023/sic-2023.xsd", "https://xbrl.sec.gov/stpr/2023/stpr-2023.xsd" ] } }, "elementCount": 495, "entityCount": 1, "hidden": { "http://fasb.org/us-gaap/2023": 24, "http://www.ufpt.com/20230331": 5, "http://xbrl.sec.gov/dei/2023": 6, "total": 35 }, "keyCustom": 26, "keyStandard": 297, "memberCustom": 28, "memberStandard": 29, "nsprefix": "ufpt", "nsuri": "http://www.ufpt.com/20230331", "report": { "R1": { "firstAnchor": { "ancestors": [ "b", "p", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "document", "isDefault": "true", "longName": "000 - Document - Document And Entity Information", "menuCat": "Cover", "order": "1", "role": "http://www.ufpt.com/20230331/role/statement-document-and-entity-information", "shortName": "Document And Entity Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "b", "p", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R10": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "009 - Disclosure - Note 4 - Supplemental Cash Flow Information", "menuCat": "Notes", "order": "10", "role": "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-", "shortName": "Note 4 - Supplemental Cash Flow Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R11": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "010 - Disclosure - Note 5 - Receivables and Allowance for Credit Losses", "menuCat": "Notes", "order": "11", "role": "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses", "shortName": "Note 5 - Receivables and Allowance for Credit Losses", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R12": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "011 - Disclosure - Note 6 - Fair Value of Financial Instruments", "menuCat": "Notes", "order": "12", "role": "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "shortName": "Note 6 - Fair Value of Financial Instruments", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "012 - Disclosure - Note 7 - Share-based Compensation", "menuCat": "Notes", "order": "13", "role": "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation", "shortName": "Note 7 - Share-based Compensation", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "013 - Disclosure - Note 8 - Inventories", "menuCat": "Notes", "order": "14", "role": "http://www.ufpt.com/20230331/role/statement-note-8-inventories", "shortName": "Note 8 - Inventories", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "014 - Disclosure - Note 9 - Property, Plant and Equipment", "menuCat": "Notes", "order": "15", "role": "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment", "shortName": "Note 9 - Property, Plant and Equipment", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "ufpt:LesseeOperatingAndFinanceLeasesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "015 - Disclosure - Note 10 - Leases", "menuCat": "Notes", "order": "16", "role": "http://www.ufpt.com/20230331/role/statement-note-10-leases", "shortName": "Note 10 - Leases", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "ufpt:LesseeOperatingAndFinanceLeasesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "016 - Disclosure - Note 11 - Income Per Share", "menuCat": "Notes", "order": "17", "role": "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share", "shortName": "Note 11 - Income Per Share", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "017 - Disclosure - Note 12 - Segment Reporting", "menuCat": "Notes", "order": "18", "role": "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "shortName": "Note 12 - Segment Reporting", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "018 - Disclosure - Note 13 - Goodwill and Other Intangible Assets", "menuCat": "Notes", "order": "19", "role": "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-", "shortName": "Note 13 - Goodwill and Other Intangible Assets", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "001 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited)", "menuCat": "Statements", "order": "2", "role": "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "shortName": "Condensed Consolidated Balance Sheets (Current Period Unaudited)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherLiabilitiesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "019 - Disclosure - Note 14 - Other Long-term Liabilities", "menuCat": "Notes", "order": "20", "role": "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities", "shortName": "Note 14 - Other Long-term Liabilities", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherLiabilitiesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "020 - Disclosure - Note 15 - Income Tax", "menuCat": "Notes", "order": "21", "role": "http://www.ufpt.com/20230331/role/statement-note-15-income-tax", "shortName": "Note 15 - Income Tax", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DebtDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "021 - Disclosure - Note 16 - Indebtedness", "menuCat": "Notes", "order": "22", "role": "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "shortName": "Note 16 - Indebtedness", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DebtDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "022 - Disclosure - Note 2 - Acquisitions and Divestiture (Tables)", "menuCat": "Tables", "order": "23", "role": "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-tables", "shortName": "Note 2 - Acquisitions and Divestiture (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "023 - Disclosure - Note 3 - Revenue Recognition (Tables)", "menuCat": "Tables", "order": "24", "role": "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-tables", "shortName": "Note 3 - Revenue Recognition (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "024 - Disclosure - Note 4 - Supplemental Cash Flow Information (Tables)", "menuCat": "Tables", "order": "25", "role": "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-tables", "shortName": "Note 4 - Supplemental Cash Flow Information (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "025 - Disclosure - Note 5 - Receivables and Allowance for Credit Losses (Tables)", "menuCat": "Tables", "order": "26", "role": "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-tables", "shortName": "Note 5 - Receivables and Allowance for Credit Losses (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "us-gaap:FairValueDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "026 - Disclosure - Note 6 - Fair Value of Financial Instruments (Tables)", "menuCat": "Tables", "order": "27", "role": "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-tables", "shortName": "Note 6 - Fair Value of Financial Instruments (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:FairValueDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R28": { "firstAnchor": { "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "ufpt:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "027 - Disclosure - Note 7 - Share-based Compensation (Tables)", "menuCat": "Tables", "order": "28", "role": "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-tables", "shortName": "Note 7 - Share-based Compensation (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "ufpt:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "028 - Disclosure - Note 8 - Inventories (Tables)", "menuCat": "Tables", "order": "29", "role": "http://www.ufpt.com/20230331/role/statement-note-8-inventories-tables", "shortName": "Note 8 - Inventories (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R3": { "firstAnchor": null, "groupType": "statement", "isDefault": "false", "longName": "002 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)", "menuCat": "Statements", "order": "3", "role": "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals", "shortName": "Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)", "subGroupType": "parenthetical", "uniqueAnchor": null }, "R30": { "firstAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "029 - Disclosure - Note 9 - Property, Plant and Equipment (Tables)", "menuCat": "Tables", "order": "30", "role": "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-tables", "shortName": "Note 9 - Property, Plant and Equipment (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R31": { "firstAnchor": { "ancestors": [ "ufpt:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "ufpt:LeasesRightofuseAssetsAndLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "030 - Disclosure - Note 10 - Leases (Tables)", "menuCat": "Tables", "order": "31", "role": "http://www.ufpt.com/20230331/role/statement-note-10-leases-tables", "shortName": "Note 10 - Leases (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ufpt:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "ufpt:LeasesRightofuseAssetsAndLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R32": { "firstAnchor": { "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "031 - Disclosure - Note 11 - Income Per Share (Tables)", "menuCat": "Tables", "order": "32", "role": "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-tables", "shortName": "Note 11 - Income Per Share (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "us-gaap:SegmentReportingDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "032 - Disclosure - Note 12 - Segment Reporting (Tables)", "menuCat": "Tables", "order": "33", "role": "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-tables", "shortName": "Note 12 - Segment Reporting (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:SegmentReportingDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "us-gaap:IntangibleAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "033 - Disclosure - Note 13 - Goodwill and Other Intangible Assets (Tables)", "menuCat": "Tables", "order": "34", "role": "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-tables", "shortName": "Note 13 - Goodwill and Other Intangible Assets (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:IntangibleAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "us-gaap:OtherLiabilitiesDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherNoncurrentLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "034 - Disclosure - Note 14 - Other Long-term Liabilities (Tables)", "menuCat": "Tables", "order": "35", "role": "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-tables", "shortName": "Note 14 - Other Long-term Liabilities (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:OtherLiabilitiesDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherNoncurrentLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "us-gaap:DebtDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfDebtTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "035 - Disclosure - Note 16 - Indebtedness (Tables)", "menuCat": "Tables", "order": "36", "role": "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-tables", "shortName": "Note 16 - Indebtedness (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:DebtDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfDebtTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:BusinessCombinationAcquisitionRelatedCosts", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "036 - Disclosure - Note 2 - Acquisitions and Divestiture (Details Textual)", "menuCat": "Details", "order": "37", "role": "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual", "shortName": "Note 2 - Acquisitions and Divestiture (Details Textual)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2022-01-01_2022-03-31_BusinessAcquisitionAxis-AdvantMedicalMember", "decimals": "-3", "lang": null, "name": "us-gaap:BusinessCombinationAcquisitionRelatedCosts", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "037 - Disclosure - Note 2 - Acquisitions - Assets Acquires and Liabilities Assumed (Details)", "menuCat": "Details", "order": "38", "role": "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details", "shortName": "Note 2 - Acquisitions - Assets Acquires and Liabilities Assumed (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2022-03-17_2022-03-17_BusinessAcquisitionAxis-AdvantMedicalMember", "decimals": "-3", "lang": null, "name": "us-gaap:BusinessCombinationConsiderationTransferredOther1", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R39": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:BusinessAcquisitionProFormaInformationTextBlock", "us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2022-01-01_2022-03-31_BusinessAcquisitionAxis-AdvantMedicalMember", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:BusinessAcquisitionsProFormaRevenue", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "038 - Disclosure - Note 2 - Acquisition - Pro Forma Information (Unaudited) (Details)", "menuCat": "Details", "order": "39", "role": "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details", "shortName": "Note 2 - Acquisition - Pro Forma Information (Unaudited) (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:BusinessAcquisitionProFormaInformationTextBlock", "us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2022-01-01_2022-03-31_BusinessAcquisitionAxis-AdvantMedicalMember", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:BusinessAcquisitionsProFormaRevenue", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "003 - Statement - Condensed Consolidated Statements of Income (Unaudited)", "menuCat": "Statements", "order": "4", "role": "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited", "shortName": "Condensed Consolidated Statements of Income (Unaudited)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "lang": null, "name": "us-gaap:CostOfGoodsAndServicesSold", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R40": { "firstAnchor": { "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31_FairValueByAssetClassAxis-DeferredRevenueMember", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "039 - Disclosure - Note 3 - Revenue Recognition (Details Textual)", "menuCat": "Details", "order": "40", "role": "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-details-textual", "shortName": "Note 3 - Revenue Recognition (Details Textual)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31_FairValueByAssetClassAxis-DeferredRevenueMember", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerLiabilityRevenueRecognized", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R41": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "040 - Disclosure - Note 3 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details)", "menuCat": "Details", "order": "41", "role": "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details", "shortName": "Note 3 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31_ProductOrServiceAxis-ProductMember", "decimals": "-3", "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R42": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2022-12-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerLiability", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "041 - Disclosure - Note 3 - Revenue Recognition - Contract Assets and Liabilities (Details)", "menuCat": "Details", "order": "42", "role": "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-contract-assets-and-liabilities-details", "shortName": "Note 3 - Revenue Recognition - Contract Assets and Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2022-12-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerLiability", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R43": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InterestPaidNet", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "042 - Disclosure - Note 4 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details)", "menuCat": "Details", "order": "43", "role": "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details", "shortName": "Note 4 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InterestPaidNet", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R44": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AccountsReceivableGrossCurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "043 - Disclosure - Note 5 - Receivables and Allowance for Credit Losses - Receivables (Details)", "menuCat": "Details", "order": "44", "role": "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details", "shortName": "Note 5 - Receivables and Allowance for Credit Losses - Receivables (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AccountsReceivableGrossCurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R45": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2022-12-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "044 - Disclosure - Note 5 - Receivables and Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (Details)", "menuCat": "Details", "order": "45", "role": "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details", "shortName": "Note 5 - Receivables and Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2022-12-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R46": { "firstAnchor": { "ancestors": [ "p", "us-gaap:FairValueDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2022-12-31_2022-12-31_BusinessAcquisitionAxis-ContechMedicalIncAndDasMedicalMember", "decimals": "-7", "first": true, "lang": null, "name": "us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "045 - Disclosure - Note 6 - Fair Value of Financial Instruments (Details Textual)", "menuCat": "Details", "order": "46", "role": "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual", "shortName": "Note 6 - Fair Value of Financial Instruments (Details Textual)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:FairValueDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2022-12-31_2022-12-31_BusinessAcquisitionAxis-ContechMedicalIncAndDasMedicalMember", "decimals": "-7", "first": true, "lang": null, "name": "us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R47": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "us-gaap:FairValueDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member_FairValueByMeasurementFrequencyAxis-FairValueMeasurementsRecurringMember", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:BusinessCombinationContingentConsiderationLiability", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "046 - Disclosure - Note 6 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)", "menuCat": "Details", "order": "47", "role": "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details", "shortName": "Note 6 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock", "us-gaap:FairValueDisclosuresTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member_FairValueByMeasurementFrequencyAxis-FairValueMeasurementsRecurringMember", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:BusinessCombinationContingentConsiderationLiability", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R48": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ProceedsFromStockOptionsExercised", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "047 - Disclosure - Note 7 - Share-based Compensation (Details Textual)", "menuCat": "Details", "order": "48", "role": "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual", "shortName": "Note 7 - Share-based Compensation (Details Textual)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-6", "lang": null, "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R49": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "ufpt:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllocatedShareBasedCompensationExpense", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "048 - Disclosure - Note 7 - Share-based Compensation - Compensation Cost (Details)", "menuCat": "Details", "order": "49", "role": "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details", "shortName": "Note 7 - Share-based Compensation - Compensation Cost (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "ufpt:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllocatedShareBasedCompensationExpense", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2021-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:SharesOutstanding", "reportCount": 1, "unique": true, "unitRef": "Share", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "004 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited)", "menuCat": "Statements", "order": "5", "role": "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "shortName": "Condensed Consolidated Statements of Stockholders' Equity (Unaudited)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2021-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:SharesOutstanding", "reportCount": 1, "unique": true, "unitRef": "Share", "xsiNil": "false" } }, "R50": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2022-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "reportCount": 1, "unique": true, "unitRef": "Share", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "049 - Disclosure - Note 7 - Share-based Compensation - Summary of Stock Option Activity (Details)", "menuCat": "Details", "order": "50", "role": "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details", "shortName": "Note 7 - Share-based Compensation - Summary of Stock Option Activity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2022-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "reportCount": 1, "unique": true, "unitRef": "Share", "xsiNil": "false" } }, "R51": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2022-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "reportCount": 1, "unique": true, "unitRef": "Share", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "050 - Disclosure - Note 7 - Share-based Compensation - Restricted Stock Unit Activity (Details)", "menuCat": "Details", "order": "51", "role": "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details", "shortName": "Note 7 - Share-based Compensation - Restricted Stock Unit Activity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2022-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "reportCount": 1, "unique": true, "unitRef": "Share", "xsiNil": "false" } }, "R52": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InventoryRawMaterialsNetOfReserves", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "051 - Disclosure - Note 8 - Inventories - Summary of Inventory (Details)", "menuCat": "Details", "order": "52", "role": "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details", "shortName": "Note 8 - Inventories - Summary of Inventory (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InventoryRawMaterialsNetOfReserves", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R53": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "052 - Disclosure - Note 9 - Property, Plant and Equipment - Property, Plant, and Equipment (Details)", "menuCat": "Details", "order": "53", "role": "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details", "shortName": "Note 9 - Property, Plant and Equipment - Property, Plant, and Equipment (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R54": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "ufpt:OperatingAndFinanceLeasesRightofuseAssets", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "053 - Disclosure - Note 10 - Leases - Right-of-Use Assets and Lease Liabilities (Details)", "menuCat": "Details", "order": "54", "role": "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details", "shortName": "Note 10 - Leases - Right-of-Use Assets and Lease Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "ufpt:LeasesRightofuseAssetsAndLiabilitiesTableTextBlock", "ufpt:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31_BalanceSheetLocationAxis-RightOfUseAssetsMember", "decimals": "-3", "lang": null, "name": "us-gaap:OperatingLeaseRightOfUseAsset", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R55": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:LeaseCostTableTextBlock", "ufpt:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FinanceLeaseRightOfUseAssetAmortization", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "054 - Disclosure - Note 10 - Leases - Lease Cost (Details)", "menuCat": "Details", "order": "55", "role": "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details", "shortName": "Note 10 - Leases - Lease Cost (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:LeaseCostTableTextBlock", "ufpt:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FinanceLeaseRightOfUseAssetAmortization", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R56": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "ufpt:LesseeOperatingAndFinanceLeasesLiabilityMaturityTableTextBlock", "ufpt:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "055 - Disclosure - Note 10 - Leases - Aggregate Future Lease Payments (Details)", "menuCat": "Details", "order": "56", "role": "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details", "shortName": "Note 10 - Leases - Aggregate Future Lease Payments (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "ufpt:LesseeOperatingAndFinanceLeasesLiabilityMaturityTableTextBlock", "ufpt:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R57": { "firstAnchor": { "ancestors": [ "p", "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "Share", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "056 - Disclosure - Note 11 - Income Per Share (Details Textual)", "menuCat": "Details", "order": "57", "role": "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-details-textual", "shortName": "Note 11 - Income Per Share (Details Textual)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "reportCount": 1, "unique": true, "unitRef": "Share", "xsiNil": "false" } }, "R58": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:WeightedAverageNumberOfSharesOutstandingBasic", "reportCount": 1, "unitRef": "Share", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "057 - Disclosure - Note 11 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)", "menuCat": "Details", "order": "58", "role": "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details", "shortName": "Note 11 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock", "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "lang": null, "name": "us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "reportCount": 1, "unique": true, "unitRef": "Share", "xsiNil": "false" } }, "R59": { "firstAnchor": { "ancestors": [ "p", "us-gaap:SegmentReportingDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember_MajorCustomersAxis-OneCustomerMember", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:ConcentrationRiskPercentage1", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "058 - Disclosure - Note 12 - Segment Reporting (Details Textual)", "menuCat": "Details", "order": "59", "role": "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual", "shortName": "Note 12 - Segment Reporting (Details Textual)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:SegmentReportingDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember_MajorCustomersAxis-OneCustomerMember", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:ConcentrationRiskPercentage1", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "005 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)", "menuCat": "Statements", "order": "6", "role": "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "shortName": "Condensed Consolidated Statements of Cash Flows (Unaudited)", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "lang": null, "name": "us-gaap:DepreciationDepletionAndAmortization", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R60": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "059 - Disclosure - Note 12 - Segment Reporting - Net Sales by Market (Details)", "menuCat": "Details", "order": "60", "role": "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details", "shortName": "Note 12 - Segment Reporting - Net Sales by Market (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "us-gaap:SegmentReportingDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "0", "lang": null, "name": "ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R61": { "firstAnchor": { "ancestors": [ "p", "us-gaap:IntangibleAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:AmortizationOfIntangibleAssets", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "060 - Disclosure - Note 13 - Goodwill and Other Intangible Assets (Details Textual)", "menuCat": "Details", "order": "61", "role": "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-details-textual", "shortName": "Note 13 - Goodwill and Other Intangible Assets (Details Textual)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:IntangibleAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-5", "first": true, "lang": null, "name": "us-gaap:AmortizationOfIntangibleAssets", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R62": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2022-12-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "061 - Disclosure - Note 13 - Goodwill and Other Intangible Assets - Changes in Carrying Amount of Goodwill (Details)", "menuCat": "Details", "order": "62", "role": "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-changes-in-carrying-amount-of-goodwill-details", "shortName": "Note 13 - Goodwill and Other Intangible Assets - Changes in Carrying Amount of Goodwill (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "us-gaap:IntangibleAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "-3", "lang": null, "name": "us-gaap:GoodwillForeignCurrencyTranslationGainLoss", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R63": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "us-gaap:IntangibleAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "062 - Disclosure - Note 13 - Goodwill and Other Intangible Assets - Definite-lived Intangible Assets (Details)", "menuCat": "Details", "order": "63", "role": "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details", "shortName": "Note 13 - Goodwill and Other Intangible Assets - Definite-lived Intangible Assets (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "us-gaap:IntangibleAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R64": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "us-gaap:IntangibleAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "063 - Disclosure - Note 13 - Goodwill and Other Intangible Assets - Future Amortization of Intangible Assets (Details)", "menuCat": "Details", "order": "64", "role": "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details", "shortName": "Note 13 - Goodwill and Other Intangible Assets - Future Amortization of Intangible Assets (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "us-gaap:IntangibleAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R65": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:OtherNoncurrentLiabilitiesTableTextBlock", "us-gaap:OtherLiabilitiesDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "064 - Disclosure - Note 14 - Other Long-term Liabilities - Other Long-term Liabilities (Details)", "menuCat": "Details", "order": "65", "role": "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details", "shortName": "Note 14 - Other Long-term Liabilities - Other Long-term Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:OtherNoncurrentLiabilitiesTableTextBlock", "us-gaap:OtherLiabilitiesDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R66": { "firstAnchor": { "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "3", "first": true, "lang": null, "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "065 - Disclosure - Note 15 - Income Tax (Details Textual)", "menuCat": "Details", "order": "66", "role": "http://www.ufpt.com/20230331/role/statement-note-15-income-tax-details-textual", "shortName": "Note 15 - Income Tax (Details Textual)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": "3", "first": true, "lang": null, "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R67": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-7", "first": true, "lang": null, "name": "us-gaap:LongTermDebt", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "066 - Disclosure - Note 16 - Indebtedness (Details Textual)", "menuCat": "Details", "order": "67", "role": "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual", "shortName": "Note 16 - Indebtedness (Details Textual)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2021-12-22_DebtInstrumentAxis-SecondAmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember", "decimals": "-7", "lang": null, "name": "us-gaap:DebtInstrumentFaceAmount", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R68": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-7", "first": true, "lang": null, "name": "us-gaap:LongTermDebt", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "067 - Disclosure - Note 16 - Indebtedness - Long-term Debt (Details)", "menuCat": "Details", "order": "68", "role": "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "shortName": "Note 16 - Indebtedness - Long-term Debt (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R69": { "firstAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-6", "first": true, "lang": null, "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "068 - Disclosure - Note 16 - Indebtedness - Schedule of Maturity (Details)", "menuCat": "Details", "order": "69", "role": "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details", "shortName": "Note 16 - Indebtedness - Schedule of Maturity (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "i_2023-03-31", "decimals": "-6", "first": true, "lang": null, "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "006 - Disclosure - Note 1 - Basis of Presentation", "menuCat": "Notes", "order": "7", "role": "http://www.ufpt.com/20230331/role/statement-note-1-basis-of-presentation", "shortName": "Note 1 - Basis of Presentation", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R8": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "007 - Disclosure - Note 2 - Acquisitions and Divestiture", "menuCat": "Notes", "order": "8", "role": "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "shortName": "Note 2 - Acquisitions and Divestiture", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:MergersAcquisitionsAndDispositionsDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "008 - Disclosure - Note 3 - Revenue Recognition", "menuCat": "Notes", "order": "9", "role": "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition", "shortName": "Note 3 - Revenue Recognition", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "ufpt20230331_10q.htm", "contextRef": "d_2023-01-01_2023-03-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } } }, "segmentCount": 57, "tag": { "dei_AmendmentFlag": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.", "label": "Amendment Flag" } } }, "localname": "AmendmentFlag", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "booleanItemType" }, "dei_CityAreaCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Area code of city", "label": "City Area Code" } } }, "localname": "CityAreaCode", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "normalizedStringItemType" }, "dei_CurrentFiscalYearEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "End date of current fiscal year in the format --MM-DD.", "label": "Current Fiscal Year End Date" } } }, "localname": "CurrentFiscalYearEndDate", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "gMonthDayItemType" }, "dei_DocumentFiscalPeriodFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.", "label": "Document Fiscal Period Focus" } } }, "localname": "DocumentFiscalPeriodFocus", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "fiscalPeriodItemType" }, "dei_DocumentFiscalYearFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.", "label": "Document Fiscal Year Focus" } } }, "localname": "DocumentFiscalYearFocus", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "gYearItemType" }, "dei_DocumentInformationLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Document Information [Line Items]" } } }, "localname": "DocumentInformationLineItems", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "stringItemType" }, "dei_DocumentInformationTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Container to support the formal attachment of each official or unofficial, public or private document as part of a submission package.", "label": "Document Information [Table]" } } }, "localname": "DocumentInformationTable", "nsuri": "http://xbrl.sec.gov/dei/2023", "xbrltype": "stringItemType" }, "dei_DocumentPeriodEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.", "label": "Document Period End Date" } } }, "localname": "DocumentPeriodEndDate", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "dateItemType" }, "dei_DocumentQuarterlyReport": { "auth_ref": [ "r623" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as an quarterly report.", "label": "Document Quarterly Report" } } }, "localname": "DocumentQuarterlyReport", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "booleanItemType" }, "dei_DocumentTransitionReport": { "auth_ref": [ "r624" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as a transition report.", "label": "Document Transition Report" } } }, "localname": "DocumentTransitionReport", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "booleanItemType" }, "dei_DocumentType": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.", "label": "Document Type" } } }, "localname": "DocumentType", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "submissionTypeItemType" }, "dei_EntityAddressAddressLine1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 1 such as Attn, Building Name, Street Name", "label": "Entity Address, Address Line One" } } }, "localname": "EntityAddressAddressLine1", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCityOrTown": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the City or Town", "label": "Entity Address, City or Town" } } }, "localname": "EntityAddressCityOrTown", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressPostalZipCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Code for the postal or zip code", "label": "Entity Address, Postal Zip Code" } } }, "localname": "EntityAddressPostalZipCode", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressStateOrProvince": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the state or province.", "label": "Entity Address, State or Province" } } }, "localname": "EntityAddressStateOrProvince", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r621" ], "lang": { "en-us": { "role": { "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.", "label": "Entity Central Index Key" } } }, "localname": "EntityCentralIndexKey", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "centralIndexKeyItemType" }, "dei_EntityCommonStockSharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.", "label": "Entity Common Stock, Shares Outstanding" } } }, "localname": "EntityCommonStockSharesOutstanding", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "sharesItemType" }, "dei_EntityCurrentReportingStatus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Current Reporting Status" } } }, "localname": "EntityCurrentReportingStatus", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "yesNoItemType" }, "dei_EntityDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains.", "label": "Entity [Domain]" } } }, "localname": "EntityDomain", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited", "http://www.ufpt.com/20230331/role/statement-document-and-entity-information", "http://www.ufpt.com/20230331/role/statement-note-1-basis-of-presentation", "http://www.ufpt.com/20230331/role/statement-note-10-leases", "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details", "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details", "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details", "http://www.ufpt.com/20230331/role/statement-note-10-leases-tables", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-details-textual", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-tables", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-tables", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-changes-in-carrying-amount-of-goodwill-details", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-details-textual", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-tables", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-tables", "http://www.ufpt.com/20230331/role/statement-note-15-income-tax", "http://www.ufpt.com/20230331/role/statement-note-15-income-tax-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-tables", "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-tables", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-contract-assets-and-liabilities-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-details-textual", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-tables", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-tables", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-tables", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-tables", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-tables", "http://www.ufpt.com/20230331/role/statement-note-8-inventories", "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details", "http://www.ufpt.com/20230331/role/statement-note-8-inventories-tables", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-tables" ], "xbrltype": "domainItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r621" ], "lang": { "en-us": { "role": { "documentation": "Indicate if registrant meets the emerging growth company criteria.", "label": "Entity Emerging Growth Company" } } }, "localname": "EntityEmergingGrowthCompany", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "booleanItemType" }, "dei_EntityFileNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.", "label": "Entity File Number" } } }, "localname": "EntityFileNumber", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r621" ], "lang": { "en-us": { "role": { "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Filer Category" } } }, "localname": "EntityFilerCategory", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "filerCategoryItemType" }, "dei_EntityIncorporationStateCountryCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Two-character EDGAR code representing the state or country of incorporation.", "label": "Entity Incorporation, State or Country Code" } } }, "localname": "EntityIncorporationStateCountryCode", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r625" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).", "label": "Entity Interactive Data Current" } } }, "localname": "EntityInteractiveDataCurrent", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "yesNoItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r621" ], "lang": { "en-us": { "role": { "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.", "label": "Entity Registrant Name" } } }, "localname": "EntityRegistrantName", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r621" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.", "label": "Entity Shell Company" } } }, "localname": "EntityShellCompany", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r621" ], "lang": { "en-us": { "role": { "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).", "label": "Entity Small Business" } } }, "localname": "EntitySmallBusiness", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "booleanItemType" }, "dei_EntityTaxIdentificationNumber": { "auth_ref": [ "r621" ], "lang": { "en-us": { "role": { "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.", "label": "Entity Tax Identification Number" } } }, "localname": "EntityTaxIdentificationNumber", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "employerIdItemType" }, "dei_LegalEntityAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The set of legal entities associated with a report.", "label": "Legal Entity [Axis]" } } }, "localname": "LegalEntityAxis", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited", "http://www.ufpt.com/20230331/role/statement-document-and-entity-information", "http://www.ufpt.com/20230331/role/statement-note-1-basis-of-presentation", "http://www.ufpt.com/20230331/role/statement-note-10-leases", "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details", "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details", "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details", "http://www.ufpt.com/20230331/role/statement-note-10-leases-tables", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-details-textual", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-tables", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-tables", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-changes-in-carrying-amount-of-goodwill-details", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-details-textual", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-tables", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-tables", "http://www.ufpt.com/20230331/role/statement-note-15-income-tax", "http://www.ufpt.com/20230331/role/statement-note-15-income-tax-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-tables", "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-tables", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-contract-assets-and-liabilities-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-details-textual", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-tables", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-tables", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-tables", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-tables", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-tables", "http://www.ufpt.com/20230331/role/statement-note-8-inventories", "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details", "http://www.ufpt.com/20230331/role/statement-note-8-inventories-tables", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-tables" ], "xbrltype": "stringItemType" }, "dei_LocalPhoneNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Local phone number for entity.", "label": "Local Phone Number" } } }, "localname": "LocalPhoneNumber", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "normalizedStringItemType" }, "dei_Security12bTitle": { "auth_ref": [ "r620" ], "lang": { "en-us": { "role": { "documentation": "Title of a 12(b) registered security.", "label": "Title of 12(b) Security" } } }, "localname": "Security12bTitle", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r622" ], "lang": { "en-us": { "role": { "documentation": "Name of the Exchange on which a security is registered.", "label": "Security Exchange Name" } } }, "localname": "SecurityExchangeName", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "edgarExchangeCodeItemType" }, "dei_TradingSymbol": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Trading symbol of an instrument as listed on an exchange.", "label": "Trading Symbol" } } }, "localname": "TradingSymbol", "nsuri": "http://xbrl.sec.gov/dei/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-document-and-entity-information" ], "xbrltype": "tradingSymbolItemType" }, "srt_MajorCustomersAxis": { "auth_ref": [ "r263", "r597", "r671", "r687", "r688" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]" } } }, "localname": "MajorCustomersAxis", "nsuri": "http://fasb.org/srt/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details" ], "xbrltype": "stringItemType" }, "srt_MaximumMember": { "auth_ref": [ "r287", "r288", "r289", "r290", "r352", "r464", "r496", "r513", "r514", "r565", "r566", "r567", "r568", "r569", "r572", "r573", "r585", "r594", "r603", "r608", "r669", "r679", "r680", "r681", "r682", "r683", "r684" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]" } } }, "localname": "MaximumMember", "nsuri": "http://fasb.org/srt/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "domainItemType" }, "srt_MinimumMember": { "auth_ref": [ "r287", "r288", "r289", "r290", "r352", "r464", "r496", "r513", "r514", "r565", "r566", "r567", "r568", "r569", "r572", "r573", "r585", "r594", "r603", "r608", "r669", "r679", "r680", "r681", "r682", "r683", "r684" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]" } } }, "localname": "MinimumMember", "nsuri": "http://fasb.org/srt/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "domainItemType" }, "srt_NameOfMajorCustomerDomain": { "auth_ref": [ "r263", "r597", "r671", "r687", "r688" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]" } } }, "localname": "NameOfMajorCustomerDomain", "nsuri": "http://fasb.org/srt/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details" ], "xbrltype": "domainItemType" }, "srt_ProductOrServiceAxis": { "auth_ref": [ "r260", "r466", "r490", "r491", "r492", "r493", "r494", "r495", "r574", "r596", "r607", "r632", "r665", "r666", "r671", "r687" ], "lang": { "en-us": { "role": { "label": "Product and Service [Axis]" } } }, "localname": "ProductOrServiceAxis", "nsuri": "http://fasb.org/srt/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" ], "xbrltype": "stringItemType" }, "srt_ProductsAndServicesDomain": { "auth_ref": [ "r260", "r466", "r490", "r491", "r492", "r493", "r494", "r495", "r574", "r596", "r607", "r632", "r665", "r666", "r671", "r687" ], "lang": { "en-us": { "role": { "label": "Product and Service [Domain]" } } }, "localname": "ProductsAndServicesDomain", "nsuri": "http://fasb.org/srt/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" ], "xbrltype": "domainItemType" }, "srt_RangeAxis": { "auth_ref": [ "r287", "r288", "r289", "r290", "r345", "r352", "r379", "r380", "r381", "r463", "r464", "r496", "r513", "r514", "r565", "r566", "r567", "r568", "r569", "r572", "r573", "r585", "r594", "r603", "r608", "r611", "r664", "r669", "r680", "r681", "r682", "r683", "r684" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]" } } }, "localname": "RangeAxis", "nsuri": "http://fasb.org/srt/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "stringItemType" }, "srt_RangeMember": { "auth_ref": [ "r287", "r288", "r289", "r290", "r345", "r352", "r379", "r380", "r381", "r463", "r464", "r496", "r513", "r514", "r565", "r566", "r567", "r568", "r569", "r572", "r573", "r585", "r594", "r603", "r608", "r611", "r664", "r669", "r680", "r681", "r682", "r683", "r684" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]" } } }, "localname": "RangeMember", "nsuri": "http://fasb.org/srt/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "domainItemType" }, "srt_ScenarioUnspecifiedDomain": { "auth_ref": [ "r221", "r353", "r626", "r645" ], "lang": { "en-us": { "role": { "label": "Scenario [Domain]" } } }, "localname": "ScenarioUnspecifiedDomain", "nsuri": "http://fasb.org/srt/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "domainItemType" }, "srt_StatementScenarioAxis": { "auth_ref": [ "r221", "r353", "r626", "r627", "r645" ], "lang": { "en-us": { "role": { "label": "Scenario [Axis]" } } }, "localname": "StatementScenarioAxis", "nsuri": "http://fasb.org/srt/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "stringItemType" }, "ufpt_AdvantMedicalMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information related to Advant Medicaal, Inc..", "label": "Advant Medical [Member]" } } }, "localname": "AdvantMedicalMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "domainItemType" }, "ufpt_AerospaceDefenseMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Aerospace & Defense group of major customers.", "label": "Aerospace & Defense [Member]" } } }, "localname": "AerospaceDefenseMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details" ], "xbrltype": "domainItemType" }, "ufpt_AutomotiveMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Automotive group of major customers.", "label": "Automotive [Member]" } } }, "localname": "AutomotiveMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details" ], "xbrltype": "domainItemType" }, "ufpt_BloombergShorttermBankYieldIndexRateMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents Bloomberg Short-term Bank Yield Index Rate.", "label": "Bloomberg Short-term Bank Yield Index Rate [Member]" } } }, "localname": "BloombergShorttermBankYieldIndexRateMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "domainItemType" }, "ufpt_BusinessCombinationAgreementTerm": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents agreement term for business combination.", "label": "ufpt_BusinessCombinationAgreementTerm", "terseLabel": "Business Combination, Agreement Term (Year)" } } }, "localname": "BusinessCombinationAgreementTerm", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual" ], "xbrltype": "durationItemType" }, "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill": { "auth_ref": [], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of assets acquired, including goodwill at the acquisition date.", "label": "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill", "totalLabel": "Total identifiable assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of accrued liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.", "label": "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities", "negatedLabel": "Accrued expenses" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredTaxes": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred taxes assumed at the acquisition date.", "label": "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredTaxes", "negatedLabel": "Deferred taxes" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredTaxes", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesIncomeTax": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities incurred for income taxes assumed at the acquisition date.", "label": "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesIncomeTax", "negatedTerseLabel": "Income taxes" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesIncomeTax", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLeaseRightofuseAssets": { "auth_ref": [], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": 7.0, "parentTag": "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lease right-of-use assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date.", "label": "Lease right of use assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLeaseRightofuseAssets", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "ufpt_CommonStockOutstandingMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents common stock outstanding.", "label": "Common Stock Outstanding [Member]" } } }, "localname": "CommonStockOutstandingMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "domainItemType" }, "ufpt_ContechMedicalIncAndDasMedicalMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents Contech Medical, Inc and DAS Medical.", "label": "Contech Medical, Inc and DAS Medical [Member]" } } }, "localname": "ContechMedicalIncAndDasMedicalMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual" ], "xbrltype": "domainItemType" }, "ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, from unbilled revenue recognized.", "label": "Increases due to revenue recognized, not invoiced to customers" } } }, "localname": "ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-contract-assets-and-liabilities-details" ], "xbrltype": "monetaryItemType" }, "ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in obligation to transfer good or service to customer for which consideration from customer has been received.", "label": "Increases due to consideration received from customers" } } }, "localname": "ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-contract-assets-and-liabilities-details" ], "xbrltype": "monetaryItemType" }, "ufpt_ContractWithCustomerLiabilityRevenueRecognizedDuringPeriod": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized during period including amounts previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.)", "label": "ufpt_ContractWithCustomerLiabilityRevenueRecognizedDuringPeriod", "negatedLabel": "Revenue recognized" } } }, "localname": "ContractWithCustomerLiabilityRevenueRecognizedDuringPeriod", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-contract-assets-and-liabilities-details" ], "xbrltype": "monetaryItemType" }, "ufpt_CustomerContractsAndRelationshipsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents customer contracts and relationships.", "label": "Customer Contracts and Relationships [Member]" } } }, "localname": "CustomerContractsAndRelationshipsMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "domainItemType" }, "ufpt_DasMedicalMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents DAS Medical.", "label": "DAS Medical [Member]" } } }, "localname": "DasMedicalMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual" ], "xbrltype": "domainItemType" }, "ufpt_DeferredRevenueMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable.", "label": "Deferred Revenue [Member]" } } }, "localname": "DeferredRevenueMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-details-textual" ], "xbrltype": "domainItemType" }, "ufpt_DisposalGroupIncludingDiscontinuedOperationConsiderationHeldInEscrow": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of consideration for disposal group including discontinued operation held in escrow.", "label": "ufpt_DisposalGroupIncludingDiscontinuedOperationConsiderationHeldInEscrow", "terseLabel": "Disposal Group, Including Discontinued Operation, Consideration, Held in Escrow" } } }, "localname": "DisposalGroupIncludingDiscontinuedOperationConsiderationHeldInEscrow", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "monetaryItemType" }, "ufpt_EmployeeAndNonemployeeStockOptionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Contract that gives the holder the right, but not the obligation, either to purchase or to sell a certain number of shares of stock at a predetermined price for a specified period of time.", "label": "Employee and Nonemployee Stock Option [Member]" } } }, "localname": "EmployeeAndNonemployeeStockOptionMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "domainItemType" }, "ufpt_EngineeringAndDevelopmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the information pertaining to engineering and development.", "label": "Engineering and Development [Member]" } } }, "localname": "EngineeringAndDevelopmentMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" ], "xbrltype": "domainItemType" }, "ufpt_FinanceLeaseLiabilityToBePaidAfterYearFour": { "auth_ref": [], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": 1.0, "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "ufpt_FinanceLeaseLiabilityToBePaidAfterYearFour", "terseLabel": "Thereafter, finance" } } }, "localname": "FinanceLeaseLiabilityToBePaidAfterYearFour", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "ufpt_FurnitureFixturesAndComputersMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities and long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.", "label": "Furniture, Fixtures, and Computers [Member]" } } }, "localname": "FurnitureFixturesAndComputersMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details" ], "xbrltype": "domainItemType" }, "ufpt_IncreaseInOperatingLeaseLiability": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase or decrease in operating lease liability.", "label": "Operating lease liabilities" } } }, "localname": "IncreaseInOperatingLeaseLiability", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" ], "xbrltype": "monetaryItemType" }, "ufpt_IndustrialMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Industrial group of major customers.", "label": "Industrial [Member]" } } }, "localname": "IndustrialMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details" ], "xbrltype": "domainItemType" }, "ufpt_IntellectualPropertyTradenameAndBrandMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents intellectual property/tradename and brand.", "label": "Intellectual Property/ Tradename and Brand [Member]" } } }, "localname": "IntellectualPropertyTradenameAndBrandMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details" ], "xbrltype": "domainItemType" }, "ufpt_LeaseLiabilitiesCurrentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing current lease liabilities.", "label": "Lease Liabilities, Current [Member]" } } }, "localname": "LeaseLiabilitiesCurrentMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "domainItemType" }, "ufpt_LeaseLiabilitiesNoncurrentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing lease liabilities, noncurrent.", "label": "Lease Liabilities, Noncurrent [Member]" } } }, "localname": "LeaseLiabilitiesNoncurrentMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "domainItemType" }, "ufpt_LeasesRightofuseAssetsAndLiabilitiesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the assets and liabilities of operating and finance leases.", "label": "Leases, Right-of-Use Assets and Liabilities [Table Text block]" } } }, "localname": "LeasesRightofuseAssetsAndLiabilitiesTableTextBlock", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-tables" ], "xbrltype": "textBlockItemType" }, "ufpt_LesseeOperatingAndFinanceLeasesLiabilityMaturityTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating and finance lease liabilities. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating and finance lease liabilities recognized in statement of financial position.", "label": "Lessee, Operating and Finance Leases, Liability, Maturity [Table Text Block]" } } }, "localname": "LesseeOperatingAndFinanceLeasesLiabilityMaturityTableTextBlock", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-tables" ], "xbrltype": "textBlockItemType" }, "ufpt_LesseeOperatingAndFinanceLeasesTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for operating and finance leases of lessee. Includes, but is not limited to, description of operating and finance leases and maturity analysis of operating and finance lease liabilities.", "label": "Lessee, Operating and Finance Leases [Text Block]" } } }, "localname": "LesseeOperatingAndFinanceLeasesTextBlock", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases" ], "xbrltype": "textBlockItemType" }, "ufpt_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour": { "auth_ref": [], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": 1.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "ufpt_LesseeOperatingLeaseLiabilityToBePaidAfterYearFour", "terseLabel": "Thereafter, operating" } } }, "localname": "LesseeOperatingLeaseLiabilityToBePaidAfterYearFour", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "ufpt_LonglivedAssetsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents long-lived assets.", "label": "Long-Lived Assets [Member]" } } }, "localname": "LonglivedAssetsMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "domainItemType" }, "ufpt_MedicalMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Medical group of major customers.", "label": "Medical [Member]" } } }, "localname": "MedicalMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details" ], "xbrltype": "domainItemType" }, "ufpt_MoldedFiberBusinessMFTAndRelatedRealEstateInIowaMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents molded fiber business (\u201cMFT\u201d) and related real estate in Iowa.", "label": "molded fiber business (\u201cMFT\u201d) and related real estate in Iowa [Member]" } } }, "localname": "MoldedFiberBusinessMFTAndRelatedRealEstateInIowaMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "domainItemType" }, "ufpt_NoncompetitionAgreementPaymentLiabilityNoncurrent": { "auth_ref": [], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details": { "order": 1.0, "parentTag": "us-gaap_OtherLiabilitiesNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation incurred for non-competition agreement payment, classified as noncurrent.", "label": "ufpt_NoncompetitionAgreementPaymentLiabilityNoncurrent", "terseLabel": "Present value of non-competition payments" } } }, "localname": "NoncompetitionAgreementPaymentLiabilityNoncurrent", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details" ], "xbrltype": "monetaryItemType" }, "ufpt_NoncompetitionAgreementsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents non-competition agreement.", "label": "Non-Competition Agreements [Member]" } } }, "localname": "NoncompetitionAgreementsMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual" ], "xbrltype": "domainItemType" }, "ufpt_NoteToFinancialStatementDetailsTextual": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note To Financial Statement Details Textual" } } }, "localname": "NoteToFinancialStatementDetailsTextual", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_NotesToFinancialStatementsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Notes To Financial Statements [Abstract]" } } }, "localname": "NotesToFinancialStatementsAbstract", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_NumberOfMajorCustomers": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the number of major customers accounting for 10% or more of the specified concentration risk benchmark, which includes, but not limited to, sales revenue, accounts receivable, etc.", "label": "ufpt_NumberOfMajorCustomers", "terseLabel": "Number of Major Customers" } } }, "localname": "NumberOfMajorCustomers", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "integerItemType" }, "ufpt_OneCustomerMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "information pertaining to one customer.", "label": "One Customer [Member]" } } }, "localname": "OneCustomerMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "domainItemType" }, "ufpt_OperatingAndFinanceLeasesLiabilityCurrent": { "auth_ref": [], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 0.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 }, "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating and finance leases, classified as current.", "label": "Lease liabilities", "totalLabel": "Total lease liabilities - current" } } }, "localname": "OperatingAndFinanceLeasesLiabilityCurrent", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "monetaryItemType" }, "ufpt_OperatingAndFinanceLeasesLiabilityNoncurrent": { "auth_ref": [], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 2.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 }, "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating and finance leases, classified as noncurrent.", "label": "ufpt_OperatingAndFinanceLeasesLiabilityNoncurrent", "terseLabel": "Lease liabilities", "totalLabel": "Total lease liabilities - long-term" } } }, "localname": "OperatingAndFinanceLeasesLiabilityNoncurrent", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "monetaryItemType" }, "ufpt_OperatingAndFinanceLeasesRightofuseAssets": { "auth_ref": [], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 0.0, "parentTag": "us-gaap_Assets", "weight": 1.0 }, "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Represents the amount of of right-of-use asset from assets under operating and finance leases.", "label": "Right of use assets", "totalLabel": "Total ROU assets" } } }, "localname": "OperatingAndFinanceLeasesRightofuseAssets", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "monetaryItemType" }, "ufpt_OtherLiabilitiesNoncurrentOther": { "auth_ref": [], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details": { "order": 2.0, "parentTag": "us-gaap_OtherLiabilitiesNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of other noncurrent liabilities, classified as other.", "label": "ufpt_OtherLiabilitiesNoncurrentOther", "verboseLabel": "Other" } } }, "localname": "OtherLiabilitiesNoncurrentOther", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details" ], "xbrltype": "monetaryItemType" }, "ufpt_PresentValueOfNoncompetitionAgreement": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of non-competition agreement.", "label": "ufpt_PresentValueOfNoncompetitionAgreement", "terseLabel": "Present Value of Non-competition Agreement", "verboseLabel": "Present value of non-competition payments" } } }, "localname": "PresentValueOfNoncompetitionAgreement", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" ], "xbrltype": "monetaryItemType" }, "ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The percentage of revenue, including tax collected from customer, from satisfaction of performance obligation by transferring promised good or service to customer.", "label": "Percentage of concentration risk" } } }, "localname": "RevenueFromContractWithCustomerIncludingAssessedTaxPercentage", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details" ], "xbrltype": "percentItemType" }, "ufpt_RightOfUseAssetsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing operating and finance leases, right of use assets.", "label": "Right of Use Assets [Member]" } } }, "localname": "RightOfUseAssetsMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "domainItemType" }, "ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the allocation of equity-based compensation costs to a given line item on the balance sheet and income statement for the period. This may include the reporting line for the costs and the amount capitalized and expensed. The amounts are aggregated by award type.", "label": "Schedule of Employee Service Share Based Compensation Allocation of Recognized Period Costs, By Award Type [Table Text Block]" } } }, "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-tables" ], "xbrltype": "textBlockItemType" }, "ufpt_SecondAmendedAndRestatedCreditAgreementMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents second amended and restated credit agreement.", "label": "Second Amended and Restated Credit Agreement [Member]" } } }, "localname": "SecondAmendedAndRestatedCreditAgreementMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "domainItemType" }, "ufpt_SecuredRevolvingCreditFacilityMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents secured revolving credit facility.", "label": "Secured Revolving Credit Facility [Member]" } } }, "localname": "SecuredRevolvingCreditFacilityMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "domainItemType" }, "ufpt_SecuredTermLoanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents secured term loan.", "label": "Secured Term Loan [Member]" } } }, "localname": "SecuredTermLoanMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "domainItemType" }, "ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "For net-share settlement of share-based awards when the employer settles employees' income tax withholding obligations, this element represents the market price per share of shares used by the employees to repay the employer.", "label": "ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice", "terseLabel": "Shares Paid for Tax Withholding for Share Based Compensation Market Price (in dollars per share)" } } }, "localname": "SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual" ], "xbrltype": "perShareItemType" }, "ufpt_SubsidiaryGuarantorsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Related to the subsidiary guarantors granting the credit agreement to the company.", "label": "Subsidiary Guarantors [Member]" } } }, "localname": "SubsidiaryGuarantorsMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "domainItemType" }, "ufpt_TermLoanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information relating to term loans.", "label": "Term Loan [Member]" } } }, "localname": "TermLoanMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "domainItemType" }, "ufpt_ToolingAndMachineryMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to tooling and machinery.", "label": "Tooling and Machinery [Member]" } } }, "localname": "ToolingAndMachineryMember", "nsuri": "http://www.ufpt.com/20230331", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" ], "xbrltype": "domainItemType" }, "ufpt_statement-statement-note-10-leases-aggregate-future-lease-payments-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 10 - Leases - Aggregate Future Lease Payments (Details)" } } }, "localname": "statement-statement-note-10-leases-aggregate-future-lease-payments-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-10-leases-lease-cost-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 10 - Leases - Lease Cost (Details)" } } }, "localname": "statement-statement-note-10-leases-lease-cost-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 10 - Leases - Right-of-Use Assets and Lease Liabilities (Details)" } } }, "localname": "statement-statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-10-leases-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 10 - Leases" } } }, "localname": "statement-statement-note-10-leases-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-11-income-per-share-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 11 - Income Per Share" } } }, "localname": "statement-statement-note-11-income-per-share-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 11 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)" } } }, "localname": "statement-statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-12-segment-reporting-net-sales-by-market-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 12 - Segment Reporting - Net Sales by Market (Details)" } } }, "localname": "statement-statement-note-12-segment-reporting-net-sales-by-market-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-12-segment-reporting-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 12 - Segment Reporting" } } }, "localname": "statement-statement-note-12-segment-reporting-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-13-goodwill-and-other-intangible-assets-changes-in-carrying-amount-of-goodwill-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 13 - Goodwill and Other Intangible Assets - Changes in Carrying Amount of Goodwill (Details)" } } }, "localname": "statement-statement-note-13-goodwill-and-other-intangible-assets-changes-in-carrying-amount-of-goodwill-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 13 - Goodwill and Other Intangible Assets - Definite-lived Intangible Assets (Details)" } } }, "localname": "statement-statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 13 - Goodwill and Other Intangible Assets - Future Amortization of Intangible Assets (Details)" } } }, "localname": "statement-statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-13-goodwill-and-other-intangible-assets-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 13 - Goodwill and Other Intangible Assets" } } }, "localname": "statement-statement-note-13-goodwill-and-other-intangible-assets-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 14 - Other Long-term Liabilities - Other Long-term Liabilities (Details)" } } }, "localname": "statement-statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-14-other-longterm-liabilities-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 14 - Other Long-term Liabilities" } } }, "localname": "statement-statement-note-14-other-longterm-liabilities-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-16-indebtedness-longterm-debt-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 16 - Indebtedness - Long-term Debt (Details)" } } }, "localname": "statement-statement-note-16-indebtedness-longterm-debt-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-16-indebtedness-schedule-of-maturity-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 16 - Indebtedness - Schedule of Maturity (Details)" } } }, "localname": "statement-statement-note-16-indebtedness-schedule-of-maturity-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-16-indebtedness-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 16 - Indebtedness" } } }, "localname": "statement-statement-note-16-indebtedness-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-2-acquisition-pro-forma-information-unaudited-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 2 - Acquisition - Pro Forma Information (Unaudited) (Details)" } } }, "localname": "statement-statement-note-2-acquisition-pro-forma-information-unaudited-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-2-acquisitions-and-divestiture-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 2 - Acquisitions and Divestiture" } } }, "localname": "statement-statement-note-2-acquisitions-and-divestiture-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 2 - Acquisitions - Assets Acquires and Liabilities Assumed (Details)" } } }, "localname": "statement-statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-3-revenue-recognition-contract-assets-and-liabilities-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 3 - Revenue Recognition - Contract Assets and Liabilities (Details)" } } }, "localname": "statement-statement-note-3-revenue-recognition-contract-assets-and-liabilities-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 3 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details)" } } }, "localname": "statement-statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-3-revenue-recognition-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 3 - Revenue Recognition" } } }, "localname": "statement-statement-note-3-revenue-recognition-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 4 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details)" } } }, "localname": "statement-statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-4-supplemental-cash-flow-information-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 4 - Supplemental Cash Flow Information" } } }, "localname": "statement-statement-note-4-supplemental-cash-flow-information-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 5 - Receivables and Allowance for Credit Losses - Receivables (Details)" } } }, "localname": "statement-statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-5-receivables-and-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 5 - Receivables and Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (Details)" } } }, "localname": "statement-statement-note-5-receivables-and-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-5-receivables-and-allowance-for-credit-losses-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 5 - Receivables and Allowance for Credit Losses" } } }, "localname": "statement-statement-note-5-receivables-and-allowance-for-credit-losses-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 6 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)" } } }, "localname": "statement-statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-6-fair-value-of-financial-instruments-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 6 - Fair Value of Financial Instruments" } } }, "localname": "statement-statement-note-6-fair-value-of-financial-instruments-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-7-sharebased-compensation-compensation-cost-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 7 - Share-based Compensation - Compensation Cost (Details)" } } }, "localname": "statement-statement-note-7-sharebased-compensation-compensation-cost-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 7 - Share-based Compensation - Restricted Stock Unit Activity (Details)" } } }, "localname": "statement-statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 7 - Share-based Compensation - Summary of Stock Option Activity (Details)" } } }, "localname": "statement-statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-7-sharebased-compensation-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 7 - Share-based Compensation" } } }, "localname": "statement-statement-note-7-sharebased-compensation-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-8-inventories-summary-of-inventory-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 8 - Inventories - Summary of Inventory (Details)" } } }, "localname": "statement-statement-note-8-inventories-summary-of-inventory-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-8-inventories-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 8 - Inventories" } } }, "localname": "statement-statement-note-8-inventories-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 9 - Property, Plant and Equipment - Property, Plant, and Equipment (Details)" } } }, "localname": "statement-statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "ufpt_statement-statement-note-9-property-plant-and-equipment-tables": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Note 9 - Property, Plant and Equipment" } } }, "localname": "statement-statement-note-9-property-plant-and-equipment-tables", "nsuri": "http://www.ufpt.com/20230331", "xbrltype": "stringItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r27", "r606" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 4.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accounts payable" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock": { "auth_ref": [ "r650" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of allowance for credit loss on accounts receivable.", "label": "Accounts Receivable, Allowance for Credit Loss [Table Text Block]" } } }, "localname": "AccountsReceivableAllowanceForCreditLossTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_AccountsReceivableGrossCurrent": { "auth_ref": [ "r180", "r264", "r265", "r577" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details": { "order": 0.0, "parentTag": "us-gaap_ReceivablesNetCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts receivable\u2013trade" } } }, "localname": "AccountsReceivableGrossCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableMember": { "auth_ref": [ "r571" ], "lang": { "en-us": { "role": { "documentation": "Due from customers or clients for goods or services that have been delivered or sold.", "label": "Accounts Receivable [Member]" } } }, "localname": "AccountsReceivableMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_AccountsReceivableNetCurrent": { "auth_ref": [ "r264", "r265" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 0.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Receivables, net" } } }, "localname": "AccountsReceivableNetCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedIncomeTaxesCurrent": { "auth_ref": [ "r95", "r136" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations.", "label": "us-gaap_AccruedIncomeTaxesCurrent", "terseLabel": "Income taxes payable" } } }, "localname": "AccruedIncomeTaxesCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrent": { "auth_ref": [ "r30" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of 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).", "label": "Accrued expenses" } } }, "localname": "AccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "auth_ref": [ "r62", "r173", "r483" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details": { "order": 0.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.", "label": "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "negatedLabel": "Accumulated depreciation and amortization" } } }, "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "auth_ref": [ "r40", "r41", "r106", "r181", "r480", "r501", "r502" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 3.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source.", "label": "Accumulated other comprehensive loss" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "auth_ref": [ "r7", "r18", "r41", "r421", "r424", "r459", "r497", "r498", "r634", "r635", "r636", "r642", "r643", "r644" ], "lang": { "en-us": { "role": { "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.", "label": "AOCI Attributable to Parent [Member]" } } }, "localname": "AccumulatedOtherComprehensiveIncomeMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "domainItemType" }, "us-gaap_AdditionalPaidInCapital": { "auth_ref": [ "r98", "r606", "r690" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 5.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.", "label": "Additional paid-in capital" } } }, "localname": "AdditionalPaidInCapital", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalMember": { "auth_ref": [ "r388", "r389", "r390", "r511", "r642", "r643", "r644", "r672", "r692" ], "lang": { "en-us": { "role": { "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.", "label": "Additional Paid-in Capital [Member]" } } }, "localname": "AdditionalPaidInCapitalMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationRestrictedStockUnitsRequisiteServicePeriodRecognition": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for restricted stock unit under share-based payment arrangement.", "label": "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationRestrictedStockUnitsRequisiteServicePeriodRecognition", "negatedLabel": "Net share settlement of RSU's" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationRestrictedStockUnitsRequisiteServicePeriodRecognition", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for option under share-based payment arrangement.", "label": "Exercise of stock options net of shares presented for exercise" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Adjustments to reconcile net income to net cash provided by operating activities:" } } }, "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_AllocatedShareBasedCompensationExpense": { "auth_ref": [ "r383", "r391" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.", "label": "us-gaap_AllocatedShareBasedCompensationExpense", "verboseLabel": "Share-based compensation" } } }, "localname": "AllocatedShareBasedCompensationExpense", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivable": { "auth_ref": [ "r182", "r266", "r270", "r271", "r274", "r686" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable.", "label": "us-gaap_AllowanceForDoubtfulAccountsReceivable", "periodEndLabel": "Allowance - end of period", "periodStartLabel": "Allowance - beginning of period" } } }, "localname": "AllowanceForDoubtfulAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "auth_ref": [ "r182", "r266", "r270" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details": { "order": 1.0, "parentTag": "us-gaap_ReceivablesNetCurrent", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.", "label": "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent", "negatedLabel": "Less allowance for credit losses" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": { "auth_ref": [ "r273" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.", "label": "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs", "negatedLabel": "Amounts written off against the allowance" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_AmortizationOfIntangibleAssets": { "auth_ref": [ "r12", "r57", "r61" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.", "label": "us-gaap_AmortizationOfIntangibleAssets", "terseLabel": "Amortization of Intangible Assets" } } }, "localname": "AmortizationOfIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "auth_ref": [ "r233" ], "lang": { "en-us": { "role": { "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.", "label": "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-details-textual" ], "xbrltype": "sharesItemType" }, "us-gaap_ArrangementsAndNonarrangementTransactionsMember": { "auth_ref": [ "r414" ], "lang": { "en-us": { "role": { "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations.", "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Domain]" } } }, "localname": "ArrangementsAndNonarrangementTransactionsMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_Assets": { "auth_ref": [ "r134", "r177", "r205", "r242", "r251", "r256", "r267", "r291", "r292", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r415", "r418", "r435", "r475", "r535", "r606", "r619", "r667", "r668", "r677" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "us-gaap_Assets", "totalLabel": "Total assets" } } }, "localname": "Assets", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r169", "r185", "r205", "r267", "r291", "r292", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r415", "r418", "r435", "r606", "r667", "r668", "r677" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 7.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "us-gaap_AssetsCurrent", "totalLabel": "Total current assets" } } }, "localname": "AssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Current assets:" } } }, "localname": "AssetsCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_AwardTypeAxis": { "auth_ref": [ "r357", "r358", "r359", "r360", "r361", "r362", "r363", "r364", "r365", "r366", "r367", "r368", "r369", "r370", "r371", "r372", "r373", "r374", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382" ], "lang": { "en-us": { "role": { "documentation": "Information by type of award under share-based payment arrangement.", "label": "Award Type [Axis]" } } }, "localname": "AwardTypeAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "stringItemType" }, "us-gaap_BalanceSheetLocationAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by location on balance sheet (statement of financial position).", "label": "Balance Sheet Location [Axis]" } } }, "localname": "BalanceSheetLocationAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "stringItemType" }, "us-gaap_BalanceSheetLocationDomain": { "auth_ref": [ "r80", "r81" ], "lang": { "en-us": { "role": { "documentation": "Location in the balance sheet (statement of financial position).", "label": "Balance Sheet Location [Domain]" } } }, "localname": "BalanceSheetLocationDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "domainItemType" }, "us-gaap_BuildingAndBuildingImprovementsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Facility held for productive use including, but not limited to, office, production, storage and distribution facilities and any addition, improvement, or renovation to the structure, for example, but not limited to, interior masonry, interior flooring, electrical, and plumbing.", "label": "Building and Building Improvements [Member]" } } }, "localname": "BuildingAndBuildingImprovementsMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details" ], "xbrltype": "domainItemType" }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "auth_ref": [ "r409", "r601", "r602" ], "lang": { "en-us": { "role": { "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree.", "label": "Business Acquisition, Acquiree [Domain]" } } }, "localname": "BusinessAcquisitionAcquireeDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_BusinessAcquisitionAxis": { "auth_ref": [ "r70", "r73", "r409", "r601", "r602" ], "lang": { "en-us": { "role": { "documentation": "Information by business combination or series of individually immaterial business combinations.", "label": "Business Acquisition [Axis]" } } }, "localname": "BusinessAcquisitionAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired": { "auth_ref": [ "r71" ], "lang": { "en-us": { "role": { "documentation": "Percentage of voting equity interests acquired at the acquisition date in the business combination.", "label": "us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired", "terseLabel": "Business Acquisition, Percentage of Voting Interests Acquired" } } }, "localname": "BusinessAcquisitionPercentageOfVotingInterestsAcquired", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "percentItemType" }, "us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic": { "auth_ref": [ "r630", "r631" ], "lang": { "en-us": { "role": { "documentation": "The pro forma basic net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.", "label": "us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic", "terseLabel": "Basic (in dollars per share)" } } }, "localname": "BusinessAcquisitionProFormaEarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details" ], "xbrltype": "perShareItemType" }, "us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted": { "auth_ref": [ "r630", "r631" ], "lang": { "en-us": { "role": { "documentation": "The pro forma diluted net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.", "label": "us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted", "terseLabel": "Diluted (in dollars per share)" } } }, "localname": "BusinessAcquisitionProFormaEarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details" ], "xbrltype": "perShareItemType" }, "us-gaap_BusinessAcquisitionProFormaInformationTextBlock": { "auth_ref": [ "r630", "r631" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate.", "label": "Business Acquisition, Pro Forma Information [Table Text Block]" } } }, "localname": "BusinessAcquisitionProFormaInformationTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax": { "auth_ref": [ "r407", "r408" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of pro forma income from continuing operations as if the business combination had been completed at the beginning of a period.", "label": "us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax", "terseLabel": "Operating income" } } }, "localname": "BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss": { "auth_ref": [ "r407", "r408" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a period.", "label": "us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss", "terseLabel": "Net income" } } }, "localname": "BusinessAcquisitionsProFormaNetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessAcquisitionsProFormaRevenue": { "auth_ref": [ "r407", "r408" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period.", "label": "us-gaap_BusinessAcquisitionsProFormaRevenue", "terseLabel": "Sales" } } }, "localname": "BusinessAcquisitionsProFormaRevenue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationAcquisitionRelatedCosts": { "auth_ref": [ "r69" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 0.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.", "label": "Acquisition costs", "terseLabel": "Business Combination, Acquisition Related Costs" } } }, "localname": "BusinessCombinationAcquisitionRelatedCosts", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationConsiderationTransferred1": { "auth_ref": [ "r1", "r2", "r15" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.", "label": "us-gaap_BusinessCombinationConsiderationTransferred1", "totalLabel": "Total consideration" } } }, "localname": "BusinessCombinationConsiderationTransferred1", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred": { "auth_ref": [ "r1", "r2", "r78", "r411" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities incurred by the acquirer as part of consideration transferred in a business combination.", "label": "us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred", "terseLabel": "Business Combination, Consideration Transferred, Liabilities Incurred" } } }, "localname": "BusinessCombinationConsiderationTransferredLiabilitiesIncurred", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationConsiderationTransferredOther1": { "auth_ref": [ "r16" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of tangible or intangible assets, including a business or subsidiary of the acquirer transferred by the entity to the former owners of the acquiree. Excludes cash.", "label": "Other liability" } } }, "localname": "BusinessCombinationConsiderationTransferredOther1", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": { "auth_ref": [ "r413", "r637" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 0.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 1.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.", "label": "Change in fair value of contingent consideration", "negatedLabel": "Change in fair value of contingent consideration" } } }, "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationContingentConsiderationLiability": { "auth_ref": [ "r3", "r79", "r412" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liability recognized arising from contingent consideration in a business combination.", "label": "us-gaap_BusinessCombinationContingentConsiderationLiability", "terseLabel": "Business Combination, Contingent Consideration, Liability, Total", "verboseLabel": "Accrued contingent consideration (earn-out)" } } }, "localname": "BusinessCombinationContingentConsiderationLiability", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent": { "auth_ref": [ "r4", "r79" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details": { "order": 0.0, "parentTag": "us-gaap_OtherLiabilitiesNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liability recognized arising from contingent consideration in a business combination, expected to be settled beyond one year or the normal operating cycle, if longer.", "label": "Accrued contingent consideration (earn-out)" } } }, "localname": "BusinessCombinationContingentConsiderationLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual": { "auth_ref": [ "r72" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "This element represents the amount of earnings or loss of the acquiree since the acquisition date included in the consolidated income statement for the reporting period.", "label": "us-gaap_BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual", "terseLabel": "Business Combination, Pro Forma Information, Earnings or Loss of Acquiree since Acquisition Date, Actual" } } }, "localname": "BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual": { "auth_ref": [ "r72" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "This element represents the amount of revenue of the acquiree since the acquisition date included in the consolidated income statement for the reporting period.", "label": "us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual", "terseLabel": "Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual" } } }, "localname": "BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation": { "auth_ref": [ "r75" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lease obligation assumed in business combination.", "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation", "negatedLabel": "Lease liabilities" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCapitalLeaseObligation", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther": { "auth_ref": [ "r75" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": 3.0, "parentTag": "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of other assets expected to be realized or consumed before one year or the normal operating cycle, if longer, acquired at the acquisition date.", "label": "Other current assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": { "auth_ref": [ "r75" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": 1.0, "parentTag": "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.", "label": "Accounts receivable" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": { "auth_ref": [ "r75" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date.", "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable", "negatedLabel": "Accounts payable" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": { "auth_ref": [ "r74", "r75" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": 6.0, "parentTag": "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date.", "label": "Finite-Lived Intangibles" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory": { "auth_ref": [ "r74", "r75" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": 0.0, "parentTag": "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of inventory recognized as of the acquisition date.", "label": "Inventory" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets": { "auth_ref": [ "r75" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": 5.0, "parentTag": "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of other assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date.", "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets", "verboseLabel": "Other assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": { "auth_ref": [ "r74", "r75" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": 2.0, "parentTag": "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date.", "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment", "terseLabel": "Property, plant, and equipment" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": { "auth_ref": [ "r75" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.", "label": "Net assets acquired" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_CapitalExpendituresIncurredButNotYetPaid": { "auth_ref": [ "r49", "r50", "r51" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred.", "label": "Capital additions accrued but not yet paid" } } }, "localname": "CapitalExpendituresIncurredButNotYetPaid", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAcquiredFromAcquisition": { "auth_ref": [ "r43" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": 0.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow associated with the acquisition of business during the period (for example, cash that was held by the acquired business).", "label": "us-gaap_CashAcquiredFromAcquisition", "negatedLabel": "Cash from Advant" } } }, "localname": "CashAcquiredFromAcquisition", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "auth_ref": [ "r47", "r171", "r575" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.", "label": "Cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "auth_ref": [ "r47", "r116", "r203" ], "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "periodEndLabel": "Cash and cash equivalents at end of period", "periodStartLabel": "Cash and cash equivalents at beginning of period" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "auth_ref": [ "r5", "r116" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "totalLabel": "Net increase (decrease) in cash and cash equivalents" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashFlowSupplementalDisclosuresTextBlock": { "auth_ref": [ "r113" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for supplemental cash flow activities, including cash, noncash, and part noncash transactions, for the period. Noncash is defined as information about all investing and financing activities of an enterprise during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.", "label": "Cash Flow, Supplemental Disclosures [Text Block]" } } }, "localname": "CashFlowSupplementalDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-" ], "xbrltype": "textBlockItemType" }, "us-gaap_CommitmentsAndContingencies": { "auth_ref": [ "r36", "r89", "r477", "r522" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.", "label": "Commitments and contingencies" } } }, "localname": "CommitmentsAndContingencies", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommonStockMember": { "auth_ref": [ "r609", "r610", "r611", "r613", "r614", "r615", "r616", "r642", "r643", "r672", "r689", "r692" ], "lang": { "en-us": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock [Member]" } } }, "localname": "CommonStockMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockParOrStatedValuePerShare": { "auth_ref": [ "r97" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of common stock.", "label": "Common stock, par value (in dollars per share)" } } }, "localname": "CommonStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockSharesAuthorized": { "auth_ref": [ "r97", "r523" ], "lang": { "en-us": { "role": { "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.", "label": "Common stock, shares authorized (in shares)" } } }, "localname": "CommonStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r97" ], "lang": { "en-us": { "role": { "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.", "label": "Common stock, shares issued (in shares)" } } }, "localname": "CommonStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesOutstanding": { "auth_ref": [ "r19", "r97", "r523", "r541", "r692", "r693" ], "lang": { "en-us": { "role": { "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.", "label": "Common stock, shares outstanding (in shares)" } } }, "localname": "CommonStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r97", "r479", "r606" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 0.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Common stock, $.01 par value, 20,000,000 shares authorized; 7,642,529 and 7,612,970 shares issued and outstanding, respectively, at March 31, 2023; 7,611,244 and 7,581,685 shares issued and outstanding, respectively, at December 31, 2022" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComprehensiveIncomeNetOfTax": { "auth_ref": [ "r42", "r188", "r190", "r195", "r470", "r487" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "us-gaap_ComprehensiveIncomeNetOfTax", "totalLabel": "Comprehensive income" } } }, "localname": "ComprehensiveIncomeNetOfTax", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComprehensiveIncomeNetOfTaxAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Comprehensive Income" } } }, "localname": "ComprehensiveIncomeNetOfTaxAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "auth_ref": [ "r53", "r55", "r84", "r85", "r263", "r571" ], "lang": { "en-us": { "role": { "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.", "label": "Concentration Risk Benchmark [Domain]" } } }, "localname": "ConcentrationRiskBenchmarkDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "auth_ref": [ "r53", "r55", "r84", "r85", "r263", "r503", "r571" ], "lang": { "en-us": { "role": { "documentation": "Information by benchmark of concentration risk.", "label": "Concentration Risk Benchmark [Axis]" } } }, "localname": "ConcentrationRiskByBenchmarkAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskByTypeAxis": { "auth_ref": [ "r53", "r55", "r84", "r85", "r263", "r571", "r629" ], "lang": { "en-us": { "role": { "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.", "label": "Concentration Risk Type [Axis]" } } }, "localname": "ConcentrationRiskByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "stringItemType" }, "us-gaap_ConcentrationRiskPercentage1": { "auth_ref": [ "r53", "r55", "r84", "r85", "r263" ], "lang": { "en-us": { "role": { "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.", "label": "us-gaap_ConcentrationRiskPercentage1", "terseLabel": "Concentration Risk, Percentage" } } }, "localname": "ConcentrationRiskPercentage1", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "percentItemType" }, "us-gaap_ConcentrationRiskTypeDomain": { "auth_ref": [ "r53", "r55", "r84", "r85", "r263", "r571" ], "lang": { "en-us": { "role": { "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration.", "label": "Concentration Risk Type [Domain]" } } }, "localname": "ConcentrationRiskTypeDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_ConstructionInProgressMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service.", "label": "Construction in Progress [Member]" } } }, "localname": "ConstructionInProgressMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details" ], "xbrltype": "domainItemType" }, "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": { "auth_ref": [ "r670" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.", "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]" } } }, "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ContractWithCustomerAssetNet": { "auth_ref": [ "r329", "r331", "r342" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.", "label": "us-gaap_ContractWithCustomerAssetNet", "periodEndLabel": "Unbilled Receivables - end of period", "periodStartLabel": "Unbilled Receivables - beginning of period" } } }, "localname": "ContractWithCustomerAssetNet", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-contract-assets-and-liabilities-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerAssetReclassifiedToReceivable": { "auth_ref": [ "r595" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time from transfer to receivable due to right to consideration becoming unconditional.", "label": "us-gaap_ContractWithCustomerAssetReclassifiedToReceivable", "negatedLabel": "Decreases due to customer invoicing" } } }, "localname": "ContractWithCustomerAssetReclassifiedToReceivable", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-contract-assets-and-liabilities-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiability": { "auth_ref": [ "r329", "r330", "r342" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.", "label": "us-gaap_ContractWithCustomerLiability", "periodEndLabel": "Deferred revenue", "periodStartLabel": "Deferred revenue" } } }, "localname": "ContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-contract-assets-and-liabilities-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "auth_ref": [ "r329", "r330", "r342" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.", "label": "Deferred revenue" } } }, "localname": "ContractWithCustomerLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": { "auth_ref": [ "r343" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.", "label": "us-gaap_ContractWithCustomerLiabilityRevenueRecognized", "terseLabel": "Contract with Customer, Liability, Revenue Recognized" } } }, "localname": "ContractWithCustomerLiabilityRevenueRecognized", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfGoodsAndServicesSold": { "auth_ref": [ "r110", "r466" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 1.0, "parentTag": "us-gaap_GrossProfit", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Cost of sales" } } }, "localname": "CostOfGoodsAndServicesSold", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_CreditFacilityAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.", "label": "Credit Facility [Axis]" } } }, "localname": "CreditFacilityAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "stringItemType" }, "us-gaap_CreditFacilityDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.", "label": "Credit Facility [Domain]" } } }, "localname": "CreditFacilityDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "domainItemType" }, "us-gaap_CustomerConcentrationRiskMember": { "auth_ref": [ "r54", "r263" ], "lang": { "en-us": { "role": { "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer.", "label": "Customer Concentration Risk [Member]" } } }, "localname": "CustomerConcentrationRiskMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_CustomerListsMember": { "auth_ref": [ "r77" ], "lang": { "en-us": { "role": { "documentation": "Information about customers such as their name and contact information; it may also be an extensive database that includes other information about the customers such as their order history and demographic information.", "label": "Customer Lists [Member]" } } }, "localname": "CustomerListsMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details" ], "xbrltype": "domainItemType" }, "us-gaap_DebtDisclosureTextBlock": { "auth_ref": [ "r126", "r204", "r300", "r306", "r307", "r308", "r309", "r310", "r311", "r316", "r323", "r324", "r325" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.", "label": "Debt Disclosure [Text Block]" } } }, "localname": "DebtDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness" ], "xbrltype": "textBlockItemType" }, "us-gaap_DebtInstrumentAxis": { "auth_ref": [ "r25", "r94", "r95", "r135", "r137", "r207", "r301", "r302", "r303", "r304", "r305", "r307", "r312", "r313", "r314", "r315", "r317", "r318", "r319", "r320", "r321", "r322", "r443", "r589", "r590", "r591", "r592", "r593", "r639" ], "lang": { "en-us": { "role": { "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities.", "label": "Debt Instrument [Axis]" } } }, "localname": "DebtInstrumentAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument.", "label": "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1", "terseLabel": "Debt Instrument, Basis Spread on Variable Rate" } } }, "localname": "DebtInstrumentBasisSpreadOnVariableRate1", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "percentItemType" }, "us-gaap_DebtInstrumentFaceAmount": { "auth_ref": [ "r86", "r88", "r301", "r443", "r590", "r591" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Face (par) amount of debt instrument at time of issuance.", "label": "us-gaap_DebtInstrumentFaceAmount", "terseLabel": "Debt Instrument, Face Amount" } } }, "localname": "DebtInstrumentFaceAmount", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtInstrumentInterestRateStatedPercentage": { "auth_ref": [ "r33", "r302" ], "lang": { "en-us": { "role": { "documentation": "Contractual interest rate for funds borrowed, under the debt agreement.", "label": "us-gaap_DebtInstrumentInterestRateStatedPercentage", "terseLabel": "Debt Instrument, Interest Rate, Stated Percentage" } } }, "localname": "DebtInstrumentInterestRateStatedPercentage", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "percentItemType" }, "us-gaap_DebtInstrumentNameDomain": { "auth_ref": [ "r34", "r207", "r301", "r302", "r303", "r304", "r305", "r307", "r312", "r313", "r314", "r315", "r317", "r318", "r319", "r320", "r321", "r322", "r443", "r589", "r590", "r591", "r592", "r593", "r639" ], "lang": { "en-us": { "role": { "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities.", "label": "Debt Instrument, Name [Domain]" } } }, "localname": "DebtInstrumentNameDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "domainItemType" }, "us-gaap_DebtInstrumentPeriodicPaymentPrincipal": { "auth_ref": [ "r34" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the required periodic payments applied to principal.", "label": "us-gaap_DebtInstrumentPeriodicPaymentPrincipal", "terseLabel": "Debt Instrument, Periodic Payment, Principal" } } }, "localname": "DebtInstrumentPeriodicPaymentPrincipal", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent": { "auth_ref": [], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 1.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate carrying value as of the balance sheet date of the liabilities for all deferred compensation arrangements payable beyond one year (or the operating cycle, if longer).", "label": "Non-qualified deferred compensation plan" } } }, "localname": "DeferredCompensationLiabilityClassifiedNoncurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredCompensationPlanAssets": { "auth_ref": [ "r633" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 3.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Carrying amount as of the balance sheet date of assets held under deferred compensation agreements.", "label": "us-gaap_DeferredCompensationPlanAssets", "terseLabel": "Non-qualified deferred compensation plan" } } }, "localname": "DeferredCompensationPlanAssets", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxAssetsNet": { "auth_ref": [ "r393", "r394" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 1.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.", "label": "Deferred income taxes" } } }, "localname": "DeferredIncomeTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "auth_ref": [ "r393", "r394", "r476" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 4.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.", "label": "us-gaap_DeferredIncomeTaxLiabilitiesNet", "terseLabel": "Deferred income taxes" } } }, "localname": "DeferredIncomeTaxLiabilitiesNet", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxesAndTaxCredits": { "auth_ref": [ "r118" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred income tax expense (benefit) and income tax credits.", "label": "us-gaap_DeferredIncomeTaxesAndTaxCredits", "verboseLabel": "Deferred income taxes" } } }, "localname": "DeferredIncomeTaxesAndTaxCredits", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_DepreciationDepletionAndAmortization": { "auth_ref": [ "r12", "r246" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 12.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.", "label": "Depreciation and amortization" } } }, "localname": "DepreciationDepletionAndAmortization", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "auth_ref": [ "r671" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table Text Block]" } } }, "localname": "DisaggregationOfRevenueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "auth_ref": [ "r354", "r356", "r384", "r385", "r387", "r604" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for share-based payment arrangement.", "label": "Share-Based Payment Arrangement [Text Block]" } } }, "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureTextBlockAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "us-gaap_DisclosureTextBlockAbstract", "terseLabel": "Notes to Financial Statements" } } }, "localname": "DisclosureTextBlockAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-1-basis-of-presentation", "http://www.ufpt.com/20230331/role/statement-note-10-leases", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities", "http://www.ufpt.com/20230331/role/statement-note-15-income-tax", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation", "http://www.ufpt.com/20230331/role/statement-note-8-inventories", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment" ], "xbrltype": "stringItemType" }, "us-gaap_DisposalGroupIncludingDiscontinuedOperationAssetsNoncurrent": { "auth_ref": [ "r6", "r8", "r92", "r93", "r125", "r167", "r168" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount classified as assets attributable to disposal group held for sale or disposed of, expected to be disposed of after one year or the normal operating cycle, if longer.", "label": "us-gaap_DisposalGroupIncludingDiscontinuedOperationAssetsNoncurrent", "terseLabel": "Disposal Group, Including Discontinued Operation, Assets, Noncurrent, Total" } } }, "localname": "DisposalGroupIncludingDiscontinuedOperationAssetsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of consideration received or receivable for the disposal of assets and liabilities, including discontinued operation.", "label": "us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration", "terseLabel": "Disposal Group, Including Discontinued Operation, Consideration" } } }, "localname": "DisposalGroupIncludingDiscontinuedOperationConsideration", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain": { "auth_ref": [ "r601", "r602" ], "lang": { "en-us": { "role": { "documentation": "Name of disposal group.", "label": "Disposal Group Name [Domain]" } } }, "localname": "DisposalGroupsIncludingDiscontinuedOperationsNameDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_EarningsPerShareAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net income per share:" } } }, "localname": "EarningsPerShareAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareBasic": { "auth_ref": [ "r196", "r213", "r214", "r215", "r216", "r217", "r223", "r225", "r230", "r231", "r232", "r236", "r427", "r428", "r471", "r488", "r582" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", "label": "Basic (in dollars per share)" } } }, "localname": "EarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareDiluted": { "auth_ref": [ "r196", "r213", "r214", "r215", "r216", "r217", "r225", "r230", "r231", "r232", "r236", "r427", "r428", "r471", "r488", "r582" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", "label": "Diluted (in dollars per share)" } } }, "localname": "EarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareTextBlock": { "auth_ref": [ "r222", "r233", "r234", "r235" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for earnings per share.", "label": "Earnings Per Share [Text Block]" } } }, "localname": "EarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share" ], "xbrltype": "textBlockItemType" }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "auth_ref": [ "r674" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 3.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies; 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.", "label": "Effect of foreign currency exchange rates on cash and cash equivalents" } } }, "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "auth_ref": [ "r396" ], "lang": { "en-us": { "role": { "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "terseLabel": "Effective Income Tax Rate Reconciliation, Percent" } } }, "localname": "EffectiveIncomeTaxRateContinuingOperations", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-15-income-tax-details-textual" ], "xbrltype": "percentItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "auth_ref": [ "r386" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement.", "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "terseLabel": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "auth_ref": [ "r386" ], "lang": { "en-us": { "role": { "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "terseLabel": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual" ], "xbrltype": "durationItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": { "auth_ref": [ "r383" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of tax benefit for recognition of expense of award under share-based payment arrangement.", "label": "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense", "terseLabel": "Share-Based Payment Arrangement, Expense, Tax Benefit" } } }, "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_EquityComponentDomain": { "auth_ref": [ "r19", "r166", "r191", "r192", "r193", "r208", "r209", "r210", "r212", "r218", "r220", "r237", "r268", "r269", "r328", "r388", "r389", "r390", "r400", "r401", "r420", "r421", "r422", "r423", "r424", "r425", "r426", "r436", "r437", "r438", "r439", "r440", "r441", "r459", "r497", "r498", "r499", "r511", "r562" ], "lang": { "en-us": { "role": { "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.", "label": "Equity Component [Domain]" } } }, "localname": "EquityComponentDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock": { "auth_ref": [ "r82", "r133" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3).", "label": "Fair Value, Assets Measured on Recurring Basis [Table Text Block]" } } }, "localname": "FairValueAssetsMeasuredOnRecurringBasisTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain": { "auth_ref": [ "r20" ], "lang": { "en-us": { "role": { "documentation": "Class of asset.", "label": "Asset Class [Domain]" } } }, "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueByAssetClassAxis": { "auth_ref": [ "r82", "r83" ], "lang": { "en-us": { "role": { "documentation": "Information by class of asset.", "label": "Asset Class [Axis]" } } }, "localname": "FairValueByAssetClassAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-details-textual" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "auth_ref": [ "r314", "r346", "r347", "r348", "r349", "r350", "r351", "r431", "r460", "r461", "r462", "r590", "r591", "r598", "r599", "r600" ], "lang": { "en-us": { "role": { "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.", "label": "Fair Value Hierarchy and NAV [Axis]" } } }, "localname": "FairValueByFairValueHierarchyLevelAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByMeasurementFrequencyAxis": { "auth_ref": [ "r430", "r431", "r432", "r433", "r434" ], "lang": { "en-us": { "role": { "documentation": "Information by measurement frequency.", "label": "Measurement Frequency [Axis]" } } }, "localname": "FairValueByMeasurementFrequencyAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresTextBlock": { "auth_ref": [ "r429" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.", "label": "Fair Value Disclosures [Text Block]" } } }, "localname": "FairValueDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueInputsLevel3Member": { "auth_ref": [ "r314", "r346", "r347", "r348", "r349", "r350", "r351", "r431", "r462", "r590", "r591", "r598", "r599", "r600" ], "lang": { "en-us": { "role": { "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.", "label": "Fair Value, Inputs, Level 3 [Member]" } } }, "localname": "FairValueInputsLevel3Member", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementFrequencyDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Measurement frequency.", "label": "Measurement Frequency [Domain]" } } }, "localname": "FairValueMeasurementFrequencyDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "auth_ref": [ "r314", "r346", "r347", "r348", "r349", "r350", "r351", "r460", "r461", "r462", "r590", "r591", "r598", "r599", "r600" ], "lang": { "en-us": { "role": { "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value.", "label": "Fair Value Hierarchy and NAV [Domain]" } } }, "localname": "FairValueMeasurementsFairValueHierarchyDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementsRecurringMember": { "auth_ref": [ "r429", "r434" ], "lang": { "en-us": { "role": { "documentation": "Frequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, frequently measured at fair value.", "label": "Fair Value, Recurring [Member]" } } }, "localname": "FairValueMeasurementsRecurringMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" ], "xbrltype": "domainItemType" }, "us-gaap_FinanceLeaseInterestExpense": { "auth_ref": [ "r446", "r450", "r605" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details": { "order": 2.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of interest expense on finance lease liability.", "label": "Interest on lease liabilities" } } }, "localname": "FinanceLeaseInterestExpense", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseLiability": { "auth_ref": [ "r445", "r458" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease.", "label": "Present value of lease liabilities, finance" } } }, "localname": "FinanceLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseLiabilityCurrent": { "auth_ref": [ "r445" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details": { "order": 1.0, "parentTag": "ufpt_OperatingAndFinanceLeasesLiabilityCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current.", "label": "Finance lease liabilities - current" } } }, "localname": "FinanceLeaseLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseLiabilityNoncurrent": { "auth_ref": [ "r445" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details": { "order": 0.0, "parentTag": "ufpt_OperatingAndFinanceLeasesLiabilityNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as noncurrent.", "label": "Finance lease liabilities - long-term" } } }, "localname": "FinanceLeaseLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseLiabilityPaymentsDue": { "auth_ref": [ "r458" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments for finance lease.", "label": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "totalLabel": "Total lease payments, finance" } } }, "localname": "FinanceLeaseLiabilityPaymentsDue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths": { "auth_ref": [ "r458" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": 4.0, "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths", "terseLabel": "2024, finance" } } }, "localname": "FinanceLeaseLiabilityPaymentsDueNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour": { "auth_ref": [ "r458" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": 3.0, "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour", "terseLabel": "2027, finance" } } }, "localname": "FinanceLeaseLiabilityPaymentsDueYearFour", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree": { "auth_ref": [ "r458" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": 2.0, "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree", "terseLabel": "2026, finance" } } }, "localname": "FinanceLeaseLiabilityPaymentsDueYearThree", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo": { "auth_ref": [ "r458" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": 5.0, "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo", "terseLabel": "2025, finance" } } }, "localname": "FinanceLeaseLiabilityPaymentsDueYearTwo", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear": { "auth_ref": [ "r676" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": 0.0, "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in remainder of current fiscal year.", "label": "us-gaap_FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear", "terseLabel": "Remainder of 2023, finance" } } }, "localname": "FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount": { "auth_ref": [ "r458" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for finance lease.", "label": "us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount", "negatedLabel": "Less: Interest, finance" } } }, "localname": "FinanceLeaseLiabilityUndiscountedExcessAmount", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeasePrincipalPayments": { "auth_ref": [ "r447", "r454" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow for principal payment on finance lease.", "label": "Financing cash flows from finance leases", "negatedLabel": "Principal payments on finance lease obligations" } } }, "localname": "FinanceLeasePrincipalPayments", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseRightOfUseAsset": { "auth_ref": [ "r444" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details": { "order": 1.0, "parentTag": "ufpt_OperatingAndFinanceLeasesRightofuseAssets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after accumulated amortization, of right-of-use asset from finance lease.", "label": "Finance lease ROU assets" } } }, "localname": "FinanceLeaseRightOfUseAsset", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseRightOfUseAssetAmortization": { "auth_ref": [ "r446", "r450", "r605" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details": { "order": 4.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization expense attributable to right-of-use asset from finance lease.", "label": "Amortization of right of use assets" } } }, "localname": "FinanceLeaseRightOfUseAssetAmortization", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent": { "auth_ref": [ "r457", "r605" ], "lang": { "en-us": { "role": { "documentation": "Weighted average discount rate for finance lease calculated at point in time.", "label": "us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent", "terseLabel": "Finance" } } }, "localname": "FinanceLeaseWeightedAverageDiscountRatePercent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "percentItemType" }, "us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1": { "auth_ref": [ "r456", "r605" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining lease term for finance lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1", "terseLabel": "Finance (Year)" } } }, "localname": "FinanceLeaseWeightedAverageRemainingLeaseTerm1", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "durationItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "auth_ref": [ "r175", "r283" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details": { "order": 0.0, "parentTag": "us-gaap_IntangibleAssetsNetExcludingGoodwill", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization", "negatedLabel": "Accumulated amortization" } } }, "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": { "auth_ref": [], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details": { "order": 2.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive", "verboseLabel": "Thereafter" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": { "auth_ref": [ "r122" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details": { "order": 6.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "verboseLabel": "2024" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": { "auth_ref": [], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details": { "order": 4.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year.", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "verboseLabel": "Remainder of 2023" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": { "auth_ref": [ "r122" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details": { "order": 3.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive", "verboseLabel": "2028" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "auth_ref": [ "r122" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details": { "order": 0.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "verboseLabel": "2027" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "auth_ref": [ "r122" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details": { "order": 1.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "verboseLabel": "2026" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "auth_ref": [ "r122" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details": { "order": 5.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "verboseLabel": "2025" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "auth_ref": [ "r281", "r282", "r283", "r284", "r467", "r468" ], "lang": { "en-us": { "role": { "documentation": "Information by major type or class of finite-lived intangible assets.", "label": "Finite-Lived Intangible Assets by Major Class [Axis]" } } }, "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "auth_ref": [ "r121", "r468" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details": { "order": 1.0, "parentTag": "us-gaap_IntangibleAssetsNetExcludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Gross amount" } } }, "localname": "FiniteLivedIntangibleAssetsGross", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "auth_ref": [ "r58", "r60" ], "lang": { "en-us": { "role": { "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.", "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]" } } }, "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "domainItemType" }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "auth_ref": [ "r121", "r467" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "us-gaap_FiniteLivedIntangibleAssetsNet", "totalLabel": "Total" } } }, "localname": "FiniteLivedIntangibleAssetsNet", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_GainLossOnDispositionOfAssets": { "auth_ref": [ "r638", "r662", "r663" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, excluding oil and gas property and timber property.", "label": "us-gaap_GainLossOnDispositionOfAssets", "negatedLabel": "Loss (Gain) on disposal of property, plant & equipment" } } }, "localname": "GainLossOnDispositionOfAssets", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_GainLossOnSaleOfBusiness": { "auth_ref": [ "r417", "r638" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of gain (loss) from sale and disposal of integrated set of activities and assets capable of being conducted and managed for purpose of providing return in form of dividend, lower cost, or other economic benefit to investor, owner, member and participant.", "label": "us-gaap_GainLossOnSaleOfBusiness", "terseLabel": "Gain (Loss) on Disposition of Business" } } }, "localname": "GainLossOnSaleOfBusiness", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": { "auth_ref": [ "r12" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 4.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.", "label": "us-gaap_GainLossOnSaleOfPropertyPlantEquipment", "negatedLabel": "Loss (Gain) on disposal of property, plant & equipment" } } }, "localname": "GainLossOnSaleOfPropertyPlantEquipment", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_GeographicDistributionAxis": { "auth_ref": [ "r148", "r149", "r150", "r151", "r152", "r153", "r154", "r155", "r156", "r157", "r158", "r159", "r160", "r161", "r162", "r163", "r164", "r165", "r472", "r473", "r586" ], "lang": { "en-us": { "role": { "documentation": "Information by geographic distribution of business activity identified as either domestic or foreign. Excludes names of countries, states and provinces, and cities.", "label": "Geographic Distribution [Axis]" } } }, "localname": "GeographicDistributionAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "stringItemType" }, "us-gaap_GeographicDistributionDomain": { "auth_ref": [ "r148", "r149", "r150", "r151", "r152", "r153", "r154", "r155", "r156", "r157", "r158", "r159", "r160", "r161", "r162", "r163", "r164", "r165", "r472", "r473" ], "lang": { "en-us": { "role": { "documentation": "Allocation of business activity identified as domestic or foreign. Excludes names of countries, states and provinces, and cities.", "label": "Geographic Distribution [Domain]" } } }, "localname": "GeographicDistributionDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_GeographicDistributionForeignMember": { "auth_ref": [ "r148", "r149", "r150", "r151", "r152", "r153", "r154", "r155", "r156", "r157", "r158", "r159", "r160", "r161", "r162", "r163", "r164", "r165", "r472", "r473", "r587" ], "lang": { "en-us": { "role": { "documentation": "Allocation of business activity identified as foreign.", "label": "Geographic Distribution, Foreign [Member]" } } }, "localname": "GeographicDistributionForeignMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_Goodwill": { "auth_ref": [ "r174", "r278", "r469", "r588", "r606", "r652", "r659" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 5.0, "parentTag": "us-gaap_Assets", "weight": 1.0 }, "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": 4.0, "parentTag": "ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill", "periodEndLabel": "March 31, 2023", "periodStartLabel": "December 31, 2022" } } }, "localname": "Goodwill", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-changes-in-carrying-amount-of-goodwill-details", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": { "auth_ref": [ "r279" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of foreign currency translation gain (loss) which increases (decreases) an asset representing future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Foreign currency translation" } } }, "localname": "GoodwillForeignCurrencyTranslationGainLoss", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-changes-in-carrying-amount-of-goodwill-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_GrossProfit": { "auth_ref": [ "r109", "r205", "r242", "r250", "r255", "r258", "r267", "r291", "r292", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r435", "r584", "r667" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 2.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.", "label": "us-gaap_GrossProfit", "totalLabel": "Gross profit" } } }, "localname": "GrossProfit", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r0", "r107", "r139", "r242", "r250", "r255", "r258", "r473", "r485", "r584" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 0.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", "label": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "totalLabel": "Income before income tax expense" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeStatementAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Income Statement [Abstract]" } } }, "localname": "IncomeStatementAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis": { "auth_ref": [ "r601", "r602" ], "lang": { "en-us": { "role": { "documentation": "Information by name of disposal group.", "label": "Disposal Group Name [Axis]" } } }, "localname": "IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationAxis": { "auth_ref": [ "r285", "r286", "r546" ], "lang": { "en-us": { "role": { "documentation": "Information by location in the income statement.", "label": "Income Statement Location [Axis]" } } }, "localname": "IncomeStatementLocationAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationDomain": { "auth_ref": [ "r286", "r546" ], "lang": { "en-us": { "role": { "documentation": "Location in the income statement.", "label": "Income Statement Location [Domain]" } } }, "localname": "IncomeStatementLocationDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxDisclosureTextBlock": { "auth_ref": [ "r206", "r392", "r397", "r398", "r399", "r402", "r404", "r405", "r406", "r510" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.", "label": "Income Tax Disclosure [Text Block]" } } }, "localname": "IncomeTaxDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-15-income-tax" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r142", "r146", "r219", "r220", "r247", "r395", "r403", "r489" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 1.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Income tax expense" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxesPaidNet": { "auth_ref": [ "r48" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.", "label": "Income taxes, net of refunds" } } }, "localname": "IncomeTaxesPaidNet", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "auth_ref": [ "r11" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "us-gaap_IncreaseDecreaseInAccountsPayable", "verboseLabel": "Accounts payable" } } }, "localname": "IncreaseDecreaseInAccountsPayable", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "auth_ref": [ "r11" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", "label": "us-gaap_IncreaseDecreaseInAccountsReceivable", "negatedLabel": "Receivables, net" } } }, "localname": "IncreaseDecreaseInAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccruedLiabilities": { "auth_ref": [ "r11" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.", "label": "us-gaap_IncreaseDecreaseInAccruedLiabilities", "verboseLabel": "Accrued expenses" } } }, "localname": "IncreaseDecreaseInAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": { "auth_ref": [ "r465", "r637" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.", "label": "us-gaap_IncreaseDecreaseInContractWithCustomerLiability", "verboseLabel": "Deferred revenue" } } }, "localname": "IncreaseDecreaseInContractWithCustomerLiability", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInIncomeTaxesPayableNetOfIncomeTaxesReceivable": { "auth_ref": [ "r637" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 13.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the amounts payable to taxing authorities for taxes that are based on the reporting entity's earnings, net of amounts receivable from taxing authorities for refunds of overpayments or recoveries of income taxes.", "label": "Income taxes payable" } } }, "localname": "IncreaseDecreaseInIncomeTaxesPayableNetOfIncomeTaxesReceivable", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInInventories": { "auth_ref": [ "r11" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", "label": "us-gaap_IncreaseDecreaseInInventories", "negatedLabel": "Inventories" } } }, "localname": "IncreaseDecreaseInInventories", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Changes in operating assets and liabilities:" } } }, "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_IncreaseDecreaseInOtherOperatingAssets": { "auth_ref": [ "r11" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in operating assets classified as other.", "label": "us-gaap_IncreaseDecreaseInOtherOperatingAssets", "negatedLabel": "Other assets" } } }, "localname": "IncreaseDecreaseInOtherOperatingAssets", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOtherOperatingLiabilities": { "auth_ref": [ "r11" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 14.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in operating liabilities classified as other.", "label": "Non-qualified deferred compensation plan and other liabilities" } } }, "localname": "IncreaseDecreaseInOtherOperatingLiabilities", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "auth_ref": [ "r11" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.", "label": "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "negatedLabel": "Prepaid expenses and other current assets" } } }, "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": { "auth_ref": [ "r226", "r227", "r228", "r232", "r355" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details": { "order": 0.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.", "label": "Weighted average common equivalent shares due to restricted stock, stock options and RSUs (in shares)" } } }, "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" ], "xbrltype": "sharesItemType" }, "us-gaap_IntangibleAssetsDisclosureTextBlock": { "auth_ref": [ "r280" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for all or part of the information related to intangible assets.", "label": "Intangible Assets Disclosure [Text Block]" } } }, "localname": "IntangibleAssetsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-" ], "xbrltype": "textBlockItemType" }, "us-gaap_IntangibleAssetsNetExcludingGoodwill": { "auth_ref": [ "r56", "r59" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 2.0, "parentTag": "us-gaap_Assets", "weight": 1.0 }, "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.", "label": "us-gaap_IntangibleAssetsNetExcludingGoodwill", "terseLabel": "Intangible assets, net", "totalLabel": "Net balance" } } }, "localname": "IntangibleAssetsNetExcludingGoodwill", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_IntellectualPropertyMember": { "auth_ref": [ "r24" ], "lang": { "en-us": { "role": { "documentation": "Intangible asset arising from original creative thought. Include, but is not limited to, trademarks, patents, and copyrights.", "label": "Intellectual Property [Member]" } } }, "localname": "IntellectualPropertyMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "domainItemType" }, "us-gaap_InterestExpense": { "auth_ref": [ "r87", "r141", "r194", "r245", "r442", "r547", "r617", "r691" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 0.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the cost of borrowed funds accounted for as interest expense.", "label": "Interest expense, net" } } }, "localname": "InterestExpense", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_InterestPaidNet": { "auth_ref": [ "r199", "r201", "r202" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.", "label": "Interest" } } }, "localname": "InterestPaidNet", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryDisclosureTextBlock": { "auth_ref": [ "r275" ], "lang": { "en-us": { "role": { "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.", "label": "Inventory Disclosure [Text Block]" } } }, "localname": "InventoryDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-8-inventories" ], "xbrltype": "textBlockItemType" }, "us-gaap_InventoryFinishedGoodsNetOfReserves": { "auth_ref": [ "r120", "r579" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details": { "order": 2.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Finished goods" } } }, "localname": "InventoryFinishedGoodsNetOfReserves", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryNet": { "auth_ref": [ "r183", "r576", "r606" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 1.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 }, "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Inventories", "totalLabel": "Total inventory" } } }, "localname": "InventoryNet", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryRawMaterialsNetOfReserves": { "auth_ref": [ "r120", "r581" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details": { "order": 0.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Raw materials" } } }, "localname": "InventoryRawMaterialsNetOfReserves", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryWorkInProcessNetOfReserves": { "auth_ref": [ "r120", "r580" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details": { "order": 1.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Work in process" } } }, "localname": "InventoryWorkInProcessNetOfReserves", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LandAndLandImprovementsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Real estate held and assets that are an addition or improvement to real estate held.", "label": "Land and Land Improvements [Member]" } } }, "localname": "LandAndLandImprovementsMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details" ], "xbrltype": "domainItemType" }, "us-gaap_LeaseCost": { "auth_ref": [ "r449", "r605" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lease cost recognized by lessee for lease contract.", "label": "us-gaap_LeaseCost", "totalLabel": "Total lease cost" } } }, "localname": "LeaseCost", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LeaseCostAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Lease Cost:" } } }, "localname": "LeaseCostAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "stringItemType" }, "us-gaap_LeaseCostTableTextBlock": { "auth_ref": [ "r675" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.", "label": "Lease, Cost [Table Text Block]" } } }, "localname": "LeaseCostTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LeaseholdImprovementsMember": { "auth_ref": [ "r124" ], "lang": { "en-us": { "role": { "documentation": "Additions or improvements to assets held under a lease arrangement.", "label": "Leasehold Improvements [Member]" } } }, "localname": "LeaseholdImprovementsMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details" ], "xbrltype": "domainItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "auth_ref": [ "r458" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "totalLabel": "Total lease payments, operating" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "auth_ref": [ "r458" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": 4.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "terseLabel": "2024, operating" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "auth_ref": [ "r458" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": 3.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "terseLabel": "2027, operating" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "auth_ref": [ "r458" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": 2.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "terseLabel": "2026, operating" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "auth_ref": [ "r458" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": 5.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "terseLabel": "2025, operating" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": { "auth_ref": [ "r676" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details": { "order": 0.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year.", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "terseLabel": "Remainder of 2023, operating" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "auth_ref": [ "r458" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.", "label": "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "negatedLabel": "Less: Interest, operating" } } }, "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LettersOfCreditOutstandingAmount": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date.", "label": "us-gaap_LettersOfCreditOutstandingAmount", "terseLabel": "Letters of Credit Outstanding, Amount" } } }, "localname": "LettersOfCreditOutstandingAmount", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_Liabilities": { "auth_ref": [ "r29", "r205", "r267", "r291", "r292", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r416", "r418", "r419", "r435", "r521", "r583", "r619", "r667", "r677", "r678" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 0.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.", "label": "us-gaap_Liabilities", "totalLabel": "Total liabilities" } } }, "localname": "Liabilities", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r102", "r138", "r482", "r606", "r640", "r649", "r673" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", "label": "us-gaap_LiabilitiesAndStockholdersEquity", "totalLabel": "Total liabilities and stockholders' equity" } } }, "localname": "LiabilitiesAndStockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r32", "r170", "r205", "r267", "r291", "r292", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r416", "r418", "r419", "r435", "r606", "r667", "r677", "r678" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 5.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.", "label": "us-gaap_LiabilitiesCurrent", "totalLabel": "Total current liabilities" } } }, "localname": "LiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Current liabilities:" } } }, "localname": "LiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_LineOfCreditFacilityAxis": { "auth_ref": [ "r28", "r639" ], "lang": { "en-us": { "role": { "documentation": "Information by name of lender, which may be a single entity (for example, but not limited to, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit.", "label": "Lender Name [Axis]" } } }, "localname": "LineOfCreditFacilityAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "stringItemType" }, "us-gaap_LineOfCreditFacilityLenderDomain": { "auth_ref": [ "r28", "r639" ], "lang": { "en-us": { "role": { "documentation": "Identification of the lender, which may be a single entity (for example, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit, including a letter of credit facility.", "label": "Line of Credit Facility, Lender [Domain]" } } }, "localname": "LineOfCreditFacilityLenderDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": { "auth_ref": [ "r28" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.", "label": "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity", "terseLabel": "Line of Credit Facility, Maximum Borrowing Capacity" } } }, "localname": "LineOfCreditFacilityMaximumBorrowingCapacity", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A contractual arrangement with a lender under which borrowings can be made up to a specific amount at any point in time, and under which borrowings outstanding may be either short-term or long-term, depending upon the particulars.", "label": "Line of Credit [Member]" } } }, "localname": "LineOfCreditMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "domainItemType" }, "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": { "auth_ref": [ "r648" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for claims held for amounts due a entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses.", "label": "Loans, Notes, Trade and Other Receivables Disclosure [Text Block]" } } }, "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses" ], "xbrltype": "textBlockItemType" }, "us-gaap_LongTermDebt": { "auth_ref": [ "r25", "r137", "r313", "r326", "r590", "r591", "r685" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease obligation.", "label": "Total long-term debt", "terseLabel": "Long-Term Debt", "totalLabel": "Long-Term Debt" } } }, "localname": "LongTermDebt", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtCurrent": { "auth_ref": [ "r178" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 5.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as current. Excludes lease obligation.", "label": "Current portion of long-term debt", "negatedLabel": "Current portion" } } }, "localname": "LongTermDebtCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths": { "auth_ref": [ "r14", "r207", "r318" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details": { "order": 1.0, "parentTag": "us-gaap_LongTermDebt", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths", "verboseLabel": "2024" } } }, "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree": { "auth_ref": [ "r14", "r207", "r318" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details": { "order": 3.0, "parentTag": "us-gaap_LongTermDebt", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree", "verboseLabel": "2026" } } }, "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo": { "auth_ref": [ "r14", "r207", "r318" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details": { "order": 0.0, "parentTag": "us-gaap_LongTermDebt", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo", "verboseLabel": "2025" } } }, "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear": { "auth_ref": [ "r641" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details": { "order": 2.0, "parentTag": "us-gaap_LongTermDebt", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in remainder of current fiscal year.", "label": "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear", "verboseLabel": "Remainder of 2023" } } }, "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalRemainderOfFiscalYear", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtNoncurrent": { "auth_ref": [ "r179" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 3.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation.", "label": "Long-term debt, excluding current portion", "terseLabel": "Long-term debt, excluding current installments" } } }, "localname": "LongTermDebtNoncurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongtermDebtTypeAxis": { "auth_ref": [ "r34" ], "lang": { "en-us": { "role": { "documentation": "Information by type of long-term debt.", "label": "Long-Term Debt, Type [Axis]" } } }, "localname": "LongtermDebtTypeAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "stringItemType" }, "us-gaap_LongtermDebtTypeDomain": { "auth_ref": [ "r34", "r63" ], "lang": { "en-us": { "role": { "documentation": "Type of long-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer.", "label": "Long-Term Debt, Type [Domain]" } } }, "localname": "LongtermDebtTypeDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "domainItemType" }, "us-gaap_MachineryAndEquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment.", "label": "Machinery and Equipment [Member]" } } }, "localname": "MachineryAndEquipmentMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details" ], "xbrltype": "domainItemType" }, "us-gaap_MergersAcquisitionsAndDispositionsDisclosuresTextBlock": { "auth_ref": [ "r91", "r129" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for business combinations, including leverage buyout transactions (as applicable), and divestitures. This may include a description of a business combination or divestiture (or series of individually immaterial business combinations or divestitures) completed during the period, including background, timing, and assets and liabilities recognized and reclassified or sold. This element does not include fixed asset sales and plant closings.", "label": "Mergers, Acquisitions and Dispositions Disclosures [Text Block]" } } }, "localname": "MergersAcquisitionsAndDispositionsDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture" ], "xbrltype": "textBlockItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r200" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 1.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.", "label": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "totalLabel": "Net cash provided by financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Cash flows from financing activities:" } } }, "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r200" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 0.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.", "label": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "totalLabel": "Net cash used in investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Cash flows from investing activities:" } } }, "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r116", "r117", "r118" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 2.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.", "label": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "totalLabel": "Net cash provided by (used in) operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Cash flows from operating activities:" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r108", "r118", "r140", "r168", "r186", "r189", "r193", "r205", "r211", "r213", "r214", "r215", "r216", "r219", "r220", "r229", "r242", "r250", "r255", "r258", "r267", "r291", "r292", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r428", "r435", "r486", "r543", "r560", "r561", "r584", "r617", "r667" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 11.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 1.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.", "label": "Net income", "totalLabel": "Net income" } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_NoncashInvestingAndFinancingItemsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Non-cash investing and financing activities:" } } }, "localname": "NoncashInvestingAndFinancingItemsAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" ], "xbrltype": "stringItemType" }, "us-gaap_NoncompeteAgreementsMember": { "auth_ref": [ "r76" ], "lang": { "en-us": { "role": { "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party.", "label": "Noncompete Agreements [Member]" } } }, "localname": "NoncompeteAgreementsMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details" ], "xbrltype": "domainItemType" }, "us-gaap_NumberOfOperatingSegments": { "auth_ref": [ "r647" ], "lang": { "en-us": { "role": { "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.", "label": "us-gaap_NumberOfOperatingSegments", "terseLabel": "Number of Operating Segments" } } }, "localname": "NumberOfOperatingSegments", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "integerItemType" }, "us-gaap_OperatingIncomeLoss": { "auth_ref": [ "r242", "r250", "r255", "r258", "r584" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 2.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The net result for the period of deducting operating expenses from operating revenues.", "label": "us-gaap_OperatingIncomeLoss", "totalLabel": "Operating income" } } }, "localname": "OperatingIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseCost": { "auth_ref": [ "r451", "r605" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details": { "order": 3.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.", "label": "Operating lease cost" } } }, "localname": "OperatingLeaseCost", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiability": { "auth_ref": [ "r445" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.", "label": "Present value of lease liabilities, operating" } } }, "localname": "OperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityCurrent": { "auth_ref": [ "r445" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details": { "order": 0.0, "parentTag": "ufpt_OperatingAndFinanceLeasesLiabilityCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.", "label": "Operating lease liabilities - current" } } }, "localname": "OperatingLeaseLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "auth_ref": [ "r445" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details": { "order": 1.0, "parentTag": "ufpt_OperatingAndFinanceLeasesLiabilityNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.", "label": "Operating lease liabilities - long-term" } } }, "localname": "OperatingLeaseLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasePayments": { "auth_ref": [ "r448", "r454" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.", "label": "Operating cash flows from operating leases" } } }, "localname": "OperatingLeasePayments", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseRightOfUseAsset": { "auth_ref": [ "r444" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details": { "order": 0.0, "parentTag": "ufpt_OperatingAndFinanceLeasesRightofuseAssets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's right to use underlying asset under operating lease.", "label": "Operating lease ROU assets" } } }, "localname": "OperatingLeaseRightOfUseAsset", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "auth_ref": [ "r457", "r605" ], "lang": { "en-us": { "role": { "documentation": "Weighted average discount rate for operating lease calculated at point in time.", "label": "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent", "terseLabel": "Operating" } } }, "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "percentItemType" }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "auth_ref": [ "r456", "r605" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1", "terseLabel": "Operating (Year)" } } }, "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "durationItemType" }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock": { "auth_ref": [ "r90", "r131", "r504", "r505" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for organization, consolidation and basis of presentation of financial statements disclosure.", "label": "Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]" } } }, "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-1-basis-of-presentation" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherAssetsNoncurrent": { "auth_ref": [ "r176" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 6.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncurrent assets classified as other.", "label": "Other assets" } } }, "localname": "OtherAssetsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r10", "r17", "r132" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 0.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity.", "label": "Foreign currency translation gain" } } }, "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r10", "r17", "r132", "r187", "r190" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 0.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity.", "label": "Other comprehensive income", "totalLabel": "Other comprehensive gain" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Other comprehensive income:" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_OtherLiabilitiesDisclosureTextBlock": { "auth_ref": [ "r31" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for other liabilities.", "label": "Other Liabilities Disclosure [Text Block]" } } }, "localname": "OtherLiabilitiesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherLiabilitiesNoncurrent": { "auth_ref": [ "r35" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 0.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 }, "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.", "label": "us-gaap_OtherLiabilitiesNoncurrent", "totalLabel": "Other Liabilities, Noncurrent", "verboseLabel": "Other liabilities" } } }, "localname": "OtherLiabilitiesNoncurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherNoncurrentLiabilitiesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of other noncurrent liabilities.", "label": "Other Noncurrent Liabilities [Table Text Block]" } } }, "localname": "OtherNoncurrentLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherNonoperatingIncomeExpense": { "auth_ref": [ "r112" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 1.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (expense) related to nonoperating activities, classified as other.", "label": "us-gaap_OtherNonoperatingIncomeExpense", "negatedLabel": "Other expense (income)" } } }, "localname": "OtherNonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "auth_ref": [ "r198" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 0.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "negatedLabel": "Payment of statutory withholdings for restricted stock units vested" } } }, "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesGross": { "auth_ref": [ "r44", "r410" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details": { "order": 2.0, "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.", "label": "Cash paid at closing", "terseLabel": "Payments to Acquire Businesses, Gross" } } }, "localname": "PaymentsToAcquireBusinessesGross", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": { "auth_ref": [ "r44" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.", "label": "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired", "negatedLabel": "Acquisition, net of cash acquired", "terseLabel": "Payments to Acquire Businesses, Net of Cash Acquired, Total" } } }, "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [ "r115" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", "label": "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment", "negatedLabel": "Additions to property, plant, and equipment" } } }, "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "auth_ref": [ "r96", "r327" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.", "label": "Preferred stock, par value (in dollars per share)" } } }, "localname": "PreferredStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "xbrltype": "perShareItemType" }, "us-gaap_PreferredStockSharesAuthorized": { "auth_ref": [ "r96", "r523" ], "lang": { "en-us": { "role": { "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.", "label": "Preferred stock, shares authorized (in shares)" } } }, "localname": "PreferredStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockSharesIssued": { "auth_ref": [ "r96", "r327" ], "lang": { "en-us": { "role": { "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.", "label": "Preferred stock, shares issued (in shares)" } } }, "localname": "PreferredStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockValue": { "auth_ref": [ "r96", "r478", "r606" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 4.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Preferred stock, $.01 par value, 1,000,000 shares authorized; no shares issued" } } }, "localname": "PreferredStockValue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PrepaidExpenseCurrent": { "auth_ref": [ "r184", "r276", "r277", "r578" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 3.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.", "label": "Prepaid expenses and other current assets" } } }, "localname": "PrepaidExpenseCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_PrimeRateMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Interest rate charged by financial institutions to their most creditworthy borrowers.", "label": "Prime Rate [Member]" } } }, "localname": "PrimeRateMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_ProceedsFromLinesOfCredit": { "auth_ref": [ "r45", "r639" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "Proceeds from advances on revolving line of credit" } } }, "localname": "ProceedsFromLinesOfCredit", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": { "auth_ref": [ "r114" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 0.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.", "label": "Proceeds from sale of fixed assets" } } }, "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromStockOptionsExercised": { "auth_ref": [ "r9", "r23" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement.", "label": "Proceeds from the exercise of stock options", "terseLabel": "Proceeds from Stock Options Exercised" } } }, "localname": "ProceedsFromStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProductMember": { "auth_ref": [ "r596" ], "lang": { "en-us": { "role": { "documentation": "Article or substance produced by nature, labor or machinery.", "label": "Product [Member]" } } }, "localname": "ProductMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" ], "xbrltype": "domainItemType" }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "auth_ref": [ "r13" ], "lang": { "en-us": { "role": { "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.", "label": "Long-Lived Tangible Asset [Axis]" } } }, "localname": "PropertyPlantAndEquipmentByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": { "auth_ref": [ "r123", "r143", "r144", "r145" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.", "label": "Property, Plant and Equipment Disclosure [Text Block]" } } }, "localname": "PropertyPlantAndEquipmentDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentGross": { "auth_ref": [ "r124", "r172", "r484" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details": { "order": 1.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, plant, and equipment" } } }, "localname": "PropertyPlantAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r13", "r474", "r484", "r606" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 4.0, "parentTag": "us-gaap_Assets", "weight": 1.0 }, "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, plant and equipment, net", "totalLabel": "Net property, plant and equipment" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "auth_ref": [ "r13" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.", "label": "Property, Plant and Equipment [Table Text Block]" } } }, "localname": "PropertyPlantAndEquipmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "auth_ref": [ "r124" ], "lang": { "en-us": { "role": { "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.", "label": "Long-Lived Tangible Asset [Domain]" } } }, "localname": "PropertyPlantAndEquipmentTypeDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details" ], "xbrltype": "domainItemType" }, "us-gaap_ProvisionForDoubtfulAccounts": { "auth_ref": [ "r197", "r272" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.", "label": "Adjustment for expected credit losses" } } }, "localname": "ProvisionForDoubtfulAccounts", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_ReceivablesNetCurrent": { "auth_ref": [ "r606" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "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.", "label": "us-gaap_ReceivablesNetCurrent", "totalLabel": "Receivables, net" } } }, "localname": "ReceivablesNetCurrent", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_RepaymentsOfLinesOfCredit": { "auth_ref": [ "r46", "r639" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "us-gaap_RepaymentsOfLinesOfCredit", "negatedLabel": "Payments on revolving line of credit" } } }, "localname": "RepaymentsOfLinesOfCredit", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_RepaymentsOfLongTermDebt": { "auth_ref": [ "r46", "r508" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer.", "label": "us-gaap_RepaymentsOfLongTermDebt", "negatedLabel": "Principal payments of long-term debt" } } }, "localname": "RepaymentsOfLongTermDebt", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_RestrictedStockUnitsRSUMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.", "label": "Restricted Stock Units (RSUs) [Member]" } } }, "localname": "RestrictedStockUnitsRSUMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details" ], "xbrltype": "domainItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r99", "r127", "r481", "r500", "r502", "r509", "r524", "r606" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated undistributed earnings (deficit).", "label": "Retained earnings" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [ "r166", "r208", "r209", "r210", "r212", "r218", "r220", "r268", "r269", "r388", "r389", "r390", "r400", "r401", "r420", "r422", "r423", "r425", "r426", "r497", "r499", "r511", "r692" ], "lang": { "en-us": { "role": { "documentation": "Accumulated undistributed earnings (deficit).", "label": "Retained Earnings [Member]" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": { "auth_ref": [ "r243", "r244", "r249", "r253", "r254", "r260", "r262", "r263", "r340", "r341", "r466" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 0.0, "parentTag": "us-gaap_GrossProfit", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "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.", "label": "Net sales" } } }, "localname": "RevenueFromContractWithCustomerIncludingAssessedTax", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "auth_ref": [ "r147", "r332", "r333", "r334", "r335", "r336", "r337", "r338", "r339", "r344" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.", "label": "Revenue from Contract with Customer [Text Block]" } } }, "localname": "RevenueFromContractWithCustomerTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevolvingCreditFacilityMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount.", "label": "Revolving Credit Facility [Member]" } } }, "localname": "RevolvingCreditFacilityMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details" ], "xbrltype": "domainItemType" }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "auth_ref": [ "r455", "r605" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability.", "label": "Operating lease right of use assets" } } }, "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_SalesRevenueNetMember": { "auth_ref": [ "r263", "r628" ], "lang": { "en-us": { "role": { "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation.", "label": "Revenue Benchmark [Member]" } } }, "localname": "SalesRevenueNetMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_ScenarioAdjustmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Domain member used to indicate figures that are adjustments during a period or as of a point in time. This domain member would never be expected to appear in a relationship group without the \"Scenario, Previously Reported\" Member with the same parent.", "label": "Scenario, Adjustment [Member]" } } }, "localname": "ScenarioAdjustmentMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": { "auth_ref": [ "r38" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.", "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]" } } }, "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of supplemental cash flow information for the periods presented.", "label": "Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]" } } }, "localname": "ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfDebtTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of information pertaining to short-term and long-debt instruments or arrangements, including but not limited to identification of terms, features, collateral requirements and other information necessary to a fair presentation.", "label": "Schedule of Debt [Table Text Block]" } } }, "localname": "ScheduleOfDebtTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "auth_ref": [ "r58", "r60" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.", "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfGoodwillTextBlock": { "auth_ref": [ "r588", "r651", "r652", "r653", "r654", "r655", "r656", "r657", "r658", "r659", "r660", "r661" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.", "label": "Schedule of Goodwill [Table Text Block]" } } }, "localname": "ScheduleOfGoodwillTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": { "auth_ref": [ "r26", "r103", "r104", "r105" ], "lang": { "en-us": { "role": { "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.", "label": "Schedule of Inventory, Current [Table Text Block]" } } }, "localname": "ScheduleOfInventoryCurrentTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-8-inventories-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock": { "auth_ref": [ "r14" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of maturity and sinking fund requirement for long-term debt.", "label": "Schedule of Maturities of Long-Term Debt [Table Text Block]" } } }, "localname": "ScheduleOfMaturitiesOfLongTermDebtTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock": { "auth_ref": [ "r130" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the amounts recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree.", "label": "Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]" } } }, "localname": "ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the extent of the entity's reliance on its major customers, if revenues from transactions with a single external customer amount to 10 percent or more of entity revenues, including the disclosure of that fact, the total amount of revenues from each such customer, and the identity of the reportable segment or segments reporting the revenues. The entity need not disclose the identity of a major customer or the amount of revenues that each segment reports from that customer. For these purposes, a group of companies known to the entity to be under common control is considered a single customer, and the federal government, a state government, a local government such as a county or municipality, or a foreign government is each considered a single customer.", "label": "Schedule of Revenue by Major Customers by Reporting Segments [Table Text Block]" } } }, "localname": "ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": { "auth_ref": [ "r67" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year.", "label": "Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]" } } }, "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": { "auth_ref": [ "r21", "r22", "r67" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.", "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]" } } }, "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock": { "auth_ref": [ "r52" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit).", "label": "Schedule of Weighted Average Number of Shares [Table Text Block]" } } }, "localname": "ScheduleOfWeightedAverageNumberOfSharesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": { "auth_ref": [ "r60" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.", "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]" } } }, "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-tables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SegmentReportingDisclosureTextBlock": { "auth_ref": [ "r238", "r239", "r240", "r241", "r242", "r248", "r252", "r256", "r257", "r258", "r259", "r260", "r261", "r263" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.", "label": "Segment Reporting Disclosure [Text Block]" } } }, "localname": "SegmentReportingDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-" ], "xbrltype": "textBlockItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "auth_ref": [ "r111" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited": { "order": 3.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.", "label": "Selling, general & administrative expenses" } } }, "localname": "SellingGeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpensesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing selling, general and administrative expense.", "label": "Selling, General and Administrative Expenses [Member]" } } }, "localname": "SellingGeneralAndAdministrativeExpensesMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r11" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncash expense for share-based payment arrangement.", "label": "us-gaap_ShareBasedCompensation", "verboseLabel": "Share-based compensation" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": { "auth_ref": [ "r373" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "negatedLabel": "Shares forfeited, restricted stock units (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": { "auth_ref": [ "r373" ], "lang": { "en-us": { "role": { "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.", "label": "Shares forfeited, weighted average award date fair value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "auth_ref": [ "r371" ], "lang": { "en-us": { "role": { "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).", "label": "Awarded, restricted stock units (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r371" ], "lang": { "en-us": { "role": { "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).", "label": "Awarded, weighted average award date fair value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": { "auth_ref": [ "r368", "r369" ], "lang": { "en-us": { "role": { "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "periodEndLabel": "Outstanding, restricted stock units (in shares)", "periodStartLabel": "Outstanding, restricted stock units (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "auth_ref": [ "r368", "r369" ], "lang": { "en-us": { "role": { "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "periodEndLabel": "Outstanding, weighted average award date fair value (in dollars per share)", "periodStartLabel": "Outstanding, weighted average award date fair value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": { "auth_ref": [ "r372" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "negatedLabel": "Shares vested, restricted stock units (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r372" ], "lang": { "en-us": { "role": { "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.", "label": "Shares vested, weighted average award date fair value (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": { "auth_ref": [ "r362" ], "lang": { "en-us": { "role": { "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber", "terseLabel": "Exercisable, shares under options (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": { "auth_ref": [ "r362" ], "lang": { "en-us": { "role": { "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice", "terseLabel": "Exercisable, weighted average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": { "auth_ref": [ "r375" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "auth_ref": [ "r364" ], "lang": { "en-us": { "role": { "documentation": "Gross number of share options (or share units) granted during the period.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "terseLabel": "Granted, shares under options (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": { "auth_ref": [ "r66" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.", "label": "Outstanding, aggregate intrinsic value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "auth_ref": [ "r360", "r361" ], "lang": { "en-us": { "role": { "documentation": "Number of options outstanding, including both vested and non-vested options.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "periodEndLabel": "Outstanding, shares under options (in shares)", "periodStartLabel": "Outstanding, shares under options (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": { "auth_ref": [ "r360", "r361" ], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "periodEndLabel": "Outstanding, weighted average exercise price (in dollars per share)", "periodStartLabel": "Outstanding, weighted average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice": { "auth_ref": [ "r377" ], "lang": { "en-us": { "role": { "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest exercisable or convertible options. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice", "terseLabel": "Vested and expected to vest, weighted average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": { "auth_ref": [ "r376" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Vested and expected to vest, aggregate intrinsic value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": { "auth_ref": [ "r376" ], "lang": { "en-us": { "role": { "documentation": "Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "terseLabel": "Vested and expected to vest, shares under options (in shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "auth_ref": [ "r357", "r358", "r359", "r360", "r361", "r362", "r363", "r364", "r365", "r366", "r367", "r368", "r369", "r370", "r371", "r372", "r373", "r374", "r375", "r376", "r377", "r378", "r379", "r380", "r381", "r382" ], "lang": { "en-us": { "role": { "documentation": "Award under share-based payment arrangement.", "label": "Award Type [Domain]" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "auth_ref": [ "r365" ], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.", "label": "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "terseLabel": "Granted, weighted average exercise price (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": { "auth_ref": [ "r364" ], "lang": { "en-us": { "role": { "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.", "label": "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice", "terseLabel": "Granted (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "perShareItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": { "auth_ref": [ "r66" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.", "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1", "terseLabel": "Exercisable, aggregate intrinsic value" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": { "auth_ref": [ "r66" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1", "terseLabel": "Exercisable, weighted average remaining contractual life (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": { "auth_ref": [ "r128" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Outstanding, weighted average remaining contractual life (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": { "auth_ref": [ "r376" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Vested and expected to vest, weighted average remaining contractual life (Year)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "durationItemType" }, "us-gaap_SharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of shares issued which are neither cancelled nor held in the treasury.", "label": "us-gaap_SharesOutstanding", "periodEndLabel": "Balance (in shares)", "periodStartLabel": "Balance (in shares)" } } }, "localname": "SharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "sharesItemType" }, "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation", "negatedLabel": "Net share settlement of RSU's (in shares)", "terseLabel": "Share-Based Payment Arrangement, Shares Withheld for Tax Withholding Obligation (in shares)" } } }, "localname": "SharesPaidForTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual" ], "xbrltype": "sharesItemType" }, "us-gaap_ShortTermLeaseCost": { "auth_ref": [ "r452", "r605" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details": { "order": 1.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less.", "label": "Short-term lease cost" } } }, "localname": "ShortTermLeaseCost", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r19", "r37", "r166", "r191", "r192", "r193", "r208", "r209", "r210", "r212", "r218", "r220", "r237", "r268", "r269", "r328", "r388", "r389", "r390", "r400", "r401", "r420", "r421", "r422", "r423", "r424", "r425", "r426", "r436", "r437", "r438", "r439", "r440", "r441", "r459", "r497", "r498", "r499", "r511", "r562" ], "lang": { "en-us": { "role": { "documentation": "Information by component of equity.", "label": "Equity Components [Axis]" } } }, "localname": "StatementEquityComponentsAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_StatementLineItems": { "auth_ref": [ "r208", "r209", "r210", "r237", "r466", "r506", "r512", "r515", "r516", "r517", "r518", "r519", "r520", "r523", "r526", "r527", "r528", "r529", "r530", "r531", "r532", "r533", "r534", "r536", "r537", "r538", "r539", "r540", "r542", "r544", "r545", "r548", "r549", "r550", "r551", "r552", "r553", "r554", "r555", "r556", "r557", "r558", "r559", "r562", "r612" ], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Statement [Line Items]" } } }, "localname": "StatementLineItems", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.ufpt.com/20230331/role/statement-note-1-basis-of-presentation", "http://www.ufpt.com/20230331/role/statement-note-10-leases", "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details", "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details", "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details", "http://www.ufpt.com/20230331/role/statement-note-10-leases-tables", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-details-textual", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-tables", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-tables", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-changes-in-carrying-amount-of-goodwill-details", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-details-textual", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-tables", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-tables", "http://www.ufpt.com/20230331/role/statement-note-15-income-tax", "http://www.ufpt.com/20230331/role/statement-note-15-income-tax-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-tables", "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-tables", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-contract-assets-and-liabilities-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-details-textual", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-tables", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-tables", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-tables", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-tables", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-tables", "http://www.ufpt.com/20230331/role/statement-note-8-inventories", "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details", "http://www.ufpt.com/20230331/role/statement-note-8-inventories-tables", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-tables" ], "xbrltype": "stringItemType" }, "us-gaap_StatementOfCashFlowsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Statement of Cash Flows [Abstract]" } } }, "localname": "StatementOfCashFlowsAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "xbrltype": "stringItemType" }, "us-gaap_StatementOfFinancialPositionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Statement of Financial Position [Abstract]" } } }, "localname": "StatementOfFinancialPositionAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "xbrltype": "stringItemType" }, "us-gaap_StatementOfStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Statement of Stockholders' Equity [Abstract]" } } }, "localname": "StatementOfStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [ "r208", "r209", "r210", "r237", "r466", "r506", "r512", "r515", "r516", "r517", "r518", "r519", "r520", "r523", "r526", "r527", "r528", "r529", "r530", "r531", "r532", "r533", "r534", "r536", "r537", "r538", "r539", "r540", "r542", "r544", "r545", "r548", "r549", "r550", "r551", "r552", "r553", "r554", "r555", "r556", "r557", "r558", "r559", "r562", "r612" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.", "label": "Statement [Table]" } } }, "localname": "StatementTable", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.ufpt.com/20230331/role/statement-note-1-basis-of-presentation", "http://www.ufpt.com/20230331/role/statement-note-10-leases", "http://www.ufpt.com/20230331/role/statement-note-10-leases-aggregate-future-lease-payments-details", "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details", "http://www.ufpt.com/20230331/role/statement-note-10-leases-rightofuse-assets-and-lease-liabilities-details", "http://www.ufpt.com/20230331/role/statement-note-10-leases-tables", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-details-textual", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-tables", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-details-textual", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-net-sales-by-market-details", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-tables", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-changes-in-carrying-amount-of-goodwill-details", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-definitelived-intangible-assets-details", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-details-textual", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-future-amortization-of-intangible-assets-details", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-tables", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-other-longterm-liabilities-details", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-tables", "http://www.ufpt.com/20230331/role/statement-note-15-income-tax", "http://www.ufpt.com/20230331/role/statement-note-15-income-tax-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-longterm-debt-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-schedule-of-maturity-details", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-tables", "http://www.ufpt.com/20230331/role/statement-note-2-acquisition-pro-forma-information-unaudited-details", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-details-textual", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-tables", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-assets-acquires-and-liabilities-assumed-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-contract-assets-and-liabilities-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-details-textual", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-tables", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-tables", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-receivables-details", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-tables", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-tables", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-compensation-cost-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-restricted-stock-unit-activity-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-tables", "http://www.ufpt.com/20230331/role/statement-note-8-inventories", "http://www.ufpt.com/20230331/role/statement-note-8-inventories-summary-of-inventory-details", "http://www.ufpt.com/20230331/role/statement-note-8-inventories-tables", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-property-plant-and-equipment-details", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-tables" ], "xbrltype": "stringItemType" }, "us-gaap_StockCompensationPlanMember": { "auth_ref": [ "r646" ], "lang": { "en-us": { "role": { "documentation": "Share-based payment arrangement in which award of equity shares are granted. Arrangement includes, but is not limited to, grantor incurring liability for product and service based on price of its shares.", "label": "Share-Based Payment Arrangement [Member]" } } }, "localname": "StockCompensationPlanMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_StockIssuedDuringPeriodSharesNewIssues": { "auth_ref": [ "r19", "r96", "r97", "r127", "r507", "r562", "r570" ], "lang": { "en-us": { "role": { "documentation": "Number of new stock issued during the period.", "label": "Issuance of common stock (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesNewIssues", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": { "auth_ref": [ "r19", "r96", "r97", "r127" ], "lang": { "en-us": { "role": { "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).", "label": "Share-based compensation (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "auth_ref": [ "r19", "r96", "r97", "r127", "r365" ], "lang": { "en-us": { "role": { "documentation": "Number of share options (or share units) exercised during the current period.", "label": "Exercise of stock options net of shares presented for exercise (in shares)", "negatedTerseLabel": "Exercised, shares under options (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-summary-of-stock-option-activity-details" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueNewIssues": { "auth_ref": [ "r19", "r96", "r97", "r127", "r511", "r562", "r570", "r618" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering.", "label": "Issuance of common stock" } } }, "localname": "StockIssuedDuringPeriodValueNewIssues", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation": { "auth_ref": [ "r68", "r96", "r97", "r127" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).", "label": "Share-based compensation" } } }, "localname": "StockIssuedDuringPeriodValueShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r97", "r100", "r101", "r119", "r525", "r541", "r563", "r564", "r606", "r619", "r640", "r649", "r673", "r692" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.", "label": "us-gaap_StockholdersEquity", "periodEndLabel": "Balance", "periodStartLabel": "Balance", "totalLabel": "Total stockholders\u2019 equity" } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited", "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders\u2019 equity:" } } }, "localname": "StockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_SupplementalCashFlowInformationAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Cash paid for:" } } }, "localname": "SupplementalCashFlowInformationAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" ], "xbrltype": "stringItemType" }, "us-gaap_TableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "us-gaap_TableTextBlock", "terseLabel": "Notes Tables" } } }, "localname": "TableTextBlock", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-tables", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-tables", "http://www.ufpt.com/20230331/role/statement-note-12-segment-reporting-tables", "http://www.ufpt.com/20230331/role/statement-note-13-goodwill-and-other-intangible-assets-tables", "http://www.ufpt.com/20230331/role/statement-note-14-other-longterm-liabilities-tables", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-tables", "http://www.ufpt.com/20230331/role/statement-note-2-acquisitions-and-divestiture-tables", "http://www.ufpt.com/20230331/role/statement-note-3-revenue-recognition-tables", "http://www.ufpt.com/20230331/role/statement-note-4-supplemental-cash-flow-information-tables", "http://www.ufpt.com/20230331/role/statement-note-5-receivables-and-allowance-for-credit-losses-tables", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-tables", "http://www.ufpt.com/20230331/role/statement-note-7-sharebased-compensation-tables", "http://www.ufpt.com/20230331/role/statement-note-8-inventories-tables", "http://www.ufpt.com/20230331/role/statement-note-9-property-plant-and-equipment-tables" ], "xbrltype": "stringItemType" }, "us-gaap_TreasuryStockCommonMember": { "auth_ref": [ "r64" ], "lang": { "en-us": { "role": { "documentation": "Previously issued common shares repurchased by the issuing entity and held in treasury.", "label": "Treasury Stock, Common [Member]" } } }, "localname": "TreasuryStockCommonMember", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" ], "xbrltype": "domainItemType" }, "us-gaap_TreasuryStockCommonShares": { "auth_ref": [ "r64" ], "lang": { "en-us": { "role": { "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury.", "label": "Treasury stock, shares (in shares)" } } }, "localname": "TreasuryStockCommonShares", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "xbrltype": "sharesItemType" }, "us-gaap_TreasuryStockCommonValue": { "auth_ref": [ "r39", "r64", "r65" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquity", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount allocated to previously issued common shares repurchased by the issuing entity and held in treasury.", "label": "us-gaap_TreasuryStockCommonValue", "negatedLabel": "Treasury stock at cost, 29,559 shares at March 31, 2023 and 29,559 shares at December 31, 2022" } } }, "localname": "TreasuryStockCommonValue", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" ], "xbrltype": "monetaryItemType" }, "us-gaap_TypeOfArrangementAxis": { "auth_ref": [ "r414" ], "lang": { "en-us": { "role": { "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations.", "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]" } } }, "localname": "TypeOfArrangementAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments", "http://www.ufpt.com/20230331/role/statement-note-6-fair-value-of-financial-instruments-details-textual" ], "xbrltype": "stringItemType" }, "us-gaap_VariableLeaseCost": { "auth_ref": [ "r453", "r605" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details": { "order": 0.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.", "label": "Variable lease cost" } } }, "localname": "VariableLeaseCost", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-10-leases-lease-cost-details" ], "xbrltype": "monetaryItemType" }, "us-gaap_VariableRateAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of variable rate.", "label": "Variable Rate [Axis]" } } }, "localname": "VariableRateAxis", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "stringItemType" }, "us-gaap_VariableRateDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index.", "label": "Variable Rate [Domain]" } } }, "localname": "VariableRateDomain", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness", "http://www.ufpt.com/20230331/role/statement-note-16-indebtedness-details-textual" ], "xbrltype": "domainItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r224", "r232" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details": { "order": null, "parentTag": null, "root": true, "weight": null } }, "lang": { "en-us": { "role": { "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", "label": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "terseLabel": "Diluted (in shares)", "totalLabel": "Diluted weighted average common shares outstanding (in shares)" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Weighted average common shares outstanding:" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingAbstract", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited" ], "xbrltype": "stringItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r223", "r232" ], "calculation": { "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details": { "order": 1.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", "label": "Basic weighted average common shares outstanding (in shares)", "terseLabel": "Basic (in shares)" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2023", "presentation": [ "http://www.ufpt.com/20230331/role/statement-condensed-consolidated-statements-of-income-unaudited", "http://www.ufpt.com/20230331/role/statement-note-11-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" ], "xbrltype": "sharesItemType" } }, "unitCount": 6 } }, "std_ref": { "r0": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "940", "URI": "https://asc.fasb.org//1943274/2147481913/940-20-25-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r1": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479637/805-30-30-7", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r10": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-20", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r100": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r101": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(31))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r102": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(32))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r103": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(a))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r104": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(b))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r105": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(c))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r106": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-11", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r107": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(10))", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r108": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(20))", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r109": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1,2)", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r11": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r110": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2(a),(d))", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r111": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.4)", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r112": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.9)", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r113": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "230", "URI": "https://asc.fasb.org//230/tableOfContent", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r115": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r116": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-24", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r117": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r118": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r119": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 4.E)", "Topic": "310", "URI": "https://asc.fasb.org//1943274/2147480418/310-10-S99-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r12": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r120": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.BB)", "Topic": "330", "URI": "https://asc.fasb.org//1943274/2147480581/330-10-S99-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r121": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r122": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r123": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "360", "URI": "https://asc.fasb.org//360/tableOfContent", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "360", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r125": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "360", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-3", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r126": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "470", "URI": "https://asc.fasb.org//470/tableOfContent", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r127": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r128": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(1)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r129": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "805", "URI": "https://asc.fasb.org//805/tableOfContent", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r13": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r130": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r131": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "810", "URI": "https://asc.fasb.org//810/tableOfContent", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r132": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-19", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r133": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "820", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r134": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(11))", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r135": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(13))", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r136": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(15)(1))", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r137": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(16))", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r138": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(23))", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r139": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(15))", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r14": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481544/470-10-50-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r140": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(22))", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r141": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04.9)", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r142": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147482659/740-20-45-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r143": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Subparagraph": "(d)", "Topic": "958", "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r144": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r145": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-7", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r146": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h))", "Topic": "235", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r147": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "606", "URI": "https://asc.fasb.org//606/tableOfContent", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r148": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1402", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r149": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(1)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r15": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r150": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r151": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(3)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r152": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(4)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r153": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(b)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(5)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r154": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(1)(i)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r155": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(1)(ii)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r156": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)(i)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r157": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)(ii)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r158": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1402", "Subparagraph": "(2)(iii)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r159": { "Name": "Regulation S-K (SK)", "Number": "229", "Publisher": "SEC", "Section": "1402", "Subsection": "Instruction 5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r16": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)(2)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r160": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(1)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r161": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(2)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r162": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(3)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r163": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(4)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r164": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(a)", "Publisher": "SEC", "Section": "1406", "Subparagraph": "(5)", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r165": { "Name": "Regulation S-K (SK)", "Number": "229", "Paragraph": "(c)", "Publisher": "SEC", "Section": "1406", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r166": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "105", "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r167": { "Name": "Accounting Standards Codification", "Paragraph": "5C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(2)", "Topic": "205", "URI": "https://asc.fasb.org//1943274/2147483499/205-20-50-5C", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org//1943274/2147483499/205-20-50-7", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r169": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r17": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(3)", "Topic": "810", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r170": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r171": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(1))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r172": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(13))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r173": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(14))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r174": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(15))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r175": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(16))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r176": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(17))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r177": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(18))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r178": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(20))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r179": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(22))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r18": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c),(3)", "Topic": "810", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r180": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3)(a)(1))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r181": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r182": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(4))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r183": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r184": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(7))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r185": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(9))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r186": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r187": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r188": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r189": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r19": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r190": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r191": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r192": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r193": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r194": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(210.5-03(11))", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r195": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(24))", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r196": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(25))", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(5))", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r198": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r199": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-17", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r2": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "30", "SubTopic": "30", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479637/805-30-30-8", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r20": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "820", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r200": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-24", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r201": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r202": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-8", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r204": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(c))", "Topic": "235", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r205": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r206": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(2))", "Topic": "235", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r207": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-04(a))", "Topic": "235", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r208": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-23", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r209": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-24", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r21": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r210": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r211": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r212": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(3)", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r214": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r215": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r216": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r217": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r218": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r219": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-8", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r220": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-9", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r221": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.M.Q2)", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147480530/250-10-S99-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r222": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "260", "URI": "https://asc.fasb.org//260/tableOfContent", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r223": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-10", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r224": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-16", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r225": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r226": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-22", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r227": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-23", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r228": { "Name": "Accounting Standards Codification", "Paragraph": "28A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-28A", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r229": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "2A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2A", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r230": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r231": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-7", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r232": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r233": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r234": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r235": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r236": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-15", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r237": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "272", "URI": "https://asc.fasb.org//1943274/2147483014/272-10-45-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r238": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "280", "URI": "https://asc.fasb.org//280/tableOfContent", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r239": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-15", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r24": { "Name": "Accounting Standards Codification", "Paragraph": "44", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-44", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r240": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-21", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r241": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-21", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r242": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r243": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r244": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r245": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r246": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r247": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r248": { "Name": "Accounting Standards Codification", "Paragraph": "26", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-26", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r249": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r25": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(22))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r250": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r251": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r252": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r253": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r254": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r255": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r256": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r257": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r258": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r259": { "Name": "Accounting Standards Codification", "Paragraph": "34", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-34", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r26": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147483489/210-10-50-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r260": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-40", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r261": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r262": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r263": { "Name": "Accounting Standards Codification", "Paragraph": "42", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-42", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r264": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r265": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-9", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r266": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r267": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r268": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "326", "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r269": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "326", "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r27": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r270": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "326", "URI": "https://asc.fasb.org//1943274/2147479344/326-20-45-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r271": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "326", "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r272": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "326", "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r273": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "326", "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r274": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "326", "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r275": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "330", "URI": "https://asc.fasb.org//330/tableOfContent", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r276": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "05", "SubTopic": "10", "Topic": "340", "URI": "https://asc.fasb.org//1943274/2147482955/340-10-05-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r277": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "340", "URI": "https://asc.fasb.org//1943274/2147483032/340-10-45-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r278": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r279": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r28": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(b),22(b))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r280": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "30", "Topic": "350", "URI": "https://asc.fasb.org//350-30/tableOfContent", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r281": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r282": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r283": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r284": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r285": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "360", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r286": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "420", "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r287": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "450", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r288": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "450", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r289": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Topic": "450", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r29": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19-26)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r290": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Topic": "450", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r291": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r292": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r293": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r294": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(5))", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r295": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r296": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r297": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r298": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r299": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(5))", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r3": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "35", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479613/805-30-35-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r30": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r300": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r301": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r302": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r303": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r304": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r305": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r306": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r307": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r308": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(i)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r309": { "Name": "Accounting Standards Codification", "Paragraph": "1C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1C", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r31": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20,24)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r310": { "Name": "Accounting Standards Codification", "Paragraph": "1C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1C", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r311": { "Name": "Accounting Standards Codification", "Paragraph": "1C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1C", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r312": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r313": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r314": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r315": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r316": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r317": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r318": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r319": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r32": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.21)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r320": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r321": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r322": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r323": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r324": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r325": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r326": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r327": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r328": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r329": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r33": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.22(a)(1))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r330": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r331": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r332": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r333": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r334": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r335": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r336": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r337": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r338": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r339": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-15", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.22)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r340": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r341": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r342": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r343": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r344": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-9", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r345": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(i)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r346": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(01)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r347": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r348": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(A)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r349": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(B)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r35": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.24)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r350": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(C)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r351": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(03)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r352": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(d)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r353": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(f)(3)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r354": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "718", "URI": "https://asc.fasb.org//718/tableOfContent", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r355": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480454/718-10-45-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r356": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r357": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r358": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r359": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r36": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.25)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r360": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r361": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(ii)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r362": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iii)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r363": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r364": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(01)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r365": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(02)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r366": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(03)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r367": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(04)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r368": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r369": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(ii)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r37": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29-31)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r370": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r371": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(01)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r372": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(02)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r373": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(03)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r374": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r375": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r376": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(1)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r377": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(2)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r378": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r379": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(ii)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r38": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.3,4)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r380": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iii)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r381": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iv)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r382": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(v)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r383": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)(i)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r384": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r385": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r386": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r387": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(l)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r388": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r389": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(1)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r39": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.30)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r390": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r391": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 14.F)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r392": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "740", "URI": "https://asc.fasb.org//740/tableOfContent", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r393": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r394": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r395": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-10", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r396": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r397": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-14", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r398": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-17", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r399": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-21", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r4": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "35", "SubTopic": "30", "Subparagraph": "b", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479613/805-30-35-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r40": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r400": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r401": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(3)", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r402": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.5.Q1)", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r403": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.7)", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r404": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.C)", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r405": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "270", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147482526/740-270-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r406": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org//1943274/2147482603/740-30-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r407": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r408": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(3)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r409": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r41": { "Name": "Accounting Standards Codification", "Paragraph": "14A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14A", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r410": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)(1)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r411": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)(3)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r412": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(c)(1)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r413": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r414": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "808", "URI": "https://asc.fasb.org//1943274/2147479402/808-10-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r415": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "810", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r416": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "810", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r417": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "810", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r418": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "810", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r419": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "810", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-5", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r420": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "815", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r421": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(h)(1)", "Topic": "815", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r422": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(h)(1)(i)", "Topic": "815", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r423": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(h)(1)(iii)", "Topic": "815", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r424": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(h)(1)(iv)", "Topic": "815", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r425": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(i)(3)", "Topic": "815", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r426": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(3)", "Topic": "815", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r427": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(4)", "Topic": "815", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r428": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)", "Topic": "815", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r429": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r43": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r430": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "820", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r431": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "820", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r432": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bbb)(1)", "Topic": "820", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r433": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bbb)(2)", "Topic": "820", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r434": { "Name": "Accounting Standards Codification", "Paragraph": "6A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-6A", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r435": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r436": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-17", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r437": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "830", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r438": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "830", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r439": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "830", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r440": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "830", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r441": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "https://asc.fasb.org//1943274/2147481674/830-30-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r442": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "835", "URI": "https://asc.fasb.org//1943274/2147483013/835-20-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r443": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org//1943274/2147482900/835-30-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r444": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r445": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r446": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r447": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r448": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r449": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r45": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-14", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r450": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r451": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r452": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r453": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r454": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(1)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r455": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(2)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r456": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(3)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r457": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(4)", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r458": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r459": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(03)", "Topic": "848", "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r460": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(1)", "Topic": "860", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r461": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(2)", "Topic": "860", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r462": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(3)", "Topic": "860", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r463": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(1)", "Topic": "860", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r464": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "https://asc.fasb.org//1943274/2147482546/910-10-50-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r465": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "912", "URI": "https://asc.fasb.org//1943274/2147482312/912-310-45-11", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r466": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.L)", "Topic": "924", "URI": "https://asc.fasb.org//1943274/2147479941/924-10-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r467": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "926", "URI": "https://asc.fasb.org//1943274/2147483154/926-20-50-5", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r468": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "340", "Topic": "928", "URI": "https://asc.fasb.org//1943274/2147483147/928-340-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r469": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(10)(1))", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r47": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-4", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r470": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(26))", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r471": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(27))", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r472": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(1))", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147479557/942-235-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r473": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(2))", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147479557/942-235-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r474": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147480842/942-360-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r475": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(12))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r476": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(15)(b)(2))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r477": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(19))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r478": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(21))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r479": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(22))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r480": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r481": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r482": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(25))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r483": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(8)(b))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r484": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(8))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r485": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(11))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r486": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(18))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r487": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(22))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r488": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(23))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r489": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(9))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-3", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r490": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.12-17(Column A))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r491": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.12-17(Column B))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r492": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.12-17(Column C))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r493": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.12-17(Column D))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r494": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.12-17(Column E))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r495": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.12-17(Column F))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r496": { "Name": "Accounting Standards Codification", "Paragraph": "7A", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-7A", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r497": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r498": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(1)", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r499": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(2)", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r5": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r50": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-4", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r500": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(i)", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r501": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(ii)", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r502": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(2)", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r503": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "825", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r504": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480424/946-10-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r505": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480424/946-10-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r506": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.6-03(d))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r507": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.6-03(i)(1))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r508": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.6-03(i)(2))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r509": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-11", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r51": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-5", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r510": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-13", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r511": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "205", "Subparagraph": "(a)", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r512": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "210", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-4", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r513": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "210", "Subparagraph": "(e)", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r514": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "210", "Subparagraph": "(f)", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r515": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(1))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r516": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r517": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(12)(b)(2))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r518": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(12)(b)(3))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r519": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(13)(a)(2))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r520": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(13)(a)(3))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r521": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(14))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r522": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(15))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r523": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(16)(a))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r524": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(17))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r525": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(19))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r526": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(2)(a))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r527": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(2)(b))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r528": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(3)(a))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r529": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(3)(b))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r53": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r530": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(3)(c))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r531": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(6)(b))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r532": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(6)(c))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r533": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(6)(d))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r534": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(6)(e))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r535": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(8))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r536": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(9)(b))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r537": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(9)(c))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r538": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(9)(d))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r539": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(9)(e))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r54": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r540": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-05(2))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r541": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-05(4))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r542": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "220", "Subparagraph": "(b)", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r543": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "220", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-7", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r544": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(1))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r545": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(2)(a))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r546": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(2)(g)(3))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r547": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(3))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r548": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(7)(a)(1))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r549": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(7)(a)(2))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r55": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-20", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r550": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(7)(a)(3))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r551": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(7)(a)(5))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r552": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(7)(a)(6))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r553": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(7)(a)(7))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r554": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(7)(c)(1))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r555": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(7)(c)(2))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r556": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(7)(c)(3))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r557": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(7)(c)(5))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r558": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(7)(c)(6))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r559": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(7)(c)(7))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482686/350-30-45-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r560": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-07(9))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r561": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-09(1)(d))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r562": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-09(4)(b))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r563": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-09(6))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r564": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-09(7))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r565": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r566": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r567": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r568": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r569": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r57": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482686/350-30-45-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r570": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "505", "Subparagraph": "(a)", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r571": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Topic": "954", "URI": "https://asc.fasb.org//1943274/2147481027/954-310-50-2", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r572": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(c)", "Topic": "976", "URI": "https://asc.fasb.org//1943274/2147482856/976-310-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r573": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "978", "URI": "https://asc.fasb.org//1943274/2147482707/978-310-50-1", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r574": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r575": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r576": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r577": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r578": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r579": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(a)(1))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r58": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r580": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(a)(3))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r581": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(a)(4))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r582": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-52", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r583": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r584": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r585": { "Name": "Accounting Standards Codification", "Paragraph": "12A", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org//1943274/2147481933/310-10-55-12A", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r586": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "326", "URI": "https://asc.fasb.org//1943274/2147479294/326-20-55-12", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r587": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)(2)", "Topic": "326", "URI": "https://asc.fasb.org//1943274/2147479294/326-20-55-12", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r588": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482548/350-20-55-24", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r589": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r59": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "((a)(1),(b))", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r590": { "Name": "Accounting Standards Codification", "Paragraph": "69B", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69B", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r591": { "Name": "Accounting Standards Codification", "Paragraph": "69C", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69C", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r592": { "Name": "Accounting Standards Codification", "Paragraph": "69E", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69E", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r593": { "Name": "Accounting Standards Codification", "Paragraph": "69F", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69F", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r594": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r595": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r596": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r597": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r598": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(ii)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r599": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(01)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r6": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org//1943274/2147483475/205-20-45-10", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r60": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r600": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480482/715-20-55-17", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r601": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-11", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r602": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-6", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r603": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "80", "Topic": "715", "URI": "https://asc.fasb.org//1943274/2147480547/715-80-55-8", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r604": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r605": { "Name": "Accounting Standards Codification", "Paragraph": "53", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147479589/842-20-55-53", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r606": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "852", "URI": "https://asc.fasb.org//1943274/2147481372/852-10-55-10", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r607": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "55", "SubTopic": "30", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479401/944-30-55-2", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r608": { "Name": "Accounting Standards Codification", "Paragraph": "29F", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-29F", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r609": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "210", "Subparagraph": "(b)(1)", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r61": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(2)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r610": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "210", "Subparagraph": "(a)(1)", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r611": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "55", "SubTopic": "210", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480493/946-210-55-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r612": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "310", "Subparagraph": "(d)", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r613": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r614": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r615": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r616": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "S99", "SubTopic": "320", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r617": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "830", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-10", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r618": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "55", "SubTopic": "830", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-11", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r619": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "830", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-12", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r62": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "360", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r620": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r621": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r622": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r623": { "Name": "Form 10-Q", "Number": "240", "Publisher": "SEC", "Section": "308", "Subsection": "a", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r624": { "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-1", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r625": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r626": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-10", "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef" }, "r627": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "855", "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-3", "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef" }, "r628": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r629": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "825", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r63": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481544/470-10-50-5", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r630": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r631": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(3)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r632": { "Name": "Accounting Standards Codification", "Paragraph": "4H", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-4H", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r633": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(17))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r634": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-4", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r635": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-5", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r636": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-6", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r637": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r638": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r639": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(f))", "Topic": "235", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r64": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "505", "URI": "https://asc.fasb.org//1943274/2147481549/505-30-45-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r640": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r641": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-04(a))", "Topic": "235", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-3", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r642": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-23", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r643": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-24", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r644": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-5", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r645": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-4", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r646": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r647": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-18", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r648": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org//310-10/tableOfContent", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r649": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r65": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "505", "URI": "https://asc.fasb.org//1943274/2147481520/505-30-50-4", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r650": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "326", "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r651": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r652": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r653": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r654": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r655": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r656": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r657": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r658": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r659": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r66": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r660": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1A", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r661": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r662": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "360", "URI": "https://asc.fasb.org//1943274/2147482130/360-10-45-5", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r663": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "360", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-3", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r664": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "410", "URI": "https://asc.fasb.org//1943274/2147481931/410-30-50-10", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r665": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "450", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r666": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Topic": "450", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r667": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r668": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r669": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r67": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r670": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r671": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r672": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(3)", "Topic": "815", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r673": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r674": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r675": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r676": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r677": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "852", "URI": "https://asc.fasb.org//1943274/2147481404/852-10-50-7", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r678": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "852", "URI": "https://asc.fasb.org//1943274/2147481404/852-10-50-7", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r679": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(1)", "Topic": "860", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r68": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r680": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(2)", "Topic": "860", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r681": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(3)", "Topic": "860", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r682": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "860", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r683": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "860", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r684": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "860", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r685": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r686": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(5))", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r687": { "Name": "Accounting Standards Codification", "Paragraph": "2B", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147479432/944-30-50-2B", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r688": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(c)", "Topic": "944", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r689": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "205", "Subparagraph": "(a)", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r69": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479405/805-10-25-23", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r690": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.6-04(18))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r691": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "220", "Subparagraph": "(i)", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r692": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-09(4)(b))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r693": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.6-09(7))", "Topic": "946", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r7": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r70": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r71": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r73": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-3", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "37", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479303/805-10-55-37", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r75": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r76": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-14", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-20", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r78": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "25", "SubTopic": "30", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479668/805-30-25-5", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r79": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "25", "SubTopic": "30", "Topic": "805", "URI": "https://asc.fasb.org//1943274/2147479668/805-30-25-6", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r8": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "360", "URI": "https://asc.fasb.org//1943274/2147482130/360-10-45-11", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r80": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "815", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r81": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "815", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r82": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "820", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r83": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-3", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r84": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-20", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r85": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-21", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r86": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-2", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r87": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-3", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org//1943274/2147482949/835-30-55-8", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r89": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.17)", "Topic": "942", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r9": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-14", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r90": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "205", "URI": "https://asc.fasb.org//205/tableOfContent", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r91": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org//205-20/tableOfContent", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r92": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org//1943274/2147483475/205-20-45-11", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r93": { "Name": "Accounting Standards Codification", "Paragraph": "5B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "205", "URI": "https://asc.fasb.org//1943274/2147483499/205-20-50-5B", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r94": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(19))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r95": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(20))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r96": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(28))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r97": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(29))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r98": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r99": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Topic": "210", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" } }, "version": "2.2" } ZIP 87 0001171843-23-003130-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001171843-23-003130-xbrl.zip M4$L#!!0 ( /9)JE8,'S>OC0< &PM - 97A?-3$R-CDY+FAT;>U: M76\;-Q9]3GX%X6)3!Y!BRZ[1P)(%.(F3>K=I7<<%]I6:N:,APB$G)$>R]M?O MN9S1A_61V.UN*P%Z2.0A+\E+SCD\]W+8RT.A^[V<9-I__JP75-#4_^GNX\_B M*E7!NMY1782Z@H(422Z=IW!Q4(6L_?J@7Y<:6=#%069=(4,[I4!)4-8Q!_WGOJ!ZP-[#I1/@PT;&Y">U,%DI/SL6++Y4-W3M5D!>_ MT%C'(JZXK8SJO_T+GH')>A*TJ9ILH,S\6Q,N+X54>9KD@J MYZT[%[(*MLL>E$\==LU L6 DG9(FG O#T]==44@W5 :CEV'V[S6;![H/;:G5 M$)5.#?, 1Z[^_=/UF^L[<=IYU>D=E?WG&SS[?LFG[[MS;Z(S#WQI7&D\X>J# M_@LS\&7W:V,L#?&8$1:FE.!%DUL8\\'D@91!OU?UWY(+*E.)9("(&[R5"MV) M8,6G&C3B]/A$V$R$G,0GZ0;2D&__>J]I(BZ3P#4GQ\)LKRL35/2554",2OV9807*\ M&+^_OQ%WE.3&:CM4S(IKD[P225SF"591AO._<)&"'&@2 ^M2*(,3Y]9=,]\??;\&78G-[4?\?P2J:=T"K:, M5FR4+G5Z\N,#/T.ZP:Y3XS16KM\=5A9K:2M:WB"^N7:=5W'=>,3-?DVWK+_0 MKVN12^#,T4C1F%+ 2'GQI9(.#-<3E)?6@8M&O$=C]-G^;3,6N\M3Q*_C%XI? M1LL>FEL)S9,MA>8;Z0%(0*^8B,_&CC6E0VK5"&UPF5J,:&R(X8=$#"#-1%0F MN(K@HPQ4\,8*P$IH-1"MI!:99''!EEJHJ$;1;L7 4$+>2S=ADT)^IBA3LSX] MRE(X@R$UZ_M4QQ+EDJJ F4%S> ($BG&NDESXBO^;MQ^3HZ83GD"AO$:@!$2* ML0HY)NA+R"2/SOV6<,VFF"8PAT493!:78<^[G>3=Z:[QCD2F#)#-))DCN14# M%XMJMU"O3)TC<)RG3**K%'V"+0NP;8%IBD6F!-B9I\Q?K>=$;#C@EX8&UY&P MH.,66U0:!F"?!47B<#[ZDTB?BTS;L9]2T]%0^> X!I5<6/L-+UL+#/-39U:\ MW9-L)TGVPY:2[.X!(E]\]_JD\V/7-S1J8GH6 ULG (?^983KM9".(C$ =,5( M ( %>4:%\CFW8+,"6LAZR,^I\HFVOD([5DEG=OYGIH;J?G#V=924VXI-=\A(1\R0F/(]FWZM#B:3&3E M']^$P[H!@0K-2'6@:"N\X@I"-%(^RANLR,1^.+N?"^.BN#K2,G*KB13G_&@U MPLN5"B()7[S5*I4A.CKP*E58!IZ JN/9*/>&>ZH\QYAQ-_(Q((UB:#W!H0#Q MY4:E9!A66K*&8UK1B7FLBA9UY+L8L..O ;$A9!;M*=W+ZDYR=[ 3W'VT,*U0 M^/&2]F@F@_TCE3)!I;"TD@.E59AP]+IN6-Y/(MDB MC^JMX('I0JH90X3[9D)EY4KPV,=H.TD ^.A 3#J'9!!$:] 9-53R/L$F2*AK MRF(_4254>D_:G21MLJ6DO1I)74558D13EO'W@1&PZ-]_)1L*EF?KVLO)YUM*;G_\'E2_/R73K>&UER06!\7Z3G7)B;8 M$T+KE<1TYIVLXLT3/XMF8P&Z+ H5 M%7U']@$2]S?:K@7^SD$"2&V'H6<_QR MBCS=>>A+I>!^W&4J$V\?^)?[8Z.=E-=M/3:ZU$BZL+#QS@N QN>!+)FI.6^FQXC8;)% T]S21L(R&;I!-- MP"H@LE7'MYZ7I2HP7RQ(G$P3.JS]X+.7MYTEU[:>ZUPB1,T?U+,1'.4';EC@Y/CG]"B#KAKVJ?^2/ M5N_8Q1N$U6QA_K\/#]_WXF37\+V_QM6_^/;O0NW- MA_=WMTME>=9V=KQ:R,00-Q]^^?WC?#18\(7F-3_PXH@O../]QUO6_P502P,$ M% @ ]DFJ5L<0+%!L!P *2T T !E>%\U,3(W,# N:'1M[5IK;]LV M%/W<_@HBP[H4L!,[6;#"=@RD:]IE:[>LS8!]I27*(DJ1*DG9\7[]SB7E1_SH MG.YE _[0N"(O+R^I[=6W:=2F]L[S06 MH:X0GK,DY]8)?WE4^:SYXJ@?2S4OQ.519FS!?3,57B1>&GW$$J.]T+#V0HDR M-UI<:G/4?]H[C1WV!B:=,.U0Z@[LV?3? M"[0]ZE___L/-RYL[=MX^.>N=EOVG_T<0S_3 E=U_K_L$KUO8S?WW!OU>U?]> M6"\SF7""";O%NZG@CGG#/D3HL//6&3,9\[E@'[@=<"U<\Y=[)2;L*O%4<]9J M81:K?N\4'C\SG&^6QO/--@.:A[_5E/W]/FX::*FY2MF/)^PM]UPJ)1KL^UR* MC+V6FNM$ M#Y1@ V-382^/6N"^4*IFXNS9E3R9/M#U$6 Y0Z:",+"F9IP$!6MJ(8," M!;L5 RT2X1RW$S(I^$<1I&GFTZ$L13#H4I$ 3[4KD3:I"IAI-$ZKA%H 1/ZD15*7R",@L4;H!N MDI2F!.*)K$1BI>9LK(G@EKH&X;%?@>,&650*!J"@ 4]"=R[$DW"7LTR9L9OR MTXJA=-Y2\LFI,,:-*!L+-'/38%:B/9!L+TGV[8Z2[.X!(I]]]>*L_5W7U32J M$WM2!!.W 8#K#>-6!&( Z)*0 SX0@5TN74@LP*""*)(CVGTB7*N KM M2"JM49$AI36)2%'LV#$(D0HP+*+^^AY;?ST48?_UOE*P:)_S9OOB6,0HVA=I M?(J/DO:!.C*3_#.2J@7"1@)1+%MWE#WH*$-'-,YE&L."4MC.@9H;J?GMQ]M?T:5!*F?#*;=^$XU>:H<)9IA-7(A*PUB:)Q 0![B2XU*3C"L%"<-Q[!"$/.$%2UB^KN8M>-_ M T&&D%FT%^E!5O>2NX.]X.[6PK1"X>TE;6LF@_TCF1)!N3,ZP(T[D)OVB\1: M;M,I@\!IR0=223^A['5=M[2>!+(%'L6EX('IPGXSI CW]8#*RI;@L0O9=I( M\"& L/,<"HTD6H'.J!$EK1-D@EUUI"S6$UE"I0^DW4O2)CM*VNL15U50)4*T MR#+Z,# "%MV:S=LL5=Y"9>/C^OU%Q+#-5X+XSS*Z5,B?#F\_.D7"':\H4D&XD*KEJSKP!/0*1SZTGFP MKF9Q/8]1Y=S-LFA2N4!TD0;Y#_-12_.$*?E1J/H$>,F^\;>GZ$#NO3U/NMA1 M5+X!IA.EX;&7)!('Q?I.=DL.EZ%BR=NELV& K@L"NF] M$)]1_X%!ODSUJ41\PHV$\14,G9A*VD9#UIA--P"H@LA'S6T?34A48+R8D#*9.'=9^ M\#G(V]Z2:U?/=:Z0HF86\M U$40-9 E?#VO6=6(&9[4(Z-&@M(\S8?U)0!; MZZ H2F4F K7CW$3EXP\X"X[](SGPRBSN&?I7[EE^Z87-11K-2;,!5Q?!Z!5> M:">.(OYE[_@$'AKLK'5V_AE8QN:]JG_J3M=?3VZL-=\_;JS77SY?OK MJY_HZNY"[>V;UW?OE\KRK&G->+608,UNW_S\V[MY;["@V\AK?A#%*=U.QML- M5Z3_!%!+ P04 " #V2:I6X'8GBZ\$ !($@ #0 &5X7S4Q,C=)O:,_!Y2L(QG> \I) ;,3+^>I)5UT_.=N#MAW%_? M/4DVQC@AD$E)._T \KWLR^T^N_=(_<1.Q*"?((L&FQM]RZW P8?1^1D<1=PJ MW6\64[0V0VV M*#!-E,1=J2J#S7ZS,-@/5#0#8VV'K,)%[,>O+G)E/5'?((&/N$4+M6$ MR6+2@WS: X.:QS[D9"N,[MBS[]7G6O.A[=,RI_DXL?Z$Z3&7/=H/\[]M MDJT,CO[X<+I_.H)NI]'N-]/!Y@]Q(J1XH_ZR%V]D8%+_]>SW@\$!:LMC'C(' MDGXS&+RJ-T-"1D;28!5<%<"%G=9[4#'8!.&*Z8!)-/7/=P)GL!=:M])IM3JO M[GGU*@M,X;&!*JL!DQ%4@YIS<'Z2=G>KY<%!PE+2!N^[;FWD*AK:VQY<2VXQ M@BO+++EZH"*L/76JMRO'>OLMY[H_Q3:D8_:D.>TJF(J(AHYT>OC(8PP3*02:LQ=?$YE MV/" P2$*-F4:J1GK5.F\Z*#J=+WY9;O3:?D':I(R.+M][;5!]OXUJ MNU:86?X/(XK)1<8TI5',X!(IQA0?"<>D@2!9OR!$ZCQR-\4N0,IA!.=,4P"[ M;8\PT^EZ#U)2RKI1:\>_6*2FA%Z9,8@S029#&E&<#4RY3?)UC3<9US@A-)N' MF'-@)&_:6]5HH8U6,\VMTW!T1_>[I.R5:&[O=-_Y+I7_@>1UOI0\+@OBXB+D M" OCKKB(.KC@+&61<9?@5*-Q1%I5C4HUG);.,?C+=E 36=0&EJ++N5%I$V%**D4(NQ25DX M'R^[]*CQOJ"#3WED$Z>D]:MC9AN;&\1#-?UPSVANKMRUE6\ZI)CWRA2>LQG) M%E5$;#7ZJF _&S1-$RX;\!'C6%/?WF>392;HF:=R M*:.+7?>Y&JQ)R+/DZ1[EA'/I;E2Z3"DPN/N@O?R,CRD M!AD6+SC/,50=:DY5G5)9/[)1>Z:NAU/KA)9P_@3:%\A6DHD(/C;@C%D72?QI M0/(S#W( /YV/=CDN'ZE:Q26]?N=-_U]^H^_!G ?3 MBS>=6927J$&8$I^Q*,DN%5!!@TI.1*1T]H#-)\P03Z6]J5:WW!$SXKGKV73> M-Z:48A(@?251('U?V1YG6G*3%&I7V)9;7S NNODGW!CG%A$T3AZ3\W$,64HS MSGFBW7-:$/%;" 4S9K=RMG[^[+QM+J\.3X]'EREP2U[6: M/IYTUSP,3SY=G]^GCW:XCS5K'N1%TWV\H4:??T'Z&U!+ P04 " #V2:I6 M=JE(5L$4 #C"0$ $0 '5F<'0M,C R,S S,S$N>'-D[5WK;]LZEO^^P/X/ M6G_9N\"P>36];='>01[-W0!-$S3ISLRG 2W1-N?*HB\IY3%__9Y#/2PIE$7) M3&HG @+$EDB>UX^'AXBWP1\&CZ>?3CFAQ= MGYR?CSP5TRB@H8C8YU$D1G_][3__X]-_$?([BYBD,0N\\8-W,TNB@,E3,6?> MWX^_?_6(M_O^X]O]JPOOQ\V)M[^[?T!V#\GN>T)^^W2O@H_*G[$Y]8"#2'V$ M!Y]'LSA>?-S9N;N[>W-W\$;(Z<[^[N[>SM\OOE[KLJ.LL"^2*)8/187[L0S? M*.:_F8K;G>SE#A(L*B12@EQ--;*WE2H!X^;2\*):,)8D?E@P5>%?5T$)X/4. MOL8ZNV1WC^SOY379O3\ST\ W%2(AC_XPMP\:.MC!UV.J6%X\HMQ7YJ;UJTK; MBOOFHO"B6E#&1<$)56--'Q[6"]7442Z:OJI6B!>R@3Z\J11-)HNXH@5\\,87 MLA?59E43Q_F;2G'D,8BK+&>6.-Q)7Y:+\A5VXQ'V M++^PV_TC.V?]8._#AP\[^NW(HW$L^3B)V9F0\U,VH4D(W"31GPD-^82S /IP MR.8LBBL%2J]C*J&R ]VK'@HA'G)A94THIL7QP_=J!H*G3?30_9'KLZR@^<5L&7G_JCZ\>*G^, MLA[Z;ABUUC Z/NG&0WLPT\1.6TW]7?7TL-60S<[%ENL4W];0!@#YPXX4(=N) MV!3#8+N^$$I9J84=X@,.=7OOZGS0*!*Q;DH_RY\N%CR:B.P1/,2XX&,> WYG M$T]'"A^I])'.ZGAB9R'%@LF8 \!+8:1N8";9!"(+B A('@W\,Z3C-Q"LY$4> M$:B.Z5I.J,+"KTOV\KIH_\\C!-1%'A? M-%GO?$GVTTZ-UB,V$L6"R^@W_;G6*[+*68E5%:O(LZ]7MZZY9O8T-Z>=E7T1 M!2R"AO"3$B$/M)\>TU!/3=2,L5B1= 2)":"8BX D$4T"KD>!7B!8DZ@KC.P! M,*YSIN#S2E^?)^Y'S]SX"B?@8E"XK/9RSF MH!3U4T!5Y\$5QO8=8\S[Y:K"Z "ZNL&+ HJ("8PM@!GV5!ZKA98K$!W8@:@H MHCPQ@>$-N?%^&?R3I?E4+/P_9B(,F%2$_9E@:/(LN%E-V!6(WO8!T76)M?_V MOFC>!DA96]:G:D8FH;A3SX,D(SU7 #KL Z 3X,@[0XX&V* 9(Q$SL@=1B>+: M8F52/9&QLDE7QG^'DRBN_%"H1#+X\@VH>AA!'R-=-/55B>XK-_ ^H3[X2J59 M4WJN&_!;IF#>"=I;Q\XM+;LR]Z]&U0B[P%Y*%:0?^56/R"2W;(H8?#? M%].4Q76,;6[0E8W?&VV,L>;WE"K\+ZB^ATAEKA8#MY#KJPPU"'V1<9OZ3ADJ?^E(6A(YQA 1\27#&(< II5 MK&\JHP/ M&P(RX!+TQ&FZY4/J1/1:T+ CX H2>T9(8$!X!EQX_X=<8/QWEG,!WJ+@XI5# MX5>B9E0R5"5.W.8+F#"M'>LW-^K*Y/M&DV-0>(V4B28-T[XEZ5=NY_?0\R!F MBH7DZWG]:D.N['E@M"<&@.=+:J_KF5 0W.N3-F0.MO3WE>OT5PQF0ZLK]VH^T2QJ?XN&6Y+X]%T MK5FUN4%7AC4GR73P=)U2A4E31O6U6_: 3(4([G@8ZM%/Q#/H9QPH1E,.4TI" M8=X8J_6,;4O#E?W-"30=;/V>,:*'VDMD!/IZSHAWI!EY[9!XFUDH%-$T9G). M0D['/.3QFB'TZH9=&=^<0M-!6&KOKT"=('GOZY+\:[?Y83[,QO1^+1M7&G)D MTWUS\DO'8ME(?4/O7[L)WX'F S:.61 QM5Y'K37ERHSFA)6.P\Y+]%ZY(5>O M)$*_PDSOTRU5Y@1<&=V6 Y2ADL$#8@JV1?3/L0O49763=< MWM[C&E#6!%WAR)QGK.$HS3QY>-RZ>UQ>Q'EK.JPH)F^Y#T^5")UX MGJ=GSA$(WYJSI4T@7#X]+.8W;#+V3C+\\\*K'6P.L.FS0PKN>@R34 M^RPLBCL W5.RY0J2YERSY3XS*)1QK^]9L]B8-@"VQTZQL54L/$.MC99BWSZE\0"=4+1:(9!Q/DA FEOIG3GX" GOPY@J@Y@1[=X!> MIR*@EZP6/,U$@!ER*L* WTY;(QU.A?L1=(4TE/F,%7N8?9E.8B$\:C<:6)R*/H M8U-ALOLY!]?8MC_8H3NT)^(*6WUV(P]^S])HM2\J=N' ^I!SA1;S8L-*M)#J MUQ-@:_ IK:8LA=_ZDG\/RF0K*F[PI5YC:(%5Z7X7M\V[UUJ M+B&J3[D<8-9J:" <2^ZG]\&CH1/@_YE 9DG;$<0.S2L0+1#[7O"80>P'4!X MMOI@3LE[Y(^=0*D#%5>@,:\=U _Q5%Q1_F) A^79FY4O'<#&!7E7>#(G_ML/ M!CUZ_Y?ZR:$!:[7C/I)/9[&80,N5A49\Z7J=LS]15[AJV*=>.HP$8QGRAN[R MAV*5M4TL,*QPK@13:D%7,[B5[;J"1,,V]0HD4M,/4S*C;8I])V22Z!W%J;$6 M]*&2E'8#!%MBKM#1>DLL[A_,>?+.-$\97*XRG@;(K#B*Z# G:-.\*UATN'%V M2 -:V.F.X:"+JP:W3-(I(U$R'\-;3*Q@ 460/(F%GAHGT$K$8L(6;KS+DS#D M"FH-=^ :H4:\OV5\>TRU2V?2DZ0C]+QKN-S#_MSWX')ZV=.?P0/P"SPB M/I7R ;T%G>,>K?RP@F["A6-Z&HY< ;#A[A%K !+O)&7ZE[60/,]U5&(]7=(;<-KG8I<5KUS@<5W: MKG#7\T*8ENMB!H2E5B[_7H?3*<;*AEUAHR'/7OUAD&&ZT'*ECTNSMS3MRO - MF?3'UP8-IE]IG\*#XS,GPX85 56S]+'L2@=EH(>LG?,;2 M@] >'2M]@O_S*)8)&VE8(0K^>131&=L\\C\RN8,N!I MP[PAE8SU?5Y(]GP9P1W?^#^*6BSZ%UBWI/J$)TE/YFVD#'&'@60!3V.=2?YWD M*]5\FCNXP9]"?0ZME\F]"HWKG8[?B\W<:8VGT'43H0USZHWQ#^@ ".JS49=) MC/5Q=*I&/"UE-C*NPTO F#_+Y@. ?[#>*57&J8-EV8V(Y?++S?[&X]E)HB#( M9E*##MB6B,53EOX_$_)'!& -69!=D[;$>%EP%XW]#+#WUE;>AQ\*(1-V(Z"D MX@&3N3=@N,!Y)L4\KZ96*6V--G^*.UY?>8]@<)K@G1-7FHB5JMI:V#C%-/N: M3+1<7 7^XSM+$S1JQA>JYFZLBV^D9VWRHAOF,9OYSR+0#'\U(1I>;H3O/^5J M(10--<5B)HGY1T 2!W:#RT7F;2JNYW]U:N*+\J6X*P1UT]:VA#FGPM>WZ4!7 M^P+RH:,N[E& -^OX$RLV]IF*8O4JA"V[[X M1G;;+]$4@G:&FL3P#/IG*/31V9J4K<4VHBNG-SHQ/7LH1L0;<;R.>9_VWYH7:WBYD:[9F$'8BO3!A0@#!ET(6,S7$2[. M;O(4#F8.:/A%[TTZC\[%':V)V+?V1@Q .##B_6HQK^P-R"Z4*/K9Y3 M<6MZ98-PM>[96FHCT8[[V6Y$Y3K6V3[9FS94=*FP82L&2Z'Q+)7VPW+T,62%P(3_G!# MVA63/FYSG[)<"^LVLIX#7Z1-.1^#=*^\G/S(>V5U(&I\NQ&C47Z.XG*2KV=E MOQFI;Y$ZQCN@RU= X^\&^?K3Y62YTR#=8X#7)JKCAZ,[*C4'YKS1F5X8.ZD MZ?U05Q)Z<2'CVLVL[>LU$?>6!3YXP&&@_3VADN+-YC6'O[+$1J+5#-.-PFU%!6V2%K#';FVG?5O7V[6Y+=+4VE+=GVHJ9JVR/Y/J%XZ8+2R\WX"X]$G\0C?'DBCR0130*.TTU; MH/1M=4OUEB:U @@M-;OVB1';5K97+UG.+[W8(TO^E48:FM[MT0]8?9K?'DT> MP!1<[XF _WIU6_<:/]L<4T79@-+8'9K:WMT=(@=C?%;S;GV0#0$L7#?(,9T)-TZ"!,E MI5?[2F5MT>B"PDO5)T0O3)(30Q\>\\5.INQ<#+]4:EJZ@ M9Z/;H[5W9$*Y)+>X8QF1,,XMW=H(ZXTD!$*&HL MD2@%&5/%[='\K*R\- M9XKEC8]NCI5_3Q7*\8C[0"^7Y=L/ZEPZ;@_JU^1)T M!O-OX,7'28S"JXY( M$Y# \QO^V28W1 X"5HLS3PIL(*?7.42WUV(/$2-&KI M[2P:V!YMO <7#=/E6$A>#>;RQ_8XZM34MFK($B,-E;9'Z@^8D]=7*)%%2.$I M1JGLSX3K"]Q6O[0%C!L:+T:GEM"R;>79])+^A@QF@^84OOX_4$L#!!0 ( M /9)JE;#"IG<7!( %TE 0 5 =69P="TR,#(S,#,S,5]C86PN>&UL[5U; M<]LV%G[?F?T/6N\S8SMNNTDF:4>VXXQGG-CC.&WWJ4.3H(0M16@!4K;[ZQ< MJ8MMXDH*//)FIM-8$@">[P \=P#O?[F?Y:,%H@R3XL/>X:N#O1$J$I+B8O)A M[]O7:/SUY/Q\;\3*N$CCG!3HPUY!]G[Y^>]_>_^/*/J$"D3C$J6CVX?1S;0J M4D1/R0R-?C^^OAA%HX,W[WYX??5Y].WF9/3ZX/51=/!C=/ FBGY^G^/BSW?B M?[W5_2_-7A$[V7Q\<'.TO6^\US<6O:;GJ ML-GXQ_WZQU739T/?'4&2N)1L-$(8*5N(3]&R622^B@Y?1T>'K^Y9NL>Y/AK5K*,D1] M1WQR(U).$>7 .*X)OLU1%#.&2A9E55E1_FE&:(G_D@@CDK4T3%$9XYQQED@* MIQ1E'_8$+=&2#@'BGX')*!_F?,TR/)OG:&]_@X-)G"=5+@>ZX)^;YH)3 )E9 MHT#W)>*O6+,0ED!RDCQBN2">+5^(+&:WW*.>SW]^( M-0=R\8X1VDPD$ Y\X?-RF&":E# ?+CF0A +%7"9G6'&WR\Q MA[TP0SLR8([T^EKLT!LA2255/Y/_=##@N&_XD_N;\$>C04=^1_K#O1X+"NHO MJ'2'M]%)AV/#&!G39$0HEW4?]K@Q?H?P9%HVEGD]3DR39U;*8R.R:;'/JMFL MMC$X>;-E_XR2F3/MI-^WEU-HQ8'#%\*!EM?8E@6O7P +-!:=+1N.7@ ;NG'@ MAQ? 0M#SI8=/[X =K1J.EL&_/0"&*#W+_?YK/W&@]Y'<7)?RO,L!B= M+?UP^1U%3'KU.8YO<%B6WT2:M=!.,Y^\0W?QQ7#!>( ML1,RN\6%1'>-$C(I\%]\L:6<8)QQ0E;+K:8P'1?IQ9J^<4U>W>2\2/)*Q#H_ M-<&;IP9>X,>ZF+H!F'2!8BZRA8@A6<6:'MMFD?:A07V!%E0G_ W J8AY\P\W M-"Y8ABA'P#Z>)RAT7JOTY.*@RG*NJ7$9,^:+3ST9?"1 MCX+P0O1415%#/GIG>;JVO$*PL>5I.\RY!6]/Z$,0OCUYULYR34JB+Z1(-E^H M !S4/G=GN7E%R1S1\N$JCSFF(OW(V\Z%/1Z H\9G!^7J2)U? M",VU_#Z:-U:\;]6Z[_B!RM&[D=/>1,+X3WAB[GT@,L)IZD^X\2NL+Q M.8>73NUII2E=M>H&"HM]9;[7,*"PFFNNG;J#PV:HJW;K#P^=KG;:I3<<9([; M03P'"HI7*^+-,M2U.TALEC*UZW @L1MDK.\P8+'J9*[W.'#1*F6PYRCPD+K( MY.X#@MWQ8F?)DO[T$X@U. M!1";5K:SU'TWJH00ZLZF->E?T4$2\E[\Z".*!4GH;WU1[(82",4&V$HA!!=V M1TD$>S742B-$&NBG2,CLVQ*E(M,5B8.:TBI'XLP=SJ**0P=*_GA3 M%NA\H0M23&X0G9UR&E6^9TN3L-[T!@&?:Z9AQ(V 9>+L,KNBN$CP/,[/"]N0 M6!]CPN6",6#4:3#@N-6AHPY#0<7L%$7J:5B8L:16.47ZG'U03D6?:/NQE8*X M$?W![M&+#.(Y]+Z\=9[2=@W"A'"^%PREXB]&JH7,SUQ7=OK1_+S_-LFV.>#!N7-0TV6<)*3BXH;[GJ)>4;%>K!H/0O=Z MH\475-I1K^L2&@.M1(DM%S;H)KY'S A WWX(ZC<*6JVH5[^"%EIGRT8;6WM0F_ ;Q(Q3]B8]0BSH59.2Y/8DH?N#KZ-6A.4Q8SC#*%4;HEW'&1RMV"^I ME:UVG0;!L3)^3 <+FSL,2_^&'>0 HKW7]V,YFH>W'+3Y\=YP3J%'U\"8FJW[ MZF72UB1L 'R]+%6Q[.]^<)*U_)[5M U.M..]#K1EMN@3%<"V*1PJ4?HQIP2T+MA%!XL8>3K * MB7W'H'BL-2D0W7E#4?"(^H7!(.70C++4=#"DG M;H3A$7V#E/DVXK/0*)#JXY]$/9;5WIYY/7@O5-L4V49/X+U7[7+!U;>']S[I M9LDF3@>IGER-R-Y>@U01KL;3;76%N*9&3;N%@PCB$"@C$$TN#I*>T41KC#I' MGUF!I',,*-<&JDVI R3UXP3,%)F#I'_L@+GG^R!I).O),]8_0=)+=JB,05>@ M0E*ILRPB@T EHJV1YY!G!BHB/51;5X2!9:7I5>L*)[!8M/(2=>EIH(*Q=9IZ MTLXA!*(FKOI(.^NJB3RDX?8NF; #9!>8A23\['"YAODA"3\[A)UJ9B$)1SNX MQI0?)+EH.8,V-<*09*1U%4>[#M@)T]$:F"D1!TEF^N"SKO== PUPG,*/$5U? M"2(O_HWSG-S)#6,9H5'")00NHYR(RW >M?4[8Z&WYX4Y>*%G<@.=QO \C2JO M,7+=AM36*>R&AB6OSP@])=5MF57Y;-#S^_%XRH:K^.[SWRY4!SG;DPW=AP&SV^$ M_GE>7%&2(.8&R-P3I@YJ74MM!5J6,P;)U[+&9CMYD!PM:W"V\BVH'GT;S9NZ MD6@N"D>D X&6I2/Z'_T4;(]/#*-Y>R.')4/XWSF2[TF1CF>$ MEOBONOK)\?[OOH>'40^OO8+:JA,,'-NKZQ_P$FTKTMOCY3TN44B:U94C+DLX MJ!Y:WQU'5S7 42RKSZ1(K2^0R]=!S?>N M;;\!T=BM+*L^P"(U?O*6>($&861V!FPM/T"4//C9+!1-FLUBTCDBHC8NPJN=BTO'*449+CA_OO M7A[E=IX>R,_<)O&!XIQGDK(+0=G3W:H; :#-0(_:VO4<*+09KR)3%[VT[?;_ M=NK8@/%,)PBDOX4*0BMMCP>#QS)_:.1H3HI)B>CL4:!.\Y.G NKI<8$T3J_4 M=@IP"N-%[ PK94GV>$*1I+.Y2\PR:.@]2!^10^66/?E+:[S0KDM0)7!<,2SN M##LALUMNF@H^KFJ/2_X7PZDT/CR:N=SHM$;$9%IZC^EW^N+7_N D@>7/,U]3'+4*(\*W\0(H8]_USN MZ.+_GLB=/::3Z$W= F,QE^$H\=AW#8JI7AJ7V>9RN2PZ+4&T1:);V2?L70$Q+L1F[LNB M9K4T_BXS[>435GT"Q_>>RM8G!P$I@WN6_8"@66^-<@;TO.OPF)Z1VU.B467E'BAFUCW 2#@$X*"E1WP:0: @&\M-#SQ:08(C6]]+I(: MPO,V87?Q-([&-9*)VQO"5:JP,<2!+9R'9X1^G<84'7-9\.@L0P6@KL,-@OV& MC!/N9W*RFI 9JO=(2H^T_B4UX'498EB,KGOMW <(O0LM02AE9Y3,+@3G.<]E MD$D%Q]1^,.J_QCFZS)RGQWV$X1"*DZ NYS(\\_$>T00S]8MEVR_P833SYG6X MS&Q6F[']<-1OG&EJ0WQ+\[ W%KEH(7\=,UQJVL.:\4I5]YCL@934[L8^MX2% M1UI[>X5\W8 [A&TAG5G:#;2->/ XLA3J'#L$FSQ.-=T=U.Z1#%MV_+2+[# E M 6S!A[@E9@O8M(>A?\7%\F]+P.@NS9\TA8MK"@6VIF%UX,2X8X%-Y!VLC0<16X MQ=4]@CY0I]LR%K\+@1\?Q,H OD?,!RA>R]P>)/-FH#T$I)->!1?\!\M%8RT1 M),4"EHO&BAY(J8GAN0AM[P6H'9)8A@"VMCM2-3R,G9%ZZH;;%2E]LCKWV'@G M)X0I:U3=!P!ZI,#W79^.NSZ?WSGY]+[)IULTS3T"(V#\Z?(6!G$S'J(+G"#V ME7O@2@"F#@/M#&N)IIE*U=PZA\4ECNWA]&3*2JZ6%J&K_)LSXJ_H M6ND>HXQ0M!'B_GA?TIA;/EP,T(=SK@;D008B^T=R3MKDO"@1Y1I?@3C $P?@ M(*>S2?P?HP*IY]O0.O1)99)M#2E*BEM;?:]Y5Q\:;*15TS+\ 3TMRNR,OW]X M4M2GGB8/-URCLSAINDD=2TG[BZHG$N*@#2F;C\JQ13LC#,H%MGF'74;88:Z7$> M027 #&!MO0=064Z=SM57O%M% 4#-GS]6.-7]00YOL^.3TDD#E<:T!.,CC#V2 MET/#](D*@))7(?QD8NGF04K*!>:+B_4)2;2%9I/)HX64'6\/%9 !8E2@K 9+ MMAB"5Y FNB\?^:D\&"9< 8FS-AD0"ZYY!2L@:2-'/ECM&@AQGO_A,FG+)5K$ M1(%F5/,*I5&\X%)N@J*BFMWR7TE6-V!1)?+ )8G$V9MRUDVW4)WPZ&G@H/&NWYI9 M'->3^$7.X65VBG,^8VF-X;(J^7HH1%A' =YS% A(GQ''IP4CZK@?V=%@L877DZL+J^FKJA+"R\Q7=ZJ$":2QK2L)==;;:+6&7 MD+;H >4.8KL;VEQZ!T4FB1*Q;@7MSWX?\(Y>#9GJAH&/&N+3*?9*F.A5-PQ* M[Z\QQ4)7FQ+LMKN[K/[,L$3$(2NBA"#9"VU;]^ 5*299L $R )@C(B>J8L"0 S MP03PY17_^,_'9?KN'C-.:/;/[S[\[?OOWN$LI@G)YO_\[NM--+DY/C__[AW/ M49:@E&;XG]]E]+O__(__^3_^\;^BZ#/.,$,Y3M[=K=_=+HHLP>R$+O&[_SZZ MOG@7O?O^E[__\/'JR[NOM\?O/G[_\5/T_8_1][]$T7_\(R79M[_+_[M#'+\3 M1&2\_/C/[Q9YOOK[^_[QCZ=\HF[__^/WWG]YO6W^W:2Y_3?)=A_W& M/[ZO?MPU?37TPZ>R[8=??_WU??GKKBDG=0W%H!_>__>7BYMX@9?GE!8U17DYC(POOE"WDIVC;+))?11\^1I\^_.V1)]^)67_WKIHZQ&)& M4WR-9^\V?WZ]/G\]%R3+WR=D^7[3YCU*4T%R.<*"X9F2U.T$2@I^E,_^WWL] M\_5*B $GRU6*OWO?GJB$+A')HB5>WF%F25[M&)T32I8XDRLEJAYG2ZMBF*[) M78CQ6%S8[84*QG=D93D!//G?,@! MH^U@)<$V8REY$3R3C,C=Z$)\W+26)/?%544)?LRQ. ,V.]66F)3&K]XAW\H MQ_'?YO3^?8))28;\HYR8ZBUB\N_3+"?Y^N394DG1'4[_^9WJYXJ:5&[(E&TF MQCTU]9+7"U47>([2ZMF31\)K"%.TL*9IAOA=N?H*'LT16E6$X33GVV^>*-Q\ M\>\3PN.4\H+A6R$I1V+\;Y,[GC,4YR\H-NCAE(.I7 @73^)?0Y^"$X.>3CFZ MV2YVL5'@<_'G2^%I;C@,O;?H+L5-M#YKI*/S:<.G MV"PQW<[A>%4U[QJ0_8"V.(*>&/['^QI8V2UV_CY*L=!YC7'RRWYN,'']4P/^ M/63\^UH6Y3=B9,XQGJZD)8QD\TF6G)%,&H_AJM&!7TY>MHE2+Q+X^>^KS5*XDBM!;$*GVW4 -Q/;#!$@=8#4 5('2!T@=8#47=J+[<\B ME\CZEXAD]^(39>9!%K5]G>!FS9,#3 XP^:!A\OE&\M=P6 SI$F!P@,$!!@<8 M'&!P@,%=PF#XV>,2]OX8,1QCD%K8ZGMJR>] R MX.>#O@[8"W ]X. M>'N?-[N3U&G28'2'..$1G44K09&D,']5Y:0YA5 _BIN$0@@- 3@'X'S0X'+* MYB@C?Y6B?TPS3E.2E!^$KG^UMRRFLRJ_@Z!TMP&;U.+HZ3$!B <@'H!X .(! MB <@WFGACE[/*T> /:%Q4?Y19@B6PKEO(X9C=N! ?<-V(S)Z0>X3\?A$DG"6 MHGD-)JW]O4>4?"QW(H;1,4U>GN^JG_NDIF!,\B[$'Z7_PHB=9LF)>'EUE#4T M[9'*DXT45<^^PHS0Y$Q\5Z=C-+9U1J><(QB5KUHZH/'\:16JL#&TN5MJZY Q MI*D#*BMI4R\A;3L']/W? K$4O=1W 2T=T'C+D(!T\NTU$JEJZH)* M\0@=97L_]VX'FB2)@#=\\X]*?^*:]@6;4#B@?+-UP+.2#-_;!9 M^T6-0PMZ]=C3)69S\6H^,_J0+X20K5"F7C':UKW3>D92?%GLZ_"O"'S=Q E5 M[%CL='/*U#-7VZIWVLZSF#*Q^$J 6F['Q[00F]Y:>]2 >CF@76!"%.?D'@OD MBC9[B89H7?/>J;W&%5R M0ZX^2&I;]4[;+7H\3Z0=:4:J>V0:-I^&]@?E#0701*5)9$$S]9ZM:M(C53XBN68_4R=ANB=[6RSN:UI!5^_M@ M'L(WXT$#V:&"'\WF3?7L1P/;.JF)M='Q:U3[U$S9 VCC0-X^>LJ;#O8!6?OD M'6L:9Q:0IQ^\XPGF=P*R]Z-W[ ']54#^?O*_YA%KC+%,JC?\@%ZL*&\7.!>::FI0 M([:7Q_:=KM,CT2$M?Z"@PG&DY>]M&U>(35FI=2>_H;3 5YB5.\D+RBUZ#L51 MM1%.BGQ!&?E+K(%&3E0]AN7@G/,"3OWSUL-2K@[G-NGBE(^*)_X[(92S9'/-2XX#6K^M,?R&+_EN?V+-:! R![_1N=S=@S5M* M?/9O>+;FLQ,Q[=_ZW)*_%C+:O_FY)6\ R^7 L7UF# *1IB.[;%G1\V.$XC\+ M4@6K57=5)>0>^]@JK>G=,'I*:SW4A.+35;^B9/6W7Y)\.X5GZ-^QT&-]VOS)9WN<#[KN9#+" M$N_.OJ,J N!&!@"(O7R2).7B>G;5P=':B%'-,G;[<*?S^@6S.6;[&Q07+%6T M5Q\-;G%J-YA;[\T6/"5_%#R7;[4>0@";!T]9*"(?BLA[QP@4AU%K,.TCMXZ/ M*]HQIO)I2IL5;FID]1B=HWE(".18$$ W +02;]JA3<(K!_]H=YY^[MAPODJ! M=D%O%A1LQZ2F^-NK-='^Z&@EG!W%3'1XA(",8=Z(J#D>I%#+N%=BV@=$;B6X M'47"A""[<+O4 =\NU86IS65@Q:>(X7LL8)CX-Z;SZBE;?;((EKROI4'NCM0V#.]"(@S-$6!FQ.>$ >?9JLC%SS2+24I*9?!H778_3A'G6J]9WX\+!$;VSNE?K,#G0D0?:??@( L. MLN @\XX1^-Y$79^$HW65 /=Y[S30WE\KA8-@KRPK7BV2 _%8!-M:L*WY:ENS MP[8NK6D_13.QO43W,UPN-:XF!M;# MJ:8\84Q6>"W)$&]+4(B>OBFO&9 51&FFX*K=*(?/J7>I-2']*:0_!7_'"XW2 M(",#U"?89@^AS)=XV'2VM]]KUJ6V;; H!XMR2+DPY%:_HFA'T'.T)O&W$OII MKE%Z9>;T+A;478T[\W?MTWOM<*D"L(%W"]5V4Z46A@XO%VQ?Q\^!9" $9Y,Q M1\'9Y,C99*"AN_0P_1QQ68KO#E67;XC-46P-%C';C>,X\20!J0C>HS?H/3H5 MDD?7&%?'(=Y\*FM23E=21M0.$L.N;OT'#X@E$A=H[$"U;0:RRDYGQWOK'8T:[-.&$<7BX23.-S6COXK-FU_??-7ZIT!] MW-I[=W*Q+SG[N/EH_4IVRH7TM)JRY"I%66,=KCX?%>8,_JA!/6K!'](7G551 MZ9V,R'>NK_'5W"/X1H)OI -O03WNHBY/AM&Z$C28U3M30*^OD5KL7%[9N09= M#2-Q2_0N0=9JK%LCL ]39:ZRC,X)% SEP5#NJZ&\4Z..2U/ZAP\1*>OBR0NJ M*T.TH1%=,X(3\WGC\X/A_) -Y\&V^>]3Q#*2S?GV=$1PRO*$:"\*K&Q[3BH;2.7BA"B"YK-4W*/DVVM M%U7 D+9A!X1,,[QE5DV$LI';^*0XID66\VL<8U*6O]$G,C+!'[IHU=@'8[!%X&C:EX3=QZ1YXF' [:;6A>&J+Z #V&Y4!2 M8R9BT;&14HYA[*='=(8H#N5@4XO3U1G9A"LLVEZ3! MN>B5?+94UGR "#V=G3!OJWP7477'?!=3=.GT UP%<^PJNC8\@I^#ZQVT*>8X> M31%T75\W,%G]Y("% Q8^<"PL!?\6/9J X.8N ?T&]!O0;T"_ ?T&]-LM^H6> M/4YA[T\"0";X+L>)O%W(%/C6]W8#?77/#N#W[8'?QDSW1[(LEK4Y&LK?^Z=* MK 8+8]0 M]NU?!*?)N=CR'J_%+JG.K3?OW0')-UC@BV2R++?D29;("J5E242&$Y+OKC-3 M4VTU0#>$BV-:/.Z>IO?;:WINF8:!XT??5$8$VX MJ:FAM7/*SS.AFA1E26FU9*L;#DAOXY4K35E2M&EEBM MD>E;!4_4 5SS]1MB1#YDUVA>"=#-Y)0%F-UX91 MVF"A](D#@ I(354N'_G3@'QJ8C#QD3"WLTWPA-K O0I2L@]YD+B!(%1+E^!:8Z,T9A.,FS>0_\JNFD%G+4=R&G<0+G!0IGLZN<4SG&?D+ M)^>)6%ID1K95&DOZ66D'IGTVB>CU:PRJ7V]2EBU6T8 MXM_RQTH:$<@M\RQ$*DS M(5$W>W+VY&/FANX7J]&"/A'TB:!/!'TBZ!-!GSA-5NL($4D"W1EV*]<9EJR"=9RG:(8(B^Y16N"(SJ)9]7)0&I%= M<0U+WK[A[;F0%.A2C2-<8WF-V3&-](R3F2DG.\)SA23XYW MH9#;/+$KS @5[7C.C]:3!\0264M/#Y(&>?A SHUZ=F0)4$;B'"GDP <.:EM0VX+:%M2VH+8%M>T U;8! MT=@(_4==PPK@%'14^-S)%+2"G2[U_U\BDMUC>8,$L8U?U WA1,]O)B#H]H>L MVW>H@)UO!&E]7#"V/=?@:A:L>U"F@C(5E*F@3 5E*BA3!ZA,M3H576+?7Z,5 MHV+9Y>MHE2+QK4QMP7\69%6VL0+#1F,Z0<<6% 6X'."R]G[R2IZNI#A-LN1T M*TQ-< C>,4#D )$#1 X0.4#D )$/%R*;GH;@F\T5.9P7?!&8^K^3='+%E/THG+(BGX:G8,5!.LODN2PU7 M5.T*U7U!><$:0X2Z&]$IIBPID_Y5$+AL:!VTC*!E!"TC:!E!RPA:Q@%J&5T@ MEA&&)X$._3'%''4-U9RJD1\BDHE6.!*D5_DXE@IEXT!N5$L@&4')/&0EL\.( MH]^QW)MQ,KD72WN.+PNY16S""DT+#UN,%52@H (%%2BH0$$%"BK0 :I W1V1 M3D'SQVCSWB.&5Y1)Q&^)FIM'<@.;H70$W!QP,_ F]?(FHB.A\?Y!V?;6'GZT MOM[*UTTE<*8@NNW 5$'1!T0=4#4 5$'1/T6$'4WYZ53>/TIFE.:/) T+8/A M:;[ +!+3A+(Y$21&J'226")NJ\'=@/ 6I 5<'G Y")>?27'%%^0>)^<[R:J\ MCH9 W'BD@3C^O%E3<,Z4/0;A@.IF^JS("X8G2[F3_U66-CA]E%4.8#>J]_&( MH%\%_2KH5T&_"OI5T*_>@G[5 !9&&*#5&N*-*7BK=R3D5'/^8:,TIC2;YY@M MH_0IC-!27S88THV6;$Q0T(V#;JS!NE,I39& M;B!UEX%XV*18B:UF.KL0.N*MT!$M^#(;)J#Z@.H#J@^H/J#Z@.H/%]7#3_U1 MNSULCGZ7JLO'",5_%H27H_,R5BPA]YB+I54PL=O@')%4: *"T@+MY!>HTM@- M[D35:4-:4('>G@K$6;X'^\2G)\K$!['@<888H5\SOL(QF1&J.TXJ.WL MO8.IWJ[@+4DU,M#8KH/B;)/D'F7Y%YR0&*5?GIT3^Q77-,TZ(.*$\!7E*/W, M:+$ZS^*T2$@V%]]*M$*R B>; B(T.Q8;'$DV'_X+I\EY=LK%8?=01W67XW; MYA>:BHWVC(C).RHXD5:I+V>WDRRYQJEXR^(?L=S+K?T\.Z MS>0_99018IEX)7S*+B@7.LEV2=V0+,9[[)P(9B;Q/O9MGHU.'^?AW&W2GWJ? M-(OG.)TM XQ0!;L].>\4\]+!B+[.P#.4U)[]VN&&XYWKJ>67:*D_Y5N.]O8X M'Q3U?!8$E!MY=H.D=6N[GRE8;&KNE/;SLI;?3CD\0JFLJ7BSP%C6XY\D2;FU MHE2^@)3R0B"6H[712]( 0+J49V#QXJ]U[JX/+M#4C4,V<6IM7?.36 M\3%$.\9Y/DUILZ69&IG[1Q=/,"2T\<[?W5:\:8=6:J_B.$:[\_034>)\E0(= M8MXL*-B.24WQJ5=KHOW1T4HX.\J5[? ( ;E'O!%1B6D?$+F5 MX'[R1G!#+*7Q\CNT6$IWX88PEKKQ(7A7;J%SYO7^([<[46?\PPSM0.9^\(6Y M?N*1@+/PHR^ST&&D!9#UGSQCW=ZD#F3XY_$P7.,; 3+YBV=,VH;3 -G]U7]V MNPS]@*(6WW+%W(01N,9%C@[V6QLZOAL;4.G3EN!(W.&XOQWDB^V-X+1M+LGDS%(21U(['?'B%.^->,WG',[J6F?)ZMBER2G<6" MD7)K/EJ7W8]3Q+DVWJGOQX6Y,W_C<=;5 "<*_PSJ?4^VNE<+CEE0_#JT5R(+$!P8MEO."#%ZM?>G:";VENA>;BX1G47B04CL&"B-2,;%%);FVY9&GU;/<&($ZH#"8!1Z M@T:A.M/_G.%J+\-L66%XL8G3.<_B29:<(-Y8\<&D7Q>F-0!) M/3Y>NM#IV^!9I$RY&"IC MP%YI[?,J/JJI[D>[03V8!QDU(W:$9\3O% XCYD$C^9+-.KK,W&!N[X?.6_&P MZ6SOM-3L:MJVP4D0\E4[YU8O<;0C8#M:+\=;R9LQ5ZR]LEQ[ETCCSNIK_JY] M>J\=+E7 V>G=0K7=5*F%OLE:<:K7#@S%]C8\MPL_2\NO?X_1WR!&+Y#8IZBDC1QL'>0WF$\KA/O MOB55P:/_!CWZIT(2Z1KC"OSBS:>;G,;?IBLI,VJOL&'7#HB]D6+-KQ!)SBB[ M18\RV&A!4YE8++XH?SV20G^\)_-?$/N&\RM&XE?&W Z'=.MH?4 LD2J.QN1; MV\8IE5OQN,'LGLB*4753*01'WMV#DY)> 0%RE.[_+M-(+VG^+YPW)N[T_KS# MF+TKS B5PG[]E/[WP?64:HGP;Y[%OG"$,W%"YV<"&.W_GPT?[-:=< MQ=G3"9LE5RG*&NO&]_FH,&?P1PT:CF2#-W5S8SE4" $Y@!"0\ES:?[M2SO4U MX9M[A' 0)P$2]?H9=7E:C#9Z0J/;>N>*[?4U4HN5[95K;]#5,))(C-XER-J6 MYY^?S=%B,U -1Q?W$F(#C ^-$!O0KX.X#S.:?WL7[.TZM\.,-:C S XYMJB" MSDP 8PPVZ-1G!YP WTKK.O)V 6?'MSJ\0SJN7,:U?/@0D?)^GDC@OBKJHV5$ MB\&(3F)9C.D)42R'',72/G9"/#XA:9&3>[$[Q 4KXTA/'V5]>IQLH6.1ESO M=+:M7RS6?;F)3):T4%Z&W>G8P4(?:B)Z:=\.-H9@8S@\&T,/>[=3(/@QVLA" MQ/"*,IDUT!8)&@SI!@H:$Q2PX-O#@ISE>PA"?'JB3-[,^ 7]0=FV0&%=T6I] MH][IDXZ'Z>P9 ;4O%]1V'-2VD4M%H/@%S>:IV,F3;?U850R[MF$7M=8*.> + MME^!Z^:6'9 RS?!V6/5\*!NY5=+B6!ZG_!K'F)35??4EPQJ:.Z7]F&;R;J\J M4>^:\&]'.(L72\2^:0/=H-T.@9=! _!>$[?>D:?)IX!V&YJ7AK000(]A.7BZ M&D^5E #I,BP/EIUYP41S!P_HUPH5I,N8>1AT9=03=D89)G-]T+!!3Z<<;1'SYA[9;'Y3 M60=4"Z2QO5L3-DHQWQ3&O\2Y/FQ;US8X"H*C8&?.],E1H&>DP]. M/J11]"O#&D./_X*LVE6I$;PR6=+9MCN4$[16D_"3R3X+L<)_+*K[8X#3::&Z1F0DO :F\/JS6F M7C^29;&LC717_MX_56)]:*FJ^[UWJJYE/4=%=OJKW]Q0HYRAFE_]H:B'Y/*C ME%(Y]/QF05F>8[8\0MFW?Q&<)N=BRRO/)'6&M7GO#DB^P0*4))-EN25/LD06 M,!;/28X93DB^NZ!13;75 -T07HA'7.-[FMZ+$[YZWAF*R^M/M?2"^W5'IKS+ M\X*J[F!H;-@%(<4=)PE!;/VY0 QE8B!-]8/FUFZ3-Y^])%T6L[+A@/3J\V4U M3<=$\Z IC"<">YYG7.@@95ECM7RH&PY([Q'BA-^L&$;)-/L-,2+5,KG;JQ+= M3;L/R)L0$GUIQ*;F ])^+K1U)HXS.9>E&IH\Q=R N($,,"!_C7=L-34?(^T> M[5-5R6 2;ZJQ7S&2Q63UI"]K.6KJ[)2O"RSQ*I_.JI-A6N0"!&:R[+9V[4.[ MN>6%9'A+$0!Q-#4?G/8+B&]V#KEEQLBZQ MVG*C;Q7

">YC2?Z3F+M?=I>"G$[P'-@ MA6^:#3K>"6X#F-D3VZ80 B_%LQVF.Y!Z-M (!N^$4ZM'O!!-@Z@;+R757K-J M):7^%$:!V;J\DU&-QK254-OH.R_EU$Z+;"6C'=T#W5%E,$4DK#>"J;*9T<;0 M8J_D#6H3]$'S:?$VU.'GWK W.D@WBH@3QW=>Q[RT4(^VN'EH\&B&MWJT)TQ M5V?G@H6@N-7*>GJ;L,@[M]"^)U:AH<5N,6)W@JR,0W)[!G;'D%% )9#)GSUC MTC;&^HE=?RKLS8J\8.+37F&9B,[4!>BV''5<@L^6#*]J]+5C(J0EO[VT9(,X MI3,ISOA"UCE^6?=IORK4Z>-*8'\\F8E-Z5\8L3/1X05''8[H\0Q_Q%*!D+5DTV4QHA51DDJ+ M;E[^R\$\Y_M6/+F[%_YL--\Y?Z#=\?TTEB]<7V)5C@>L4XB/#V72E*;/(7TW MP2P=S-*'9Y;N'&&.U(+=I=HQ4IMV!_!CI";N3@#G2"W>76@9([6-=Z%8CM1B MWIFI"7H?&N>+K]CF)?&[I2@.^E@);C\O5CB MQ-(7T,W#G%C\NR0UV/4/V:ZO*'8W2>Z1S,](B$"MZBIWFF9=5(,L.)'E<(_I M\HYDU;UM.*;SC/PE]J%$2#N9E0[US4Y7PL9Y-TG'!6'D4//T0Q^+@V6_:]XR9T.#]])W@&68RHP0]#C%SM8_W M?M)V%12C8'(O>S9MN"X>/?8Y?:XPR5AE M?H76&K_W(#2,=I:?S)XNA+7F:2.>N7LL2]:HZK'V^JS1SEJYWU_2+-[?MAS, MH/:YHYW-*T97F.7KJQ0)GK+D5+1=[8=$]#BCC<\>PZQN#9>U'*ICV'I^FMOK M/1!?; D\8W2YIP4JN ?T\"4,\6C]!?U!V7&*A'JKUH M1O"%PR?J&F\^L!SE M\#D=U%:CG],L#GRY7.,>[VFP*JRNX M@]L2XU4F,;^EF_UV>_!@_IE1KMK.H-U"D'4(LJX(]BS(&E8ZMLEN3:V=#SYR M:X-18*%.S8?_Z$+LC5P;WA1_,I?6;9&RQH 5KU(*^EC /E22ZE!PK342[X39 M=N/9BK:5+]Q+<7>[@_NP('H6#T.EP[N[PDN3,U&KO M=AL8DRV#2D::] 8V:8\TMP=)!\ M/>@LC0#(+Q##=^)=)5%IQ,]X59Q:T+9$;"V+5/.?/F(6$RXW]W3 M1S6SG^7EY *E5Q?\Z")O>WS2J&9L[X*9\RQG).,D_@VE15_2U_B\LK_N> M\CECG:T!]CW#IX]J9G_#/"\U35D ,A9_WE+YU; '33=$'<)[V+_%:SYG D/G MV,ENVYJ> YO]7C=IT\?[-;=#-T'%CTNRBQ/<<,#L@E2AYL1THI/ [26JO]U%1EUK? M:'/;-?X][Y* >WV-M(W#UJLTPD&7A0\)PR%Q-"2.'E[B:,]^NI%FF@[B>1MI M?FKO<04CS6L=S$HXTK38M@K12)-4!'%VV[:"1.F/-NO4ICF]T:;B>^\]&EZ/K5V"C M'UF$0J,3)$HN-EERA2"AOQQ"L\<-G$%H0VS('VRV1(\W?_"-I.1=[P2_M/9\ M%6+/KV^^:B]% /7Q*SQ1M<_+HE+Y^CP3#!6EW:Q9P,0,%AS7 AMN 7X*2TQ9Z('?P,$=9+_D(OQ!W(>WEN"7<^\_6//\BY M]4_L+>D[D+=S2;/[$OCWD\=C^_Q#FUW_Q-Z.]A>7__X@YQ;_X3> MDCZ_WH[?*7)ASL:65A@"^95&WA#8'@+;0V#[8('MYC8XK^*;0T1[B&@/$>TA MHKT;8\A;BW3OS8+QUL+@6YF?#S4V?AAS\5@CYP>QAAUJO/TPUJLQA^(/X6M^ M:R'X/;J'78:$??@^2N4- #Q"VVBU:%9(JJOOH]7F(DO+&##K\9T$?;6D+D1Y M'7*4EZ)*_!G)4!;C\MZ,[2T1ZUMZA*\022:S'+-_8<3.:%%;*-Z\=P(GRB=/U!NWG%RZ78-V\?<'J/ MO] L7ZC\)[;#>,6K:D%9=O>.MUOQ+%OA?-7?/^X>:!O>GGK[PUF5U2&P^'1V M1GB,4DFI#9/:@8;G]VN6"*KD;7PX.7V,Q=DU6&42^WQVWQ2F';W MDC?@R=%V."]Y;SA);(?QEE?=R6(]CK_<*D\:RU'\X]3DY&D_H#_\&YY$K<9R MRK6"1@5?#:U##%>(X=I99WV*X0I!&2$HX_"",MJJ=B.-KN@*5XPT)J*=26VD ML0W=:(,C#46PLE.--)*@E:8T4G^_I8UUI-[ZEGH_D&O?"N'9.0F@P,2W^G;M M#%E0KKW!8VVR[.8%15E]Z35U"Z=.BF.&$Y*?H;C<.C25[=0-!Z176\1 UW1,- ]: M..%$[&E/\?(:^5 W')#>QD(73$MMV$Y MF2I*:YH,1N-QP1A6AR&H6PY&\27-8C#1KQL[ISO?D-)0Z577=%":M7N&OO'8 MZ!YTI[O&]S2]EY76GYW9#85V 7U"4$T(JMGI^CX%U< *(VF (#4%7C[RIU&$ MJ(GRX2-OVD.-FATCHPOX@FJZCE]=LC0@SC_"[PV@.?O?@=S>A/?C=#]CO_J7"&03S M:[RM+SB=73&2Q62%TO,,6N6DBS']G87&&B"M!O.<;W4UD!9#^Y0*HNF1'R!<]?4%\LBE0=N>2FK MO-F5X874CN]Q-<,7E',A(=.9F&HU3S:CN.4T24JH@E)9-/,\.T8KDJ-4Q9&^ MM5O*:_?4VA\'H*M!VNO:#$?EY([G#,4@:E^V=1M$B_A"')3R'WE[\CU*I4XV MR8\18VMQB#Z["OEE5*U)7[=62Y*5Z*0FDF<0#6"B96!F'W=S#.0:.!!W6%8^O?0FP$3];V<E*W58E+7Q'$2 MPTXL%236M!B*0H$"RF-U0=,$,RX!CO(:/6BWH7AIJ"KHAX;XFHP&$-W<(91Q M/,@RCJ7JO]E_F\C6MG5/]?[)#")=V\$I_5=L S,:E1)-2]<4KQ!)3A\E/&TP MM6K;.J::KC#+UQ)*Y^(XD4?(JHQV5)[LD"Z.$R9R1#*U#RD MV82(QQ#Q&"(>7[ $\&YX%R&NIWD_>-K'=:P0S"W?A>Q>7"N91;1;S+M(4 MS!- F_$NFA0NE&I7KW=QH@9O#*K" 7ET=T'.\T!P#A-8A:%]+KG;Y@S"(D\-0[.37CTCQRR3MU LAPB^0%[Y0,*TEN M"@#W3NLPX[*KVM[N- Y#_KK9B-PI(/:OKR7$<:=WF+%H%.#FG?9AQZMEP*A_ MVDBGITQ;MGW%3-!8#_]T%>N]V(XQ[]#1#@X"\P>\0X%0-Q7,D>V=>@8@_+GA M7!^ZY)UN9L:?/E_$.Y7,C#E0+IV'Z\^$1], *>\T,,-7VB;ATSN]S(QW6/2- M=\J9&9--@5W>*6=F[)EE!CPQV_]-4S]&;.?4YQ'*D@BE*7TH*Z',*(OBLDA< M)&93X.]G;>VNG^KL>7U7B>F#VE MYI"KQ?107.,S$Y)E6EZCKI-;/K9KY(RR M$UK6$!"+]H>GAW81",> ]:E5O5+1#;AQ$+CBWBQ7"*VEA?9;K^VO;W7?& G M>I(M64$A"@H1I)K%F9!4OL")#*>MK'S7F&-VKZP@8= SU.=0T7B-'KZ(9P8E+BAQ08D+2EQ0XIS@?=.C9J2*G/$! M-%+US1BN>>C/-N)3$Z[8OW;Z:[3:I!E&*YEG6#JV\#;34/^CG=K:X1.=Z+.= MTQL4W4-6=!7W%YP53 ADP? 9>93_5"&!RU4ASBM>?VNT8;>A:K>?X!7#,2FC MDL7?*2[WW2R9+"G+R5]56J@JE5GMR.QT>*=SF8@7=Q6-Q2[LYA9^0_XC8#ZN.5"QK_+D"$X M#\T]G'+P!<4+ 8W8>G^M:CD ]/"C(M_1^G;]_"I8:&&^USW]X*CTB)DR\ZR3 M'WR,J%:BDB I(;6HRJ+GX7#4&80,]M=@?QV.$9L3 E(N2+7T1V=[MCY"OF6&[U^R6UGNW1FT+=^[A5;HG9';5N2AJHMWUFY+AL&:CG=F;U.& MK>Q;WB5P6;YFN&W$[2867,3!17QX+F(3.X5W)RGVEW[#\,4J?\D,M/:RMG^/$K]H1E<&;^@:]J:56\+H: MB]J/"NK0 V%/17O@M*GZ=$"><6B\2Q#8:S!.7FPT "X4/9QRL-N\320*ULD'/IIOJ(3V M&Y ;F&2!^@17QP0LU,&MX9]9NP:;>0A(<9L%A9L9Q<)B]9,D _'JWL< X!"N.8W.!]7]O MF6^9E";JLW?Q(^;2V@F#+HO_VHMK)ZRZ+ 3<0EQ' MEJK]9_%*+]29A.8#!--[,+TKK0XC-TD'BU"P"/F"=;7'RTB-/[:GC8_(?4," M3LD]3FI_[Q.R&S[=*ZQN17L Z8<,TA7AD>?B5$E3'.<%2K>Y!6*S2'"&EEAF M98J-(U''3%IT=UO;9W=9.6^H)*-IZ3I03"S<"[EPSW?KMC)I[R7"[">\*!BR M'\@7?H_67] ?E)7W &NB7RU&\(5#704::#=?>'F:Z4NQ]K41LY:C'#ZG@P8, MOR3P$N>GCW%:R*3\!@N-25>G/$E#M;Q;/,>3.<. @F+-'8)U)EAGO+3.P (C M;4Y+VM'6/3IK56N(X5U,I>W[HVT!OU=VO6$6PTBB--N(B.$IZIV1K0/>&Q7) M$,49;/9F' >;O<'.>SB%3]I:<,86WVFM3#IU7ORPL;JG-)OGF"V?%?+0_&3I MK>CH<6[<$YT2&_P1;] ?L4..U2ZU18]7:%WM&Z#:&-:#=%$@0TIY;49/^4L= MN< N;JL@%%SLT9P?T^4=R'B*8H=GSMBTR Z0T-@T2&,T-=:\0"#,<*08 MB^TK$3LM3N1?G*8DD8:):-> RPR1&/%%-$OI X^*# EM7C2!*\.M']&W MP1 M@4'I?8-*[R2Y1[+B0T)BE*J#[33-.B#B!/%&"E1MG"H)D^2/@N?EFKJEUU@L MMYBD^!+GY_*LPS*V^98>BY5VQ>B].-Z3H_57+DVH3WF-<4[NRXUS.OZJC3U/S4M_;46#1A3&:1 MEBOJN$PH/<\F91+I=-:$RS^T-BMU\G2W\[U$J";_&8A\AL4 . M\H=)ECS_8J^EV*0JK\D)X2O*4?J9T6(E>HC/<6F^B$+)#[RK4YXJT9C.]L5EFGFP _E#V& E@Z\8 M$=!SA=*-Y4:3--#FLODB\21_'L?$O]]9)'$O@P,7D M:GP5X'Z><"-T'"S6B U#K[L.SQ,3JWC/3&;"DZ+KP#Q)E"J5R-])OG@*--Q M5#![H%$&YG3ON-\L%:%V3V=[7UO(JLV@@\_#O=B[*3,1WYH^ W.QLX<BC.]S,.GO%E\U6VCC"P!Q>,;Q")-EJ&:>/*VG%%TBP M)-SP39H,YC8/#N=U9LH*+CXS4RIX-1_ 4_X:=A[[@7S@5V[\/&_Q/C4#>,J? MW?L$#.0#OS5N!#,^-0-XRI_=^_3-W_+,1:1FY74;IU1N#0/7N,PDN*4" DN= M0-Y*+N;RC+*;!6+X2)QMY=W5XC#36;;:#C<([[=TXP+:NA$P+W6"TH)4_9(T M\&LRQ+ \-MZ-V\0A\')=5_PQ&F.<\#-&EQ=RYL6C_@:E>#HS M?CWF(PS'84[C;]-5:4X]?<0L)ER]L*#]G')S+;!]M1RF,XBT-;8?CGJ:S6\Q M6Y[@.Q#Q-G3$A_+[\+83?=U:]HRGJHR;R&1BZ,[ID ^B4^%F' M _YVMG'-C=%_7B57]"&P(ZF?8?YJ]6&5H5Y$2 ,RXSBD ;UDJ:W9R+OSHP5# M%&2"&ENVTZ95_Q';WHE"KRSO3:UYX)IWFX6KJ3((8/)NG;F:(XB>[EW^H:O) M&22FW;MD2'<[FTF(L7=""2VK9!=3X]UY9\&(=AJ: AB].\6ZG@!EN)AW9U/7 MG)O'ZWBW^+N>DN9@-.^.B;XVA-H0;2#W[J[9[8%[;>PS< +<7+N N!V\V ;9^;=H='*;@@.'_0./+=@ M:&]:;.."O(/2/4T'.!#,.X3=T838!B9Y!Z^[F0_;:&OOP&:K71,<1#^671/" MD&)57*@#PL:R21IR#PR'&\N.V(9[93S=6+8_0^8-LM*]PXG=+WU 1*MW^WY' ML]!)@H!W!HAN)L\,XUX,*4=R6C_]Z#\ M$/%BM:HBU5#Z5-DT(MF,LF5)7L3C!4Z*%,O:IX#F=E>D.*#$R>TISO@(-6;? M8(W9[2Z]9ZLM\;BR>HQ1)\<%^THS=>FM%?ICP;#<-F7]Z^2HR"]I_B^<7R&B MRBXS[>ZZ0,63PX4DXD12<*%NZ)C>'(L)S)N(K6WE-B6;9G*/?+*Y9SKW M4(8$JV<"8YP_08R&56/8.Z01AO2=D+X3TG=>LF2SBWCG13+E@@(!E'\OM0VC M>ECKG7L(Z!&U X_>B; Y'[2MXN6==+>:@\Y0M7<+P6Y:+*P,CJR7*XJOF PS-7[@2IQOK+UVN M&%Y(G? >5W"Q#+(4F%%E\&WNX0L'#=84@YZ..>*"BL^4)C)Q\@:S>Q)C?D-3 MI0V^L8/;JT\0RX2D2X=V&8'2\!J:F@]*^Q'B) 82_JSMH%2?D+3(E04!&UH/ M=*%)361S4\5&L\YN^6*"+D'/3%G0L*;% +XQ.7TRC*XZG0HA%D_A$$=X1AG> MLR&U:^?%QBD,_B(&9%&\%(Y:C^,#I*^(:MG7;8;SD56=) ML!HC1/>$Z)X0W1.B>UZPU!H]>><+A_$--8)[EQ4,8T]I+O0NQQ>X\BSPKW>) MO#!6;9VKWJ7F6K/K3;55=WF[P%5MX<'P+G<6QFJCY=.[!%9H)5B-E1R*(1R& MS<)>EH%]"YP/F'$;.B.^*4S&<8A0 M1GW3=GIQTWJW+W3-)6 "'41,>+?=###-5@$6WIE3>YPX<&RXHZRCLA+0QP@] M6=NB%:-1F3OYK++/+NW&LFI2JVF0DY 4E8XT%^7NUS9JO$_7 M<:90XW6QBAP?X/W.8^>F,^'MBJO78@UL/33E5XR>R0W4)''$=AA?>=6GF]@/ M-#2_?$LGU%1<.;'X[M*C*G&[QFJL3[$;DA1OYAP2^6_#QSNH%?SL4JC)X%3O9A\"V"K#LB.T0 M!!N"8 \O"-880'EGI6W/IQM-8:3AM)::PTB#;=L9'$8>=FMK=W#IH_@4L6I7 M$O_&=%X]9?==0CB:SYDXM*1M_FX=Y0L<+=$?E$62U+)^V%P&OD=3MLE+J2&O MJ9DK&O>S9VI?,*CM.*AM(YL*?]EI-A>G#F85BCH1>TQ*RR!^M>\,V*4#XFXI M3:NG?$'Q0CR4K=5D-39V:LK;O,-Z&'YAKX*"=F>O#(2MY= 'LVXG+\X !7AC/S/CS@AZ!<-\,,R;<1P,\R]9 MZK ZQ5!6N7A#=X3DG1.552C=I*43S#NUN!D^:T!KFA6EP5)VR)8RA1&B;MV7 MU[>\O/KZC+*OF1"@%">;;>.Z$KB_7L<:=CYP3XSNZE?L:"KP+7U6XD+0@LD] M3LH]Y0KKXP8.8YU1L M[V1&Q,%,*SG26%&LQQFG61KLR=X8JX < M]@OVQA;!U24J'&D\%QPRCBUVJR<]#C@-_E4&:86@7=K*?I36H T5E?5''%'T M 64QEIGFD7AC"8VV\O4[(SF>SF8J]=IR%->A M5/=$:DLU-"K8@G0)]HY@[PCVCF#O"/8.)[J!S5$Z-L.'\>DS-EM&%ZC!I9;W M<\1EOM2=4+Z32+26=:'1QO__[ //+16W%D]PHHNUIB^H5X>L7JFR0H1,TC7& MDRRYI!G>?+K):?QMNI("H\D.,>OJ7&>*T;8R[Y%<$\=[JT!_ Z)99[=\/2"6 MW(HG:NJ2U;9Q[+E>+FE62H(V+4;9SBFU54KUTWDHGZJO_ ;HX0,'VDI\H#[C MYF+06H+7F.>,Q'(7D?+]51SS_/KFJW8]@/JXM0Z +L/B6JZLQG#+9>T^OW\) MU-'ZJ2V'N%2E[OLZ S%QMC5FWQ.,Z$UOLFS%GAX937O8Y'[D K:H51K M=%[OY+C7S8F"M6LO17R0G=V'M>"#W%@;]?SSWCA:8@8*N]LY"I[EX%D^3,^R MJ6'>I1/RPX>(E* K$JNO75@3((LFS HT(Z['):NND* M,4J&\PBO;.-+>Z7!B2/3 0?!U7G(KLXN/!&L%$B4;D!T*6//+YU[C1_VX(7: M7='1P,%>Z=Y>V3F=EI?*OF"DU=6TPW*JOTX8QB?D2N)@?PZ:1- D@B;1Q5[B MG[$#Q''7T&.D :T=W>/N0)?\/DIE*BFO_FD3N0H9RHUF!R8D*&A!0=/ R3.2 MR:#T"RE%Y^*,%(LVU\=T GH,QL$5(UE,5BC=;+HJ[0K49S NKN7&.IU]Y;A, M!)\LY4WM?Y6&.0 _@-Z#YX65>ABBL.-SDXYO6C[IA,/\>@/GW M-\2(?'B3&"C;!>-F,&X&XV8P;KY@J0$E>A<0J::7ME06O7N!QJQJ;17>F:)! M[#5I!=Y9ED%<-1S20*;I066T:2S\F41E$8D$_P5Y6:S]^WF$J&EX*M@,AXU?S9 %B%9$K5@LJYS M=(;5[SAG& M^P:'_=)&1AV=V@R/"BY4?\Z/Z?).+!))D*S%+:1?4/2LP'[353$M1G+KH13+ MO7P11^O=G_]%!&DL7JPOY,68FDH]9IV'XNM+M;M)H3IC^,\"9W'=8K'H.0Q' MY]FJR'DYO9^TI6$ /8;AH&Y>M35*#'H>#D>#%E&IHX^_7N3&/#:.<=A<^O=. MK[?X#K:5 +H&[VDH]K/367WR1\+*WQB"&MK)?N?Y1#0"H899T)[5HW-*6R-% M[WR#)N^J2="UIX%7;OK^!=R'FB?]"#I8SQN%K#?OSG6ST*1.^2[L?1YKK20_ ME&<)<4R3BI;%[61N%(7MEW MMXZ6B'W#UJF%EL.[23=L15SP&!VRQZC>3,)9OF*!,?_OT%_4'9[K+B M&N+TC7JG3Q:KF\Z>$5#[ TGF%&^0C$^P3,9>-5]:6E@+H@VVXLW>FAT?>6!P,F0( M3R!K_:?1F+&FQY.C+B_S MS3A-22(KGT>[!KPL?BVO'5C05$PXC_"?A5B:49$AP8IH"[?E=O>LO@V[75,* ML_(J[ 1[-ZSLU0Q4VRL@[9WJD),X+I9%*J=PFB\PD]7T&5[((^(>5_<':8/N MC/N[Y2Y)2H&368,D.<^.T8KD*GN221_'7/PA-JE2MF^I@KSZ^Q!J;R>1RX&+ M=7"#V3V)90(6H1F$BI',]-[]. /,L-73G<[L:;D'2YII)AC4 M1BMKVXZ+ZD%CJ2]Q7NW %Y2K3)FU;=S6_5(<&Y(@0=UT)H&8=-T*:/FL5/&5 M6 GJDF?=C.K8XIX+D<')*6(R"5I_I[*^L>-J9K!K"ORXB*"B0FZJ9Y0)*9!* M@$2*@A[Q1?W^JF7(;JAA/ 4O-JDZ#[91G^"?.8 J="5Z..>\P,E)(:.C*\A0 M2?<3Q'D@\?<0L)OQ)%S9B6#>0#_R6H7B6@EO? MUQNNNA!;P$#N^=T8:ZK#1L=/;4.G]-ZR,LA\79)3672T4*VQ_5#>^ [3+PS0 M@C>N7YB^28U-=X-%(NAR*V OB%KIL]ZY09K?J+FQSSN?!YA)B*KHC:_8_!7: M6:"!#+LKQPAF&'B<#.96UJ3K=K,)!6>S'[LLD"7HC5J>;*O0%Z6'HM[MIP9L MM5%TO=M66_$-UI2 ;+LK@]O%ZVY6\X%LNRN8"[Q%?@A'&W"NW)7@-=F^V]BX M@8R[*\W;MY!TX.\&SIF[XKX=["<*HQH4UKBS![0_,EJRZAN$Z]29"IT$WQ"? MQE/>' ^X^5[^WYW8+L0W_Q]02P,$% @ ]DFJ5L[J8*_,;@ X$@& !4 M !U9G!T+3(P,C,P,S,Q7VQA8BYX;6SMO6USY#:2,/C](NX_X+QW.W9$E>WN MMCWCF=U]0BVU^E%<=TLGJ3W/G.-B@B)1$LG'Q%2FK*$^BC.7T/[_*V5?_X[_^]__M/_Z/^?P]S6D1530A=QMR^[#. M$UJLN/_N]???O_FN&?U5 M/1S^FE3;#]J#?_Q._G$[]&CJIS=B[*N??_[Y._'7[= R[1K()WWUW?_Z^.$F M?J#+:)[F0)$8<"G3/Y?BEQ]8'%6"C(-+(,H1\-.\&3:'7\U?O9Z_>?7M"CHHON[K"CV M/@,\?@8\7OT$>/Q;UVS59L5YHTR7JXQ^]=UH3*]HD;+D76X9Y>YIG>!^4T5% MY0+[XXDMXW_+JBBSB_GQE+9QYBJ,6L;Y:$K+.'^BEOGC<$)[^"(0K8Z1U,0N M@U$?^+_J@3!ACU(5\&H5WIJ8/E>4VZ-::V[G9O'>(M:+%2#Z^LWW;Z22_3?X MS=_/6+Q>TKPZR;FRJ-)J+ET!5.CJ3ZRBMXSO$'?( MTRCC[E%%0?+/:!6E67G+#<$ZRKJTMMF7&/VM!\$U]P(6Y):1+1YDBPBI,2$U M*OZUNN$FL!&4'9YP35%RL[,NZ+R* MNM2TO1DQC#D.LA>&?4WFY*2%"^&XD+,=+OY9U=)V,0=[X(JUW\P+^DCS->7_ M%7I?^$\(CM:9R"HC]P'TPK]O./]>2Q3(]0Z%";&MUIX,YJG+9\?P;.(>:VRL %\+QS] ^?HFQ9&Y)1C1,XY1F$/ MAE8W<)#?T;OBBOU_!,&CZ:,$"=8BRC@^$)^>AZ[>H"5?EI$&-<-3(J4"-?!"H34A$1NWMH*R,WS!70O/3?!&E MQ?PQRKCA8HOYHCE)B+N=0L2.4,*"F=BJD)@@X$4X?N+"<@QS73\07>1U^NBX*N.P7(UL'<0]WXT.@ M)W!1KD+1M?2!V.[H]U]M#;\)[D7.WG]Y&SV=I&6>L M7!<4KES?2L".=>2)("06,(ED0#\93DJ^WOLPT7IV#AGAN/U MO*3WXN>"KEA1I?D]RG(,SV/7=*CA^;$=D&%U(S$@UPT&4S(>&ALR;#UTJ>R, M/=_,[QE+GM(L$[$=)B0CW6;#SJ7"07$L:FJ[3&R$@A^^ALRK]S52(HPH%?PN M 9F@C .W09AIT%* MBBDXUW+4X /9L#N,X"?AOP-2!+ BOPJ\2.CK)/1V,5M[X.OQICP/1]+CD3GK M[2-%))V>>2+?F1KY'79 .7WN:892F'>@\SI\0VJW5#ZW:"E(4GNFY.OZ-? W M$W)]+#&!\2/2,3L;P+@@#(E#HQ'60$S3$)@J_4DH>$BVG(MG>GO/]=9YM$[2 MRH9>-X7@3IWK8A)"B\M\7W(.6+4?CY*O/S?H?3-]]6V\UV9:&[>!?DL!-+]+ MTC*ZOR_J^F1WFWGU0.?+Z!^LF -")3QX@IL(:7E*6CRF,?]MR3*RQ&'UB#%K#<3 =64ZP]*I 2E*\;;!.<,'?;;M>,O_5NXS"5)*=AONO/ M7=(D[#1L9;E>+J-B T9_?UC"UG?58IW-H_K=K =3BD_%!6*&4R8GY/A0.5> 2O)2C"[ZT?3SERDQ34,9L\ MHOB@YL[Y%YV6PU%6D/C"5N+W45RECVFUL2Q)IN \"98N6E.0LY9G?@.XDDN! M*_?'):XO3.R,.6*$%.*V>8J1,_&@TD+X;'\>]S$T"<]/U8SF*G,R#^8T-P$7 M4.JBK']SPC>E*M(8,CRDA*US?KAU9$S,@'DR)7I(3<&07&\QK0W)9X[I2S4C MAKPPPHA@-GB*)J25&G.1BQ=GR7A[TC.I>^/2 7R"5S8=6#J^Q+%"ETK1<[B' M. V*I(7CC.QA25IHSO:RM?1H$]YX]W$\SI(/;I>?JO4M9SG=OJ/'&'#S:1U6 MN.\#'Z+N_?Z!;ENP8)+6%[&1AN7R]7\C+\<716_F@HCOH*&&+CNP$! MG"@!0U#>GTNZEX4/ R:?BS]^WPWZ&XS:S "/GD49\\5: M='.7**VD[AGK2QG.[HBS-;$(P.XG#6;D7&!6\W^M^:?N,9GNKH%@H+;,GX?4 M:8Q:=OKM9C>DWLR3IZA(X/Q9;5II<>("[_8ARFLC]IY/4947^14M4I;\E8+# M2).31UI$]U3\\8P3!9+E1*ZF0J0AF#X4XT)B20J)(*_ MD 14!.3E$9&71[Y./.>LX!CGLG)CO!'W$'"9R6F3)^*G3%(J^<>ZK( GVAUN;B-GJ^@ M8P'_0U45Z=U:U#F]95=13Y71(#@@%8Y77%TKE1KINK!HO"'5#E%R'Z5AGEN% M80?(9Q4,9$+Q+$GG'')NZN;:1XO MG'(2JKF;9?;PGA?4JG/'^2;F:^6+N%S\PJ#WT$5>4:N&G-Q]>\T>) +VW.2_@R/"#2 &U5(_"L2F>5S ;BVN4:?V M?DTF6V/WX$-5X8)G (.%CU,Y^ M :[V.2L6-(4;T7)Z?C8&NK40 [Z:*BLKLSN9R77%]EB=<&SEU*;\\8K_+DVF2^L5Y[PC]Z\5W MQ_)0:,\]H8LTYX?$+'VD2>??W;GLAK"#^.J:.$[.23^K\9X+Q#N&O&3WW)1Q MK/GE*&X(+>+U4PA^?BBJ])^R,)$HFN!3UK%(!!%Z4V0G)_WULZ"3U@)DR9 O M20N@6"Y;D)H=WH[O7W9U (FH TB@#F I3FPR%?A+.Z:IQ=+G38IJYX.F4A=,M M_ M%Q4Y/]V7'+]FD6ELD$2M,XW%].D^<"$3I_OPLI4R;7?MF&1I@#2E^ Z:(0>R MH/4I[>Q0]4/M[64LO^=;M=RKL-/S)]3AR1(PNX>DD4CY.0Q!*UAY_OG <9D# M,GM%H_K_.LECCRUF&#[>6-WA+^ 8LPW>RB=PX2X5]^%/[@AS@.?+/\ <+&A: MQY?1U+9ST3?V[/)"R3;NRNY?[L"G4F%^+]^ZMMR9I_C3/,T3>L?!@AN[LYCP M.YP[:#*C79]/![(?Q^XG\5I]APO4O=KZ<&?\U]-TWHRV;MA#,]\/7VQ>UJGV M$.A>1M6ZP/9JP4SLE.G[$ C&^\W+!KB^^5@C]2(D0&L[C05!?X]&R@-L2'G+ MMLU';QJ\.IE\>#2&<]6S^F#'DMRR5O/5'7#_3*=!7F9(,V?L<7+'W90H/BIK M9?:5779I9@_*-N37!@W/S] ,*3_,2=WD_ +B(/O5Z;R'0;K!3RX*LH^FMQJ/ M_W)'2@4[!*C3^,4)^GXM!^^"W@U^A.YS]&H 4XP2Z/&S'&>!GK]B$R-&M8+S=4X M9$U:+J,4"'#* M4?L8DL'MI9[U^ KQ[ID60G?UJTLDJO9\A ^X+P LWL!:WQ(RM <$JNXT3DW\9YU 'S>+,- MD/\ M@FR'V2?"573E)Z12"W:,:-KU5:#(2O9'P-NOK-M!@C3]$ MUGD"'90D]B_WX@@KD>X=]8&M_X)T[;;'[T7.+0TW1K&3@H>V\)FL-E;@'31D MO&U3S!VI&BE9P^T+51-#O.-5;V@QQ(M1)&$#O"\CDON%A6PG')N=4A"VATM M3WT'K'O.7V9ZVQCYM9C'-IHE)N%-P=^ZQZ<*3B;>PC9]A!' MKA:A2* ;[$0=NFX6T_3">BCI7?ZXGKGC_EP[(?\B7\!_X%?7])'F:WJYJ+O( MTQN^'[2U)FA-<2*4R8"<6H-;[JTA/D8_!*0>IOYIC35IH3TC''$B M,"TL8:]$D)^)/6 @BL0+3*'22D8^5D7ZXZE)BC[7Z)Y\3]6Q\/ MQT$%P/"GO@/$7N#A[F %@<]PH^DY]J@VP6MEMR+DYN#5NX\3\^^:MY>7!;BB MSMT\/#BGWIXY6M-R^LSQ=^?[^:"E:Q>P60-A4 "$M? S:*@2[QH48OS[*J.>B[0@NTKQZ[R3< MB[F',J]']=K1!=4(3 +=7"$P=EX:H=WRZ5\D46X,XUB\KQG-#2_F_-!:J9>P MY""\0.<))5Y>I7R"=ZQ.]]JB5ZRY@2]1, ,\O36$'EYHOX2GMYK+"1$P<$9I M.UU$73S ?9&$'-=7]%_H';.I@G-CJ2;XCKGQ:_^:5@^GZ[)B2UHTSB-(_XWHC4;0T!_'E/=??%R\9ZQY"G-LJ%; M/8TOL)Z)>F;7[-7NR=D G\JUG [!&8**T_'*RP'EO=^ZRX5G;A\#5]ZY/4PG MXZ';6Y(3YS(DQ1%W P*=:?6K"2%^)KZCJQU^.1KV*!/XZ%CN?U9=N4"&#,D,75 M("R&!$LJ@$M6T0;"#"$EHX=9CB5CB&8^)0/JH)57DH"#8M$S&"\3'9-ZT*D" M:FC.Z:,G,R/2= Y*^M<(3C._I]8BX\7VPIA$TPL+U+-S93LN_WOBQ!EW#?M% MIL9[Z>LQE08>U_2198^0)5C0)*W.HUCJ M!V)Y[VA"YUQV:.4!:!B=V$--ID\B;UQR5;"8TD14WX=W=9<+_AM^HJ@V5YS" M%=38_WV=KI;JV!)B!B1?&4!RS7 -*@0VGY21S)U:I,]P_U66M H3Z\?L!;- MX$!*[8S!RR@MM;8_U(IBDU-Z5VT2[!24VP%-E>JMBU !4CRY-\GN\_2?-+E( M. >GBY0F)T)6ZV)@T&6O=?/%_[9>TD2D0>JGA5J%,CJ5U HV/M-/=PB3'<9$ MHMR4O)-=*%M8DQKMZ>6LVN6&SCQ7!UOLS_M@61IOME@,=+D?&(WU*KIG]17B M5X#'Q**MK01QJ;MKRT0$&FF@;(%^)F*,I.V7+)K2MA5]GQG5$KMT\AP?8F1DKV> 1< M2_Q?#Y-,8X&G8/A'?F+-J^8J,UE3$ _^3XZ\Z%9>5ES+S^1_MG><("W7-Y_# M7W9:W'SF;D=UA6R]X*L%R?G^S9M74GKX;_Y^GN81I\0'RH%MGP#>LK<4XJ0G M"^YW0!V9<[[[AR*"^]I4#LR@.#=O9N@8V3;7*T6XD+ M I_-_"4G MBBRG+**@@' *L[&Z('T"]66^YE3, *MHQ9V6*'[XYEN_FA:I0]A(WAJI,S\( MMMDV%$;J3OPL&!UJ#LV++C5'RU@!^5CY2-W*&N0FN;A 6G9+E/IOX#[^MX)% M*-@1BH998C-O)\%/G!91^7"1/_)3ANQ(+HT$5 2#;N0# 4WC[Y'G.FTXKK4P M1V0.F'#.KU$1LK%HD"$ MZP#78J=!,J\IN% AB#KNP'88A6%A]/8P6S3WJG\A:;NB)_<%E?&*WH3GX0]& M:-CNB3VHU!HRV8$.F^:L065F3CJ?\=WFB1\X&I^H2A&J!^+CKP<3NN:>]EO, M&F3)]0_I+ACQY*#QC/X0^P:>W*B9UG*-5GE&R'01C+ MIT%;9DXPGZF8R3JN>@U8YQA\.N5N+@\)DP LK&'JIA[3(HF_A]TB=T>Q__M_ MQ#[<%I-XJUR@D0YK%\\*.LD9QL>8>*00+G/W8&-9/Q7\94^N5ZNLN4#D9]OS MC#VU6ID-&#O#K['9CGI0W+]T*1_DQ0P''<8 FM*;C22B-S9\MUQE;$/I#2T> MTYAVO]GE!PD(O/!3*SS/+85(M_]^RLKZ5ZA6\L(V50M MD%#[T-4:'.,QU%S1+*.BI5N3YMP;_QG^ !UZ5DWL/@2]@TP:T&'C1!I49N:D M\_=(=MMDHQRX#^L9B7TB>SRC^_BS!$D$S+" MY,E96C:I1:W**^70*]AQDR$Y#@?4-5/66,U(&R^1[-+&K%7-IPQ?SF?D]C&[ M>S*M4]1M]/R6YG215E 9G>8!9)/@8%W^'V*EK2W M'AIR%ON,W 4M+#//]E@9L I;9@V[57I/C%%O4KR*DLTKB?@F*) M-$]T%^>)_;CF>)WD"!80&S:1+4-Z[=:I15 MM)(!K@^L5/%!YQCL&\KV7,Z?3=*JCCIB'(Z1J"(>*.CBZ^I)9^<^,RV*3.&< M?!+'Z^5:1*E.EJRHTG_NU1?1/[P.3&3_M*P Z.L\8HX91IZA_9%U./(8)^+"R+'VI=V =X4Y,JQ0'9A%P^ M4TD/,9%UJ-+\_CUCR5.:90J9,?D4GUXZ",*7_.C@@I$B-VM$-=C>QK>C.KZ= MXQ2#HR7AW-^[*!NN">HN(UA?1-@8 GI3&-?;RL@W4!'Y,]=IY?7-YX&&H1K? M(%5$[]RN=<,..!'0B0!/OH;2T-^$;AJJ0W.&(N04?+GWA3J\H/N9?7].3.^: MZP00.%>$>GVI35\][Z>#:/ZN"(#7V[%7B*7V*C.-+[ !>_7,P=.20JHR'8HS M!!F],5ECLL]90=/[7-8-BC>WG+YE)E!\'Z5Y3[S4? (D"^H#ZAVUV[*M=^3"QV-L;LB9!1FU;>T4%7]AGF(81T";^-TPX^<+1\:E-\$=:3[W.2IF:*^:)/>1[;- MD9=(T]4$NT3J45M'<8>,.WU@^7U%B^49O:L&DN;ZAF*K/G=,Z9J7 .;\E@,E M '46/)FNEZS,A%;!F*8W([E_L"7&\9,5W,TZ(?.#!XC;PSYCBIF[ LBXH2'L#(%CD# M!>VF0#1<#SJ."YSLYV*5I*15E6U;MHG?S>\$O2)1JTYV@*L>**&RC$51?U(V MOZ#E'UJ%$S*&9\CY=_4L J(&Y6B!PS,O93;L1+;L=V"+48E60-& M=YLV(K24C9-7T=ZOBP#-Y&QI+^:"DT8J^Z9Z"7=D/[&\H;VX\[H4S:F[+R\1 MGV*4MR8(UTJZ04.<5UJ(U%D:$A7-2TV?J\1ID.;E'1>[J"+WZ2.54@PLRF47 M_EE 8ZX9N5M7)&>5^-5.&2B MHU=+#\"_!$DYX(CK"YI0<';2G*L'J3U [4>D7-$X7:3P6UFTE']8I4L:0#F8 M2@$;L^DCA?TC3=(XRM0BW3D ([A[$[FO X05P)+8X,6OU-0 N!H$ H\JE M!,2I6=-]P=8K8.^EJ T0UR]ARP"(JX(]I@E-WFX^EY > MM&N%N>WK.=02%3T1_M69(4 OC406&7LJ90_@5J_4T-U1\9O#[%%\I"H^67,Y M9AP$56MCU1B,0CZC[,+S=Q:V824LY)7F!8Q1W+S19ZL(=VW MS[=0C<%P\^%<[JN#-_#PW#P>9Q?GSO%!?2%/Z/ROV _ M6CU!-U!^A1N:RT7KU[O"+ KGP\ZDZ"=28X"[E\-=A4ZRDMB$:A!K8X^8&\*/ M]4UHP,&,/2BJF_W@E MZ? ^];J?FL3WEZV4YE#PF^]#VM^=7CT0FZ5T-*'S#"4.$3PQ"3/L<\D>"=Q7*QI@E%UZD^MZ;AC$.;,]4B+.V::8%,#)E0V(!G06CZ78R8K)KA, M1#/WL%6O2AXBKD\ADS&(NGM-W=M&+5=]H_&BU#6KOQ!4(SFAF*J7ILR04&-S M1M=W99JD4;%YOXZ**.<[J>CYJ#<:E>FIG-5YN8,M9+(#C0\>V5P(+H!4MU)I M(D;E;GWWN_7=PS]$7(D/B:6G$MT75*8 UI^"RQSEFQ!9>\-,Q@P)/E)(SM?\ M<%BM"WJ>/L-_H!LAY/BM(3U6+2T&GV'$1F-ZY\49&A1FI$%"O@W:XH$7)B?+ MPTG5]J402,62Y=E&)KZF.??U%VE,96O.DN^=2+F+*O(0/5*2,XBI+:-73/'3)1_02>5X@W'P3(%L(? M\ZYY6%B^#AOR$CQ0YPV8Q+NZOK,9[&K/[R_2)25"*V/$VUHLAKG:B$PGQM7) M2D,!+C5-O_;X74)3*77\'SMAXS_\ M_82[Z0FXZN=9='\@3\J_&XK,T3S.64.-P9?8BW\, 3G]KV- KD(U_3+A-IL! FGP'CF#.>.T7P9 MMQX4<%UX+:X(49UR7VX"-LO381H]>?%B@T_3:G/"CX&G+#ET:55_1EC@]C3. M-2B'10 8 6C>#7 GQ=@0&?P5&ZWKDU_F-Q&$YMZNRS2GZI+U \.QQ4@5T_I2 M?BKXJ.*?UM:"*-<$P,G7 /X;B(R?I>6*E6D38-=;EJL"H4.LPTQIZ$U(H,K; M10X7O. LRQ!T&M<=-:X*;EW2590I1,;L8Z0 Z0'Q)4YZV&"$R]4Z$:(&J) = M+C/28-.T6ID1S:4Z$CA#QF/CJ!S,8NT5@AUJ6&'VL25KU@TDE&WKQL:&I1N] MSC&-(@ 1\C6@)"Q?(BQ?E('9.ZQ2+]];ABUX;,B(/;91A^H![T";,F907>^T M?LO:9$YOM&]$M6:Q=C_:"\U3&/VL>>U4T$>:KRW=EEI>F:V[TUZT)G*3JL>" MO?>J!M3W)K&R"N;ENBJK*(>$185,*LYH/E_<=P08(UD6L$>WJ'A;ISI! M05U9L-&LBJ[M)1AWJS!>@",95[,TTR:3SW#UDN6B,*6NR.I\@@]8*Z?V<"6R MA.QF #[;EBS=P0_.5UIT9QAB3N;!NFSQJNV^]7WLZ)FZ!!+.I>G"QHX/-W*= M8PY9 G3]4&$B;EDO:QF\K.^BHZL[%M$FM#I/RSC*_D:C@EO0,[X97?;/B[)QZ45BA[^W$HP6@TF3#A:C<_X@+3-M=H(20M\B$0(HF(-2N3:M]"A65 9 MEM:E=2#AO,CY!M*R HQNX T*/%V(X>W,O2I7U'P"*P+:!RB,B/9A-%Y([:[7 MAI@V& FQG!&)%-%=LQ=)U>)&I:SJD]R;M#8:XP,X@_">2"&4RG%(V3N:S[6( M;75^!A#%2[8@_*0F)-.FCK\J5P-<88L;O''!$4",'AV!+2*%[Q8^"T_/TE*\ MX 1_J_:T%%*/G08I[Z;@?$FZ*5X8&7>_=L199(M4$-E%IJ\72P*@*(X2IO"XFH!=GIO%1TC#@?^SNGR*#"?+O,IS_KM#ETQK+"+T MKYS3-4\T@)O@?UU!1\#V'OL?IBPS(E<@D]]S.E4/M&*V?9Q7MQ!#'P![:*DT M0I:.A*8*!>ZG]-3)T*ZI86RR$E MHAZ(SO@[G-!YW3> .(?6Q:&U2 \QF3Z%_#NK_94,]4:/=5S]U@H48&?"?S4N MYN?:H^TIL&9"-,?&Z*K)"E7DM/2.&V&(]N;S9H9J5S98)DL_-9DVB;SIEFLX MH%\N/I=4Q,\N[Z O&O3\??<^8$_5PZGLG*%D@-[1:%[HG-436S2P MB01.:NB!6*2?OLR0:(&20<^CF)Z(>N *:SXTW$JBYV[:,&F=._CCDSC'K,5& MRB; )SJ+\9*=V<$PREQ,%>4<1P6@3'M/,*#]YQ$Q )C&V]$?@ 4[[^\1C U1 MP:G!O%E&6:8H'#8P"FT@]V;S9!@%S#!%M(;(R#1IXY8/'FB6#?E+78/P7-": MS!<3 ,C /E$G#9D>81RK^8M=_ZD/G/\NH %5C]KO&S["#'1-Z\TLM("37P$\ M$?#]WAUH$YF94LX? ]UV-$W1&6J'<6Y]M!/I9AH!>A+\>H4?&9[6P>0S0%:8 &C-(49])A$3K5%_8K_NNGM!D\0.[.D=(:C]4?WM)X4 M25-]80N=2/"!5,H B9DIW0(IF4_1DIXQN*+04C7'PZTHG-VTGM7.C !H\JL$ M/@7UTT%AI1)2DI0P5WF$R#Y31^0 M:PYL@95-.3&A9)?+0027&W1("Y\9::^T:01_.KQB1V*&8#4VGN#>JP' .Z%> MA:X>.+(>P&Y";P4! &18Y=U#S8ZB "H2>>.2JR)="BSV6Y@?[*AB%)(_#F9S MS1P"7,T9$F(8SE 1D6E2)HCFZ#ESJH99T!H^SIL'.B/<:5-)1X6^L'32Q%5L MS>&]:2',W75:_K:K>:-*ZM/Y!%VQ53VUKW2 /AQP3<9LK@GAN>TA0 "#6>BR M35HLQ# T#%C6I&E(?4UCFCZB>JD??VJM9,DQB' %2HYQL=MF';7&,<5'=@#+ M&&5H>C.09C$#/PV\4O9JV/% M_X>OE29DP0I"ZZ^".':^^8,%WG1=L5\O.-U EK]_\^:5E&?^F[^+V@0LRKOC MG^H1IG)Q/)-KW@5H!,!IACT=()S4:571L4;I/1_5XE22M)5#5L"="ESS5XS( M A@ M%B8X,UW*CXGS?.(N@O /2$FK*J,BK8W[#-7>:AX9!]UF1') M_)WZEI!/_D^AKRX7%_S@G=^G=QGM[9*A]Q'V3-4[N;LY,?4_S==G;)$?378-W@LH^Q-ZIM7)'#"H1, 'Y9= MNLG;Q3$]-/-FH6\A:69=;$0(0W9)_R7*UJKDKZ'A2*NLFM:7/5;!QUAB"VL9 M$^1KP-?7@U$EWO#,R.N?9S_^^'-S/\A__9%SUP-Y\XK_B3.%:#AU-.:,QN*$ MV0Q['<2$#S(=,Z6^#YTLFG!>%E<%>TSS>% K*X:/UYO-U!ZJN<9A,87MO+;=S,[C^8=!_$ =,AG$CIT[DL"5Q$O M'&L!/KTO\S2^L,5:NYF#L5;(5WLZE.YC+A7Y_$5^LHP]11RK]M;F*@)E)$QM'5K>)\<*A%[Z]N),O+]<5/T/G"><@ MI8.M\Q$^9;YGTCQ^6$9%X OS?KHR(V+Y\W^.U&0O[PP-Q_HX MBFG=EY"1<,D.<%@>&J0O,R5:P*>Z%SEG<Y+23L M/,?%K6I,Z%9["=Z>X'9Q3>_;6R71'+F%MT4$WL'-9GG'L@-A4/X=X>SMS>/\ MH80$1B0T[^Y;-\W8("%"QD2WKHI98+3S,WO1T;WI \2Q6@['S6]L=YE<1_E=5(21[%D69K( M(G]Y\;RQ9>,7[9?D3@]0U2F'OG]A64ZT4" M(Y*V5C4F* ?PR=> R3>$.VV)0(0;1[C3+=B*%M5F1E89U"KZ]VBY^@N!%\ K M\$V"R*$>DS$4C?TE)4/0?>BHTCT(FX"\-YFWM.,]J*ADXY%X(Y[Y?&(5MSX" M<)@PM6+CF1Y5O#'QAS2GEXO3@B8I-(1-L[3:?(R>T^5Z^985!7OBYNTT6O&_ M5(<5_L9,@10 $U"^Q,,$)XSPN%TS0K0 (3 L$B72X#0C-59DBQ;16[YK2(LI,\.4F6:2Z*6%;I(WWW# BJ$G/-/L:RKQ80YQPKL9B1>XE' M[=U'>[@0*I$)XP@9[@8;1V)O'"I>W)1<0CJR3A5\J?,)DAO[IG:>1K6M355' MNE84RDV16/H'&3^V!6(]+8(S#!5#6WCQ6M"&@=>8R*Y][P$8RKQ/R:3K[,>P M1=;W9"K:".:PSY%15*'4M]#]>KR(I?K>U]PI:)B M='>0L))@'R-?AUL'J*-N/:9 0<116<"=[FV(0TEA'C0$WE/[9\OJP?.NM5#E)/]CX)R,W;SF*4= M"7WLD9&J3_1)_$GI 1I][")\N07BFJ$!BGC"R_5O+%]8RIR4X+Z%V1[H!BD5 MA/7XS$F^'-E<1T\?(^X1IE'&D:HN%]>TI,5CSULGW0_1#YZ& #A_D!D]D64# M.=#3(&TB,SSE@KJ;/2]'AH9;="_]U#L6WB-TK KY,&20J@..8\"'(!_2Z YP M2"E8>J%7'UC&B5J^^WW==Y^O]QF:G_JG]W=OWX\'[J[>]MHJ5D696=#A%CXA MV0X5X=R6+63^(-*_@EW+:[(7P]+5OS=P#M=2#S1YSUABY@X,?SG6'U!#<"UI M#61R#Z##>@0:=.YR"72)YY_E_LJ*WR[RJX+%M#1CN>$OQ[*<&H)KE@/(A!]] M5A)V6)[3('07S^E2+_1A7%PR(<_BW=\ZN&D,?A*?TNE;077-^\309^^S.JG] M?<'6JXL\SM;PQA^>UK&\2G..\N6*RA>Q,B_\$R?4NBBX5"F8T\*,2)8= =F7 M?SP"18SK[)4BB*N\!C\B$)R1+8JDC2/9(CFKVTG,R [1&1&^>1"58(/7F8/M M\J8^KFD5\?-Y\BXJH)1C>1+'Z^4Z@[IH^4BPQ;4GC2)#R\V^A9=5^'FP5? MBLT$FH<*;0TZA(D;N;B-D,@M#%6I#;4KS!*I_3E=]*[2+\PQ,!KK+'7/ZIKY M .RDREP,49<9DLQCT(([7+2L^M/V%:/0P8B]V9P?_VIP3:[]#*H!! H_=).1 M:=(F8,G(VF44SZJ@H_')'>3ZQRK'S'P":\4D58"<)[ \0*I&"2$NUJ! (N%@ MBRA_*^K_YXE49QSK4/L@]#$% __<5^DZDSB=C;R@"N)-;V)/R*;6(W75+,1WO2L"C#6XO'J41(JT:,Z>?8:S)-,,Z?X=5XR.[+-28S4N/"5:(H MQ!]:,1IO"AM+Z= *TTQ-NE&.KGFOKM1)'N%"$QCP2#/.=@>K*2E& W48+%*X MH)S'$QFZO(V>1:X6_Z_,AU0E".A^AHX=]D]OSG"/M+ACQK>'-1K\X YXD H0 M01V1K*\'>?(;P"-0@%23EQB6H*%U]"G&HSUUZ3L&7UF-X63(@YJPF\XG2&;KF]I#VJI(Y)H:HVF1FV%H&);)!@_JFE_99#5_A_0^ M;@M[1-[^O;Z_3^H;I4;C:F=5[W?@1<7C2T$-'LF^EA3PN+ULNG$H;VV:UK7ZB])]4#Y M$6W!BJ4L_ B5LZ-4M'ZN&*$'1$AV&'_K5WI,F(UAJ.WOD2+E@DL5+G%=#:8\ M6ZN21DP_QSY:U 3C[?&B)CZH1XS.UHI_S"A,U:J&'3I$9\QS;"QQ1UJR6\8R M*?4?H_B!*X%BH[9A@X,QUDLYJ6N!J0$+=;T%C;=8%MZ6".0GCI4+.NB6S M0(51'5LXP#^3)A-STB9MD$=U[9L>R<-&HTQB4"XB3U.X 5U(Q*83==*.-4V MDZ[X 2M.5U'6>',:'*7\Q@)G'"] M93+.!W:CJ.INK/4KAI,%-Z5_HU%QSC]0R]S8&?$2B87L*47A]H%[(A$ 1@JF MO_7AW,X1*(:2X=',RASLT#0.8:U8":!YRV&.C1$>S>,X6+B%-XF#5Q=B+L.' M(U:/>-K!F>NG21^R>OD0$4!4D'>BQON:0E'EA!;0/KV,HPS0MV+$>V?V8LP[ M,?!DU+>PX:0'>^3>MEM:K@\;WXGJ"[#U_3R-MOD:.S=)VW_.N<*"Z6]/X\'R M [@I&G[ R[7=QZT=9_;_^)+,_AX/(JW^,7&#Q,'T\JPTOK 0 _.<8[6?TQI/![GY@5W_%@+B_>8@W3DW_(B?VC>Y<0O28?3F"-W MP M^P[9$>WH=>['E.6Y)[@SZB-G,YQW/@0[-3BQX?XN8PCCZ<%+I[\PTN) M)RMY%!%7[B?VE(VXK62P('E@GE/ .+W_Y,F(3S;OZP6E?-G+]GI)B5[*V#YR M%A])7OYBWX9H.4_PPJP<9Y=_?"EVN2>,/XJTWLM=LD6/ECE?5^N"=N@:HY*8 M-D&,+)MI Q6?I34EMG.!+MGANVU+)5$F;9Q)C?34:G!:Y8*..IWVMW:B'K'F M*=C.I%X\Y/&G0*RG_(-[3SG4<7\_2 MO FML_L\_2='+N%.0;I(HQUZ\>_KM*#)29ZT&V>7Y7I)D[H 7/L/<5RL:7MH MUPU=*!PPMWB^<74NER$697Q1.&&JCWGN60-N&CM]472Q=,D:U21J5R^$.^FG MM'J >]> MIC(0S^;,#.232N0;O+6F+",9KOZ.T1?T ':EZPAB&S:F,9QK=ITH;XG3BZE,+G6.VK;.3%7(O1D:^ MFNXLU_21YFNJKEK:.Q 30^JD9 MAI&=CNE<2XX$26J8>+FQ@KK5TKX%S2!H";*PM\@HFW'S$W\;@+O[V(7I$M)C M8SI.US@5U.3_SBC\XR1/VKQA=V2)!?0P<93+: C:"K-VZ4^/1WO>P<@^2PO;E\ MF@^IHQY 5I]^8S+=J,/,H?Q*"Y4]LNU50JU27F6\RA7Q>& M:S:7>,S(KM$AG&B:DEP2&0/5Z76EN,#![0,ED/?!34*RLP[@X[$]&NR7WY>] M'V EWT(<(5LGT/KA;EU!\"QG%^:J<.!0AH&,L'&\4*#HJQ"+VSK<1 Y7^YL_$Z]C+B=1RPW:YE8;C:&QOO1K5OS8* $2JKH>7*Y MZB-X;JPY:J>FIS)A589!TQ:Y_N7RS8_UE)\T(OSW(*=6Q>;FXK[YGR) M2Y;+F*DBYC,X'AG_4<[KO"UN#9B4 'E61[V#!\"'Z/? M3^D$/SU?90_-+\!?V5O/Q&PTEM9C;N6V:6]3=%I&,I^U#+I_30^E6T/Y\5)Z M=MZ;I]*Q0CC'I_D]QW6OV&KKPK\\%9&4BURRT>5"\J<;8#;L4<^33^I8A%GBWO:G&VN4' M[_\7V'F%#E,-0RJ;P^F<:P4!KSFG_9_??O^*K**:UV?D]?>S[[\7_]\O9S__<3LTY88/7 G(R5]79<7_P?=Y M1OC?5C2NTD>:;6;@:7SDN_E WKR:B:==8MY7KV:O?_BAGO?'/[V:_?2G'XWG M/:.Q2 QNIGX=1$"5#,)T=]U??DKRCW59"2F]9>#IY'&:T4\BA,^6] ,K^>]/ MH_+AJF"/7%*3MYO/)3S8V=U0 OVEVW-7BNL 59J+0U#8;!D'*+E_E[#%65X5 MUEB3G%;;V",3/\4<'/RG"JKK^E_B2VQ-@S!M5RTX)(M8/(K@ Z3RVA"=3:" ME/X9L NO,P9OE8<83'X[9\.T;O/9/V4#,=G%^(DK,MC^Z-M\9><-0AOU8& MR?'5 :'[>*J+>B'XZ2HJ+HN;"F*D0LE>4?F.:YBWAKX"L-[@/W6RH1URW;TNVH=Z/=5I_?^4@>S,Z>(6J]8_E!J M/S 9?N_2Q.GJF@@]\"NF"[:54PY75B7(=//^6'Z41AE9,7F=/[U7,+HRJ_DV MQHC;QIG_7\-]5^=I5/%70[5T,(OS8F4@;V4EZN"THQQ! M8ALJ"K(!LO@K-+Q7U*^IY:=PJ_H'8TL-=T[JO-;PKNSV3IF)MS [=28?](6I M1-Q/:69&/J?JXV/TG"[72Z4"Z?P[0H7LS>,\/"J!A0E%J:G&!DDQUA-F^7T& M5>1DQIBZ9%KO0)3?VC6A4 ZU+63;U*[&5TRSA/[IV&O0.F M$ZD(!(3RI M7N9@^A1SJ[C2O%]Q=?T=H[C:\SA77!)80,75234V2(H)O5.00^0AB1O6]XPE M3VF6=:E!CV!#OTM0H/?BWB,HUA$T[=X:;='%9=(6PEH59EX*148W]Y%^050C M.X.L)8F3>*4/2'VAKQ&&])&+5PA:VS[25"A#,M=02($MUF6-:9?"-_X8H[:U M@;A6O@*>"/^5:*W@<#%H;7=]^7F"RQGM^PLEM-5<_/]$:9 Y6\RW^R=C'+52 M6\N6%3W5C *H,',)8^.VQI4ZV49X%07U4!];52>'0-S?_AS<"=B3OO%+02N3 MXYN.>5.K;TKKPVF7*ZE;=H^+MK=-K?N@5DL#J"DA";*J0Y&'4=5C)3,C<<8U M$O<21-"B(=Z4=(]2' =U3__&.0UP7,F6$I?%C2PCU9%T/30,$>[HFLZU8KEJ M-<^HP89(IAZD)M,ED7.;I.XJB?W>C67RUWW2&"$'RGW,:A&%TWW8XU%+LFF2 M16"<$VDYL46^'+N<;ULJ6;F-C<%1EO\?E.>XHIS,7(/<'^7#6IL08]U' M 7;.@EM(=(5_S:%+BU']6UW-6T# MF!8[ L+L\X'[M#_%D?#H;]B4/Q^'/V7"7Y@#X#'M6"]!1N>N=T4X]R]7=/+5 ML;/@?B8F%'C?;! M:J =0I \;C0O,TO[XZ^KWK9!,92%.,_8T\UZM9*-O:)LUUG(M-DU:C9L;ST< M5.=FI=7T&A C@-F,M'%K=:.:8.=KW!YV=K\>L3'>1.&JJ.L5#I;$ZAF)9.&. M&=T?H9O*F(K:6*_Z2F/E;/^1:A!6[=L'9D#<0"RF\<9Y^ ,K#.?SI?,1WTWK ML;,&Q96L-8$GSQ=Y13D.%32O_$15Q>CI*,"%:MG823FF20Y_ M;]\'+.Z )V?Z.?85O"88YT_AM?RSP)Z9\9ZPL83V:1A77%S>/4,_7=K?0+1W M+-X<'L_IP1("4$(E5'DTEJVV)M"JLY_,S(AV'OD(8@G5YHH3NN+'[7>_K],5 M<+M^7V3,%&BNTP?EX49-X#(C AO!BUM\)M4U&;5!S ;5 T1EZLN MYN/T3]8 MT=P!E&\WUW3%"HB9W=![6?#3+$ S=N+1L1HL C[#-C6.< \EL"1;-.%76T1) M@^GT8CBCM[DSG&-G[\);!;0M<&X!)J+W)\+/!ON@H^C#\^-QU&"PI*+>1Q;# M0?X**ZI"0A.JK:A)_8'04/ *BQC T&XJ]U$A"$M&>IXH$=GQP4)VT$M18:S>A"J-.'A M9,XO/&M@H9*<>\C']&CBE 4^14MZN=A#0?FP:G L@B&4<_KCBU"OJ8;)R8QH M%*)CV;$2$V98KVF9QL?C^Y;U EKT2;1P4QG"[J;F&G3U>/A-*;I(X3Q2WZP MZD^MZ!V+/F!VS.G\+7X?<$Q\T-(J$('"%N09]+D,="CN8PQF1">/[5_RLBK6 MXI'A17Y5L'M.9D5)8H-/T U?U%.[[_2R@PV]$QKH80^V6L1F& IZ8S'@<2OM M@O$3(=G1'*"7',S..OJAV_>.V!QFC^+^LH^:SBH?TIQ>\'^JG%;U0&QVT-&$ M/M[^UJ]] 2810 ,E[:BIR?1)Y(U+3F)1):;<6?SW!2O+?@=3[R,D]_1/[IJ3 M&NC0IJ@&_^__]J?7KU[]A?T'NY[S0Y/T$.+1 UBHHA57- D MK4C&RE"]>7"LR*Q0VI]GO :W_'*Q=6^:C%"5 SPT'NOGJN;U)7=*!# R9G$U MB')_$CHD1N^Z7^FMQI5C/L@TS)AV 1VHP?B)TDB6@>$67P]O0B/XU6:15E*F;J'XWEH^Y9G7O?6[ $'J/-TYS$$G(89AJ@ M+3,DF#<6>KM.LT36N6S^>;%<%>Q1WL[W!D^-OD6REQ8,U\S60!:W5ML?VGB$ M#:R:;00;15T;U<=:19%J!=K3-U#G W1-,=7$?AH;M*#/2 U_1$-!NPO"EAE. MEU&Q:35HWO5MY@I:7$C0/&;+%10*AFZJ];*/NTX'*@0VR&O,G-[>U/E9G35] MR@E,\U+L'3R'ZNY/9/014H'W3^[K4-:/!>9D9GM=F.,9R^>_KZ-,UMM.F@D?B;$[W3-Z:5;0#=K8T-A:P:B( MQ,'[[&"+L-*#*]\N:RF6%6^?G4?RU F6$H*9K[[_OZ ,\I+MRFR6*QI+#7!< MDYK<<5O[P WR;S/R])#&#W719O W[M85R1DWO.DRA;+-%9O)5QB["L_1\17' MC- J#F":!^20&>RJ90]VUPA WXE5?6/#CSV<.X KNT/!GC<[?EF>'-HC1W86 MM@^&-N^I_-I^RH^4IH\L2VARGO)YF[:@'\]O^7GTFF9P_7--H^R=H/A%?L&> M(K6,C9L)(WDXB*[E<2FPXOP*%N6NQHM\#7?3K[__"T=0_.O57[X1T8Q"HLK_ MRSF;"F0A80S0QP1F*BF-;Y4"!]LO%YZ9 N]J:](]$-;?IG-'Y M55O3D+G5GP"MUVTMP9,GUM^JK#AN51VBE4P_GS$#RON\R%XOU\(Z7$+U2@C8 M%/2!YF7ZR*T$WP':JY&-O\=?<>O!<7Y9>7EZ04ZJJDCYH5L4V*H8N8H,#DCN M[L -=X*-)J_'M&86__8 [DU10BFP:C.0DS_\ 3K-636Q^W3G'621G?K'OQ J M, B36:]!8F9.-W_^)]@.0$C?^QS^ NM[JF?V$O(!T%/R.C4(S1#4\\9;0H=^ M8OG6:Y$JM"ZSK& OO8^0'-8_N:^KNWXL,%=WUM8U)E-9(-&4 H>:78!"F"I= MFDS$:6X]#S&-_@2]MU7W<0G"MM:&?]@;MF";GEOT_!#16'B9!O M\$THKU/I545.?TZGS#'>UD76KT-O\"76#1V&X-P?E2BT2FE/J=*\R1:P$70- MKQ)!2GKK;QE\:;T4]A9"0)48LM"6">VURE\K".HO8"1B5G5^W, AO'SA#^(:M/V+ULAM15>^H!4KH^Q]P=8K_@4L MD$'*UIHF]=LSEJN.'B%0P!:T\8BJK^""SS5A0A73ICG_-&7)3145E5GP0Y1^ M@4NY&/Y!=RB3J")W]#[-Y8=2HEW 4VLGID8Y="IA:7BW?/\0/? M''K-]_$RGX!S.AW$D$HG_ )<:S&Y0C#["U;0]#ZO'U3&&T+K11.."A=PEDNG MHG2VF$Q^HE'H:OA,_)%RJL26-5M@MO$U,2V,5Q&(U$B .Q,;(O MXDALO"KO)SL/=$<4?8862&F-$_DZJ;'ZAJ134]J!!-36&6_D[OM+--L]OU(E MEAV/P":2[6;RI6-:(#$*8!3&Z-Z-F2[2KC+<.G:<:1 E=''L$9O"X%1B>Q.(%C!I8R-L7-5:VKEYLKAM1Q:A! MB3QQG+8UC&;;(BJ;&:D1([IK]W@/H\&A Y7*RLU];)Y>LUQXE;SV\Z6QA-Z0S3QX^HSD73DM>+_)&68^2U9P*[ M\MH!*+"\=F!D45ZMK'>,O-8B"FD-$I&)2F@?!PY+Z""9O4FHZ"+$T5NDJJN^ MCA%(&6O-Y$N(6B Q4C(*8X08"'A@LP;Q=<3M79O--.CA\3Q75I>+]XPE$$VY MH<5C&M/RAF7JL]O0!^ASFFIB]R&Q4F22B"J@@8X;@T1EYI3R7GU;1B=NH^=V M%46J4H2:7XVLOZV8W7D1QL5O&51/@!^5Z^-GFG!4W#U%!WT;E?K, A7(8.QWV?3L2K"^5@L4/(Z$> M:#'F%42-GO!]JZA:\WW>B-A\C5\I:N\7VZ0R/HK%OY%UGE8E@1-WH.C\:,YF MMK?(8R6V"MRUR\6I:.]ZN:[XSN6BE]42>A8H=('N9^B:;/W3>\NO&\ #E71G M?6T(?[M& B15HD%:>,R(SNJK:T&'*8I,:5!Y40P&K2W8CU%O(3^<3JYSE1S4I>2MDX3XM6@_R5U"]=4TK#IPF[Z(" M2O#T%S?O'XSDJNY)G?=)J:&2!FQ8OVF LLR,7#[KC<:4)N4Y7XPHWG\IVK*4 M[YYI$:>E,A%:^SM\K='^^5VS5X, @6T6;3MI#5H&'2&KV"-)T.FK\W Y/MS9)8+ON_E+N6X$4^/]^;S\>"8ZR3I%@7E&S4IF39]_#74:.RL; & M5\\L%X^>U;$TK6^P333ZYG9>[4W )#N@(6-I>E1F*-+YJ[VXCTIO**UW++9" M8=>:5M*9R[DO+8D?0&J7B M($G"8:+R14;AC,D- 90!(CD+@[+YNQP3E%WEK71Q*=.AB3=9VQ5[@%",K'2R M3O/[7@0B1>Y$TBVWJ$TO26#:!4? L0"[*&_ $P< M0P9@N2M.?I)E[ DZV)^S0N8+PGIOX4]#:7GC)L.&;%! G<=R:JS(#JT9V2(F M\KSKQ%+ C?PJL".AD_I&;B"SNRO^WE.F971_7T!*/Y?ART5=+D:+YXV^Q;ZM MU('AFJ/WD8#KQ*9VT$28UVPGV"CR>LR36-4/)BX7&F?!H>'H7(GN:7VY6>E0FB'(YXVYWD89^-@W#Y1R_SJ.!K+!AX8CV4HU MK6N>JN$2 9@TD$->7@T2F)E2+2@K]=Y;#7]@D9W\W&"I&"KD/98&F0>8RMJ- M5DGC;^_9XW<)325'\7_L&(G_\/SC,B,""0.A08D( %>]<94)\AJ2H[_AWFM]?L2R% MI@8G=Z4X,O3'N'L^&!?'[IC84ZP:BI4VH+G+5 ,/&HCNH_)QL'F0=(YMW&T1 MY:5(?!PTS-P.<&@[IZ0J,R&5OY1#*FX WU-^@HPR?H0\299I M#B_TN(9\I._DO6K_TSC4'-B41!-8SA]O2&1FI$9'1!'V$2(-1F%C"K@M8E;H M[MAKX]ZB*&]-SZ(J.A4-@;NTGL[P$7Y:U[3>'+0M< +020T^F%/62V)F2C=' M['-#XW7!46C:8'Z*EEU>?M\P!+MT3>=>2TF8I %* *IW[NBE)-,ECV-N>/7Z M[C:MLCY..!PR@@N:J9RGN0(0N.)[]?KKNV]( SX8"QR1D.G0Q=]YK)4EK&2C\._?_/FE911_AO#/EMG M7*?P4[FH='PHJW9F,Y79<5"=R^XX](QDV!LEQLARDZQ0X'KS^=[MI(XP=!1V M'E18X"041\LEB4"(R&KAD'E M==9>Q4@%P8\%+<@]X_.Q@I2RH07\+6[R/R _]>DAC1^@7VV9)G5ZL\P9V8YZ MB$IR1[F&+832H6*ZM.0HTV^_\:M<+2D39IEG/+]=V;Y\U+CZU_ABU-N1SIE= MZ\_ZD<(6]B1R '0H??3(0(-\H9FK-QE ZQN[#.8G):"'Q4)F!>C1>YC-@KYV MO>6 +AE=C85^9@LT:>XL^B M\B--TEA5:JEO#.;$?3B7\\OIDQM2 ]2\_'."-.XX>$WYF:X43T-:Z_C6_X%* MR0%,BT+^@L9YE29IM@9;6,>Q4WAY*T_#\AW PLPUD4<'H,%1"5!!I8TIVJ)(&U^9ISA9;,*#;@L$<82(P;OK0 MD*_3G)3PF])SU,6)C#"G6SK2<(K'^\L5K43ZT,E]084OJTC2T?\"8U3[9W8M M[QSZ_'0'GNS@XRVN[16-MK\Y7V0+(Q(U* 6PQIJ,Q!"T#/.<.5POH. MCK?QH+D];Y 7S6T$1C]I1J[&0E_#DC"X"GADV2,P'5K!O62L M)#)+.^$QNEI7JD_^L2ZKP=?M0\/1<='N:7UU%>"GLRWDP GH0P1FIE0+TNA% MQU\<'&^AL8M7?W&_UTF4/$)2Q_06'"T5(EJ==I&D\H!\771=!K* M]#VDJYXCN^&GJ!0T/1#.[QZ;5)XM'N)&9@\3_''>V2)'G^NW*4SQWKJ+-G(! MCOBFC,?&$-J;$C^/TN*7*%O3MYN3LJ35:1:5?67U!\!" M7M4/TY49$VNDDGZ[+L$ E*=L>9?FT5ZD"HJ*=6EGW6\P:GEH;B_YOT-(&.MA M^ZM"'$8;)$@+B]DN:DQ$>?*O_T:CPNR0ZF:!HRW,-E),1%D_2*B]:R@0[] , M8&2TY8>AJ.O?K C]Q$T<=+:BR65^#3=%D)'[-BK3\G/.[B#%&9(I+O+5NH*\ MW3Q.LU2LI*W>>A,:78,;:]0LH^75)H9,G'2^KUU&U>EF^0OT-,FC(E=+%=[I M'(0-ZNQ-YCR4L\WQE=EH@?L?[1.PJ^%1!U7\,\/EHDYCB[(K)LML#-34,?ET M+./T@/#'3FQ!MEB0!HW0-7>,=J&+^[1)ZXTG#Q-"ZD"Y@@T'1B,Y3S&K^W+M MN[N?!)+%BQ+>D,D;D# 7($/T989$&WGV% E%- $/%O)OU>' WH&84V;GA%Y* M47"&$.J=WY>1VB+1=$EJT!AMM"POSYH-VUWGRFMD[]NX@8PPFO;]Y8$4%/L#;*/_M;RG-DHL\H<_7_%BBEB;SKU'W"=I0G!NN M!A,B4)'-9@ 9(K A AT"^.!%S.5J1PN:/@%"Q.3-N9&-)+J_0_AB0469P6U7 MQ&M1^OFX>:+J7&X\ ?:HK@W(5^*J/D88Y]+E>A&>Y18=4M=8X A)C;0?_Y[! M$ZC8=Y7-$=S(QI/E$HM$W.Q'2>CVE([\"+,MVM\N9P-/D*)_'OZ[2^A^AI@=4_&NE**&9U[N4W M*28MN$';7PT0EQE2;*09% 5T&D9-:;EC5?&7+J.G^0G&Q U,;[S(F?$&L#-YKD"NHMP'_Y-Y1?[=$W>\L>B![\X?P16:DP2%P#T5M MX@]X*#T4]<:!7<5J18;@29YLO?);G2IV(V9"[5MD"O];/ M6SQG]>.IJ16Q&[.MS.)>C;\X97ERPCVJA";BA5,)J6>)O&G:GD=[;U#-)T!> MI>H#\G"GRJ"0J,2F9E&)3W.[NGN%,>9ZU>62;=RS A6B%A6*A@KUC6O(XCXX MUF3CB1\B/_@T*A_.,_8TU&M3YY/Q^;\#)/3& M8Q]8?@\Y=F?TKOH8576]N'9AGZLBS>-T%677%#RV!')^SM,RCC)X>:;@0UO3 M(GEU+'A/@:0M;&!KV!K,E:3_M>(N9L?B&43"K?$Q<[5A(:S13<4=U0>6<<3* M=_PX5VWTS=+PM^/MDQJ&5T/51N,/1"(R(9.EL1/=MDN7O-Y8\RPM5ZR,LO<% M6Z\NFGX__+>QS!*@R39)X+3=G$?!K6.G0S(P%JPO!8[%#V/4_-$"521.(D<$ M=C.RQ8^T$21;#$7@0Y<>CN1^-$\SVYL3JA?/@*D:&&VG_XXO2>P]1DB MKKK93F +(V[:H'9S01\H9^DF&^T#*\M/E-O$V^CYBA4BP%U517JWKD14CUU% M7;EA=F=%\N1(Z*YY5[;NB=OX03(1&VH&/9'%(BIT=JT8FK &$55;O,D<[<'8 M6G?<5-'XH>[%P?$XR1.=%B\FWZ&JW&G,[^,ZA^/0M%$1#HX(_UKI$>-FA:.C MW3J+#E'?SH3?&)K$4XPW7N00[;CE@%6%4L9-YCZVV +J*:+(Z?V3XR#BJ$4Y M#QVVL)MZP+"+)7%A0N66C#:2\$9;A'M:[WO[C./P>)Q15,_KWAB*=^H".&E! M'V, ;:YF?&'7^B&^6&#K'7X08Z?!/\R8C".EH'[)(:J072X4*?U=XF#T(48N MM !XLCSNWKLX6J6A*=+&9"KK&_%FZ9=F#S\=[.'D%HG3?H.\&C*OQ4QK,#Q] M0P5@WT89E.2_>: B#^XD20264081Y(Q!?P .].?TC9[-QU:H/-8@ A4SZ M'[L[JDM#+,F]/U%I%?"6%0?NN3SO76INT[@5##YBII'/6 P@>CHCG,1Q 3?C M\18=^.<.'_(UC8I\S@^AJ,IO7A:.BV A4)LL!:QU,MBAMI\@,6N_#[F%>[2@ M+YXPDMOQ!@J])R/#%US5%C0JZ45>Z]?\_@/\K%1<1A]APA:#DSN_6F[ D@S@ MMA\)&Q]L'2QF["/HM$:)L((DM/YWFA.F6':(@GGZ#,9PA)[FC=8G^ES=/M'L MD7[D.N!!=6BU,J>/^ZU#V/ZNN7YP?LTU?FT>;KL.D9S^I9>27;%W7_W[9+_= M%I16N\_3?]+D(N'(I(L4LE1D?Y+Z=7/2>M_)$>=_XPH]$>KJ&HKHLL6ZK+_H MLK[>@%IJ^&47.==R)H"2 J""M>1P220 VVBB%9H48WV';$><.5O,=\0A]'E% M8WC[63%RQX?0*(-E@I,!ASA8 XD6%3QFRBG9\),<_*EZH"1GQ3+*6NY'O(DS M.B,I!\<%'5Z*1S5I2%2)3Z)6,:8D4(%1;T+8TS7,)3M-TT,2F0Q/S%K&SVXJ M;_D^3\R?&_2CGVP?S))\Y?H\L>D[/8>L."K/YW S_&;![\I/M;2.5JT4T\_' MY+5K@/&3P+Y#A+0PF4J=$^,M.4SG-J:SOV:7HK,6_2!C!MPOH67UCOLP>:E* M)]7X MMR4CVS^R= $ASWRDRC78YX3H?,#$&[()RUC3[5-5W+L[4.>_5]9H'' MNJ;W9<"'\, X+/;7AGB>(VXB:AEJC/.,+"1JP26IEZ,4XC1,RB R)8XMEXO/ M];&%'TZ+*OUGWXMMPZ\M2%@/%->"UH8%1W;C2(8';M39! 53:E,VK+[_G">0 MNK#F%BEY]QQ#D4,11#%1_D-SV+0$*EA!S8(**6LVPL*J?Y:KSND]U R)ZZ((.2VA MZWEZ;?R]2\'S^199&R%GPH=;+4[\?GH!XJ=Z0(TDYJ1$\)SOS0@);'_N4 ! MS)3D#_!Q)7ZXM>*D[X_3E[X]#C,4OF-2!I&]@[[F9_5Y%KI,UETS-210?Q(+ M<3D4D#GE-(IBE!IV$;30J1XR=R82^#%N VQ\RZ M#;6T?H3,'I5:G[!IU:XD/I;64WY.J6ZL;'-.?T\L_;5=MO;*%S2YA(Q?CAC''3KTE4,I==AIL,;-$)QK5@=\9+6: MF>PQ5I(&)\AWVF)%!%I32;I#;QJSM1-3.&=)^]2\XH,,V%?FYZR>2>R?LSJ M3>"I-3#_1"AI2717LD=O*Y.WF MCY\(*:[F )T7C(3V9 O1G@QXJ3YF@!&*MKC\ M.0@SC]@<9H_B?E\K=/;-5C#O\ =C7B1T3NSIH9!\BH M<^!@%3@KJ,8@]'K0 MU?Y;\&=$=STN'X/T\__A\P\-\HU\@'V9TZ9SKKKPL'(0YH'ST63.'PKE=-LT M&5]6V +:N,?#:;Z ![ZRR"LM*NG3P#-A> @,&KY@JF1[/1E7P2X PR#E.PQYT76*X'^-#0O M]\.%IUE4ENDBI!UO*TA2>:R&&FM&_\VT68$E2HR?:&C7XD17_(DQ! M2_3N,&LD#WGKHE-/XCUCR5.:99UU)?CI3_\^QB8T>S!/_IU;]D"_N__ M]J?7K_[X%T*#+H6[2BE+;JJHJ,P65%<=#XOWN]SPQ9P6UHZ478\H,GWB>%,Q M3:+'+:MU8:-!J>RF"%':1DLJE ]F"J1:,@'E2V&9X(21([=KQC1XJ1&"X$P- MF.QPFA%P.]B"B"N,!C&M$LQ>US_F1>[)KK#5"N)<]_:P&QZ./C8IYG>=+ #PPP[+%9L"&4<.D M9<;T\L9';1-_SI?5F;V98IZ4,#8$#LK&J/\95H1)!2=)(]1 MH P!'99A"*H%*44\>)73/]A".6%_ES( =]5 GN/]>28>.4X@NO2]8J7)/=#^S'T42TWM) M[EQ%J2A4#[T;.:M9CHP@U^$@&B0PF5H\9)^+]&(@'23UY]_'#S199_1R<9#] M_6D-V0[<<7R("LT"VJ/FPIX+,#!=BV&#%!P;&K1(C1>1B(D3A4!M*L]^QNT> ML[HE+S/L=U1H_"06[]5++OLPAX\(H"X.4P@&#N'Z(N."0XL*'B*T2/5Q-QT2 M*M2J'J;+2P@6:HN>J[BAV:YC/1TJ1-OS M8O*-;LA#33HJ5A$@%=RJ#F'.=O1% M>KE->OP59Z&*CX K$4J8R)3-?29>"E0 MS<2[%ZI'FQ?@R0Z+F2,/5G-77Z3>/&A'UMU=US?<">C+3OR\OCM'=->=+AW" MVXS.A;QXG=@O1H[TH09/'.K"-J$_\'_Q7S:_XO]S%Y64_^;_!U!+ P04 M" #V2:I6Q[3;$8Q1 #$7 < %0 '5F<'0M,C R,S S,S%?<')E+GAM;.U] M6W/D-K+F^T;L?_!ZGSEV=_LZ,7-.E&Y]%*MN:26U?69?)B 2504WBRB#I*3R MKU^ K))*$@$D2 (D48B8<]J2 ##QX99?9B+QC_]\7*7?W&.6$YK]\]MW?_O^ MVV]P%M.$9(M_?OOE)IK=')^??_M-7J L02G-\#^_S>BW__D?__-__.-_1=%' MG&&&"IQ\<[?YYG999@EF)W2%O_GOH^N+;Z)OOO_E[S^\O_KTS9?;XV_>?__^ M0_3]C]'WOT31?_PC)=G7OXO_=X=R_ T7(LNK'__Y[;(HUG__[KN'AX>_/=ZQ M]&^4+;Y[__WW'[[;E?YV6US\-2F>*NP7_O&[^H]/1=\T_?"A*OONUU]__:[Z MZU/1G#05Y(V^^^Z_/UW;)MQSU;[ZIH6,TQ==X_HWX]\OU^8MOEO-U\;>8KKX3 MD'__X<.[[T2I[[C$!5[AK(@R6N#HW0\1+9:817Q4%P5F*_Y9=$=24A"<\WY5 MGUDR//_GMZ+!:->8D.1_MVFKV*SY[,G):IWB;[_;Z\N:X9PW58%WP7^Q+2^$ MMM6O6A;\6& ^9;? [L1):?RB]T*"?#?!8- DA(F M,KV='^(W__[,AR._I6=@CB_<8*.?K[35%F,/ M'3>31G784IUR,/7.:Z8_!>@B8 C>314"Z%;ORV2 :$BTPQ'^C-,_OFMD&OT2 MJN^C%'/69DR>7M=S192:OQM(D552=('S'./+M;";D&PQRY):@< 7U5A(U=@V M=0.'"QQN?!PN,)XI'MF!\03&$QA/8#R!\;A@/.VU/;>%;@68%G!9X5>%;@68%GC8!G=3[+W=*M7R*2W?.?*#./T6NLZXA,*;X= MN%/@3H$[38D[G6^7\@;.E2!5 C<*W"APH\"- C<*W"APH_%P(_C9[98+_1@Q M'&-R+X8SK[PS*$WI@W"017/*HIBC3XJ(2VP>DM>J;4=KCE#$K]!:12C?!G-.7^)2,;9RZKZ:&1(UXS:=$336L@4Z%F@9U"5 M\YC/IS,^G6[V)MGS2I=?(VM9?;K$;?H]"->T @D+)"R0L$#" @D+)&R,)*R= M-N4X.T5TAW*21W0>[7_'D&EI6G&5N0(B16!3@4T%QC$EQG')%B@C?U5K^9AF M.4U)4A\<67*UM\XOYPWSQR 3H*7/!'86V%E@9X&=!786V%E@9^-A9W;/>VAC%] B[N5MHE=0(HZD+*>;?(EI"SG M0+[_6R+&]?UTGRU*L]6' MDX0?U_GV'[$ZWTGMEHJRKN04)]PENZ4/\FN&+TG]6-%2EDEQ:U+>\P7!4/I.5?O'O\/WDC%E)2S+Q]=K6AV4W#= M_V;)V4E^61;5@U@D:U(:X97L2UZK9?4.R#\L1KA1Y8 4MR[M6-PJ]>=.5Y@M M. @?&7THEGPXURB3STUE:>NRGI$4?RY7=YA)!7Q;Q(E4[)CO*0O*Y,@UEK(N MVWD64\:G>:4*5AO?,2WY]K)1;NJ@6@YDY]H7B@MRC[F.B+:K5B&TJKAU::_Q M@@CC3%9\1BLYM,W%K$MWL\1IJEO<387L2[9":7I4YEP-R^5;=F,IZ[+=HL?S M1%ALYJ1^\U"S^6C*3]U%;BH3%<:')[:LB$6I;G!<,@["N_=WMZ1H9-&R M(@ZD.GV,ERA;8,D>HBIF43IQYT+H29O5'4T;Q&K\NS_^3-7R\=XU!3(K'8*# MR@0(N,70T^GQMK<43'$]G2@:2%2*(1B1]WX@HO!'@:'XX <4,(\3&)4?_$ % MZ. "P_*CC[!(/&I@4'[R"Y2W_@@P$C_[A832L04&Y1>_0%'X(\&0_.H7)&K? M(EQ-\TIUE1F8X7!XI;8:F(KA"'FBQAH8!>'8>*+7 EWQ<%P\T6Q!SG\X*IXH MMG#_/1P:3]1;:!@&'!A/M%UY%"D<"D]T7+6;!0Z')_JMVK\#-[9YHM*;&0P!,X-%[IL8J@)S@B7NFPBD 6.")>J:Z MD$(X,I[HKJ>:>"PX()YHL*>&P<;.KBO&-$MPQC$2_[6]<\E_N$-I]5)!OL2X MR*.X/A.B=65DCLH,E0D1Y6J$EK@@7$,W>+[!RF?M7X6T*';(@V,AR*]5RL[G M17J%V"6KS#7);R@M\15FU;I])7F+FD/UJ-YV9F6QI(S\A1-]3V0UANW!>9Z7 M<.E?EAY6LYJ]$9&UY?\*\6\VQP7-7A1!X M]Q/C\(+?0W:F=@GQ-A@HW?IHT_9\6>!8'_]"P9_^'?-S'. M$"/T2Y:O<4SF!">-H('*VI=V-\MVHC2@J2W7P_L!L^0>9<4GG B7U2??#J[G67)-4Z%]G2-^8RJUN5Y=DX?D%S.;BV%]QA> M&N-V$,Z>=\#J/QG&C4O+N-[@O7F[Z("EI_NJQ/1[,-"[&%RB-N;1KD(S%2ND8ZM.>VYN$2UPD^;TE$=#G$CHB'X MUCI+DFIYO'ALZ6ACU$'%0G3[<:>X?L)L@=G^%I/S+M6RUS\:O"7:K3&WSJB= M+I/\4>:%&-7F$QU8/#@SPXLO&H8=7GP)+[X$GV*+6:%3@VEKK=\7A!SK)[1G M%7+JPZ WDE CF\_4\8![PH=0K'WQ'0^PZ/LR;_DR!/()#K2;3AT(T,YGQJ&\ M"V"0;GX@\][49XB)$@>R\GL7RF$Q4FXJX1H''REG^(YA'W8VM\[Y#Q'#]YBK M%_S?F"ZR2DI#G[RR#4>N>( ,P0/?CP=>XMT\V:[BZWH MK&FRN M =F0+Z"XL*Q-WO@<+&N-NDL[1=JM+>VG:,Z7?70OUGU$Y]%\IYY%).,]JQ*& M&>3),F_3D:VMA4S!]F;5]B:6!(Z76^_,>18+JS/*M5_E3E];MI7X\$NOX"FTJ8'76V)Y:G:[E?/H]&,CV M?XWYYTE<;#,^?\E(D5_??%%Z^$!UW-K2G^;V_NS?MY <;=[,_VHS>-X1LN0J M19DVQY?-3P5_B0?^DET.WZ>Y(<9:G0M+7R/X3H+O)/A.#MMWTJR\4I='DR]0 MZJTY"J;@B[U3/Y^@YY(O=DXY(JWYN2_V3^UD,2 %OBR@<"\BF,7;FL5[M=BX M-9R_>Q>1*E6:>"R[-CH;FLP5+3@REFLE"&9RJV9RKRS/P9(Y!DOF*6(9R1;Y M[D4VG$U M9067,#*E1:HV7!$CO0R!&@WX(N(G] =EN^P)3>G8U(6LRR<\!Y?S%P)(7VS4 MENV!:%[0;)&2>YSL\@')HJ^4!3UCO!(1+S.\&P *M-G!?-D]B*>+PH-6& M[HLFG!!08]@>"&G,)M7;&FY[L-U:WLBE7-[ 6M,UJ4V_!P,9!3]BNF!HO20Q MEZU@Y*[49,?05QB!_,HE#:DR@CZ<48;)0AT89U#3K?$3I3C?9C;[C#4/7:K* MNI6ZYG77.UK7L%IE?8#7#$;S8#0/1O-@- ]&\_XZKS'I4"-KRM3!,.%>M 71 M\1B?9HJM DEI8O %*8#*3]NHU[[@HW=4@>T@OOCN3#S8-:@;/9O!L!L]F\&P&S^8T&==(#3>!<75D7,9'N&/&]>,NTT"!'DUI55-= M5]Q)_NU D )!"@1I6@1)K.1;]&C"C/15 B4*E"A0HD") B4*E"A0HC%1(NC9 M[9@+_<0Y18+O"IR(-[A,V5!S;5=\2/7UP(@&38GP2%;EJO$6EO3O]J4BF5JJ MIK];E^I:I(*69(UX\SD^R1?V],Q23E.]C2GG!]?H3\Y9/N LJ>TY"6[ /03G M&=\:R^I=!/GLD!<<4%[MPT6ZXM,UJDZ_!P.9A05KOIR#=T5=\<%EOQ#:0W.^ M,=-J;OM"LX70)<42U:0<4A4=5&8UZLK"3N6^8F2%Y4J^NE1P>'CP0-MOB!'Q M<3&\BI4F*S:8K,H5)B\8G$G!F?0:CN!,VB'BMS.IV:Q'-?:UJ?<:P-.H*2_R M!1.%]DY-K F^X*'4IZF9!NL+)E+-A\+U#5^PT')>VI9;^H*0WDL/LQOX$K4 MFC$FQG%?@-%/%)UAU197Q*"'WG#B2@HL8%6*$38/NC=IT%(K?0J80H&_URO+S '49JOW(T7Y:=.JK M/RIS(JZ&S)[ENV+TC+(5.L_FXA_Q*UU$9,M6W$9ZQ$NHCJD47UJ.?1U/7T@P[D<'A4'[;Z!@0<&'AAX8."!@>NI8PM]R)=IH@>GLT+LEEO_$.7EFA-= M\1N41C'*E]$\I0\1>38"M*/:+5IVQ+Q;2Q:(^#!$O,6 @7AYZXG@W"=]S$4[ MXY+=[,G['*F3&_J>6[46B&T@MF.6\_"(;9OM*_#T$/:.LONYZP:4$:431L+RF%QFUR(1%N,;\!'*2:ZC M#6V;"00X$. QRWEX!+C5CA6(;R"^@?@&XAN(KY[%=5.5W/*WGZ-\R;M\ASAF M$2^]QEG>(707VIPCGF8F3N!F5KG9LSWHE \[W6!\@]D]B?&-&*,C,4;'>T,D M+!_QTSV!W7W]*\P(Y>7R(C_:S!X02T0":+7>-\C';9)9Z+0&$5BS->+) MY;BU5OT2D>P>B[?A2-M+"*HF'%FE]"($2]0P40*JD0$94_1#Z]PL<+X5:'-< M,K8[R>'D'U8]4/Q \<F(.;60*5"I8:B4T5"!N%6+P7>DD%YM MY;H28LVRY'0GE$Y)A5<,!"L0K#'+>7@$RVP["HPK,*[ N +C"HQ+S[A,M2*W M7.O=]U&*4>LD6++JCAB4^O.!+%DE2Q<5\M=DL2SHO,RW]P->/C6F#V5NWTHO M7>!?PY=\??()F2V>[O'C6JJG/.6?4%$R;:AI?RW:I+*R-0-BK>H%YTBAKZ 4 M<24@S5Y3.E#10$7'+.?A45'I'A-89V"=@74&UAE8IR9\MZM.["D<<>'KRT MS1G:AEP9-H""!!/',/Y@_?C Z#1PF)V' MV?Z.Q>&!D]D]WPT6^'.YNL-L&W)O^LI2B[8"*0^D?,QR'B IU^]4@9X'>A[H M>:#G@9Z;A.&VUHX<4ZSW48X7U<\,KRD3#+$EQ]*WY(ID024)+&L@EJ4?(!C- M@@ZTM'5W+,QSY$"TJ3!Y*FU54-6BPQBPC_7+8@7,@(53[? MEA2M5>.N6%L'X0*1&XC(M1HS&+?K,!VK<0A\5>UO9T^BD1DF@S>%C\1:'N@[6.6 M\P!I>[OS*3#YP.0#DP],/C!Y$R:OT1U]F1PFD+0D"@<0\VQ=#7=L$?IAJUND M-%OPTWL5I<_1_BWM0 9-NK+^&(L4;#X#V7P,1@IFZ3$>>D<\Z%)(]9EF<9U( M#WS]O67UP/$#QQ^SG ?(\4UVIL#L [,/S#XP^\#L]=RLG6KDF'?]%!'.+^X* MG&0X;\NTE(VXXE8 (0*;&HA-*<<&QI\ P^OK!7S))[E!6?<$)BE'["(G=!DTU"4:P'(4Y(OJ8Y2C\R6J[/ MLS@M$Y(M^&]CRN=15N)DF]2.9L=\49)D^\-_X30YSTYSOD<_-$G=1[LP&@3L MZ">:\NWAC'#XCLJ<");QZ>QVEB77..7CS/_A2Z?:D,ZS<_J Y /2K:4>NO*9 M;Y:WM$XP2%#Z-$]/Z@WR]N7^N"^Z64VG-'D'Y>SY"*C^DV',4!C[=9];ST_IJL[OD*> M9E(M]W9QBWRGNF'4-S">'EXQ>D;9"IUG<_%/%9V'6,:');]D%S3G:O)N.=V0 M+,9['3KAW9G%35N-Y<^-&KWMA5CKL!E\9R"\#%2 .E#TV5DI0:9#B^/'X(4: MU!V %\V-H?>Y6M[\,UJI3_J.K3GM^4?^X6H[RVZ0,#OLUK2D:[+B XW;>96M M\DD[/$*I2&5]L\18/,(U2Y)J@T&I@#ZE.2?G^='&:'@4RI#;CSO%]0IMZE0( M=+MI[\89YUQPZ>S051MHEBC$^HR+R_DQRI<:_="DB8%Z^43^DS_*O!#2-C-# M8/'@>G;O>IZ8I;\%41_A; D/TLS<0M0_K M 8/UB\]@]1N\ L;TUP/#M'LRH(AD+O9B<^U^H*AN/B=%,O=>R"[Y".;+9+7]4KX M2QH88M;(0*$A9XBPWU!:;O-V5$#G+R;//@ WT#2C2RXM7K\ M%,WYTH_NQ=J/Z#R:[S21B&0YA[$RQG:T@G3ZAB.K2 \R!BN)52M)D]E[P7"] M.V&V:C)+Z.KT>J-?+'L<+[?!,>=9/,N2$Y1K$RJ8U.O#V@00R>+GA=.>KM:X M("]&(Y<+ ZOAJ?E+(NI5O?E5*MOE7()0DZ2@B@/9KV:,H6Q1#RY? UPX]/R; M6_Y?.3]41>2K\L93RU:&3FH0DDL,*/G>^? B"*2:+EN5]#E?]7D==J1+,M&N MT?$D$SBN F06?-6\$/])DS7JOK*E\5T8G>#UUV #MB/G+?_8Y7SO5%'L;'8;D.5T*U*4*5&P7M29OU!:UP6:?591USPX(O9FLH0CVA,?+YHE\^ M +W%%S#T.Z^IS/"W3796W_!W642#MS!WG& %]]ZL)@KB68-RN(R=\2[F"X]VJX_V4 MCSK=8%R;'_#VIYN"QE\OUV)TY*Y;PZJ'Y<.]$7,]OT(D.:/L%CV*<*$E3<7U M9/Z+ZJ]'8B4<[RV$3XA]Q<45(_$;BWD/30[E]WU +!&\3&%9;RSC5,K=7+[! M[)Z(3$Y-8/)9+AZ(P4DE+]=-"I3N_UU;3E&_AE6*_8\X]WDW#FN-'R9?]G!IX>*!]!U+9?U M[?FLS9*K%&7:3/@V/^4>,T/]286)85,A7_U\@NZ^OGA\Y8BT-M[YX@G63A8#&N7+ M @KW84. 0!M/K1V3T0$&"@QAK3C$R )3:]\AA1;T:-XXM(B#GKUS8/C\2:;K MS"<&QM:?S+O#NL;Q>1ZGV>:(U9'732,:3&H$5'P33&$H4P&JMA-&., M3.D>NL&12DA:%N2>;QQQR:K8WM-'D68?)SM-OJSG].5\EQ.8;PG5_C);T5+Z MNG8O;0>72DC(&!P2P2$Q%?O79$V P?XEU:RM'&2.%>;W48X7U<\,KRD3EU.Z M:LP&3;I2F8U%"CIS/SISLP*3LV)/>>$_/4LFGK;\A/Z@;)=@L2E9M[J0=?F$ M5_ER_D* QD$%E>V!@5S0;)'R/2C9Y0B6A>TK"WI*A62BEJ+OKT;FC3(O+]EK MAL'+#.\:E@^>M)!;8AC'XM3*KW&,295N6IVT35/<]8L1XF&S^LKE-Q%-'Y#3W9C055E(./&&Y$$ MIF9+XVT-MSW8;I!OY%)N4L!:3GOR$=,%0^LEB4^("$BY*U\G.WG5"7V%$[Y@U&K:*"Q#ON#29F,&$(O#N18!-3OX M,F'Z.)\4=@!?KEG))P[$=S?UR:+G"!"/CB^;2)L]%N8W\F6U&"$$=.3:NX0Q MEIVDO^ LXXL48X$@!&>I'NL$^]<.\,HAV+)_2/<$X>$>CJ/T/D0+2I,'DJ81 MRI*(%DO,(L(_ERT(WQ(B5!T#70/WNGW%52Q?'U*&\+YP)<8X\FDE D?_V@;S MGC]-N%H%DWC)U)7")9;@CPS^R."/G I/&JFY)?"D#D3 [(1RK/?^N+OJ7*#' MKMHMI"U7.BQYM],COF93(JGQRKE +=JH!_!2_Z):WQ/TWM^Q-;?.T-Q]8BM4EYP MO?[$%*^B7E#9$QW:@GT(4M[E)"&(;3Z6B*&,-Z1(TZ O[?92[8M!4MW*EA8< M4%[U_65%4:BL>GASJAH:SX**0_S_BYRX\%@6=UHB7/@5"@_J@:&$4/M<^8 MZ8H/*'N=0Y?$VZ3N5XQPU6/]5CTQJCS0J%Q@H>+EE_-Z5[TL"ZZ,9"(+MG+U MZ*H-U1N2X9U,@+-/5WQPV2^$CMB5=%!95:O &5AIW+SW7R%Y?1:72HX MXSQX9G)?$U:L-%FQP615KC!YP>#H#(Y.OQV=S69CJK'?3KW7 ,L%->5JOF"B MX O4Q$KE"QY*K9&:Z6F^8"(]WRG\5/4%"RW+IFW9K"\(Z2-(8)8*7R)J0#/& MQ.GB"S#ZB:)S-?B"A$8QZ>AG]26+ V!CT9I\?)DQ6C4%Z%/V)7\%(+O4@1PW MD(/&. ;"_U0>,%N6+Y-$J=%WB9OR/^&)(O)NZK-#:1U2Q#].7<%0]UL>C3KU M?IOP>Z6;!PR$\9O&8UGU_=W_^'FJ$(3[']+[']#P*WL'Q&BA:;)^0",?[.VO MHX6K77B5/18W$:#@\9OVF,QHH5*%[=C3U\<+AV&TGSWE9K00M0^_=7R?\0,L M$]N\+$K&?]I+-!+1N3QEVZY//:>M:RO&R/+:=>M&N'II-9W(\Y@Z'MW]ZT.# M">$TXNR,9*3 %R()\NND1?LIC4X?USC+\6S.=]%_8<3.>(77H'5O,7HW 0P^ M\\5_^X#3>_R)9L52%D_8K=%)('&-Q5Z4B#2O9R2/42K&L1!":]+HY) MK8M*6%KV,P%VC4VFY[?\R_T->M7:=/K^0/OK^0,=7[\_8]EM$G6EZ,,@/0DW M"7JUV#J,=A].YPR!\_X'SKOT$(W4.SP%#]$]9G=TG#8U"UJ\O1GE#8XZ0-A!+5TI[/R2_DFNB(/2>45]@UL5A[#BN_H&LP?=AS9'D#G=*D:B_$IZ % M2B>&7@-'=^O\>Q^A^,^2Y*1.K+HE9]7O^&J.9/5SA3BF MBXS\Q==]PN<5F5<1-=M]LYY(XA;2Q?,TFM6SJ"YRGL5I*4(J/FXM+TV=D MY>XQ>_ITE/TZ4KPN,,KQ-5DL"SHO<\E;>TX_V@- NU=%18IZAF(NC;A1FM8Y MZI=DK4@-:UC59DA+/WH.*'"E3Y7*D6MH-Q]GSX)OYYPZ/Q*XWN"]D6>DTI0> M1/*]?8&OG9PDVSI@8B7P@'70U=?MC-T;]N?BFA- M!/T76_[E74H657-P>'K^<$O-95R0UHI&7;*:)B[@E'[4#QQY*YC.Z4O6)>X=Y%=HHPCB<"J##YO L\'2Q7QM^-J$D;O'(ON0+)NQU6]-%K5J MR_],LWA_YW* 8.-W!PH$[+-?5XRN,2LV5RGBO7F>(IZW]#KX@U$8S@T5HZ54>7S#47TD .81\N:$!672@J")? M -'/C];\R!>(VFY#K4,"?$F>V''_AC(H>]77&JR,K^1B6W9DF)G8PRTFHASK%9DNL5GV M[@%.9/%9#@^Q=UG0=WPE;GE[5PA]!U07'6;QHGY[>B4VB$OR\+QAO.R@Y[CZKO<<+CA9&W$ M< ]W]0P.]"&S-;.X:[=)>GZ.\B5'YXZ/:2[=";"-2K.8%C;]& M=%W]'L4%N1>/0;5+U-/?!QTEZ^E;X)"PQVK"GE,^'>@&8[[8.*W$VY]NQ/A< M5L,CSYQ@6-5FYH3^)ATH>T+?<]Q12/#L ;'D]>O:KR*"&\NX#5P6T!X):(_W MD)TQ)EXTK1Y'VSP7V3J'*ZGK29>?/F(6DUR<*Y]+1:Q\[]\9Z"Y5C_WX'0OS M'==Q[C%#"[S]"[YB))9&D+OY^D2Q_<@+"CM*_?"AZLZ#A2]-%+.]!^S.LX*1 M+"?Q;R@M;FBI[5W>_-=Z(? EY&>/TX=;P&."V 7Y_^7!PQMM.?[=VL6"5W=#)^=]9'L_0MWH,0C\_ MUKF=R_KWS)NS1 3M:._VV_S41#![20'Q$WNQL1/W*L3D9FGA2Q!I+T/3A_!5_.C?D2*GQ&[BWDE2F\Q6SF %BK)1#&7Z_ZR MGKZWA'D'22:%N%X1&GCR]R]@2-?B/EV+!3EI_/4\STN3I:;9B4M=DD]?H-3?UE9XS'VYC"R? M3ZWC0'R!QD5"@\GF=(#J6/8VBW6M5!2(%6.,0;7NA;6WS X'61-/H[TU/=IK MKPXB5RRF89@LJO8LK1:R.(S]LDM_G-1>B@9_IVHGWXN]% [U"7>:C?+VBO5X M)'L)' X%5Y,HFL-*XS"XD^! 4CRXC9"UF-UANF=?UTL$%G,Y' *H5C2)%ADC M1@WUL"YR&TDD#@AV3="'C701DT!W@"!%&VDB#A1KZUNX%PG]QAKC82.AQ-B' M8?@(]+%D0N!?Y4**?FQ#$\J,%/;R()A];O L"&W$#3D0K.9 :!%^8S:*'9,* MM)DR(:7 GI373P!61OPO'+[\^N:+\BD]4)UQA?_+CAF1/+;8G&>\0V5ECZ^R M2-XN4;8]@,XHFV-2B)RHM0%>@HE#"89ZFM1Z%TN^FE]I596K[H1O!F>(,"M7 MW:P(Y\FXO'24.D>^^?->8CN^:=]2/D]&YS/-[BOJ8>?*I^GWIW9K?W+X3NSF M/KQ_X]M8X*+Y.^LG/2J^K97:QC28EO/R\_XI]R_[-[Z9WU*^<8U.2+X0KCD> M\IT_0SM@N/$7;OR%&W_AQI^5^61@'O<%DW#5+USU&R!(H*L9+5P!')%UQ[N- M8* 14'E-[-T6/&2,#6T&UB\1'M:.H[&?V;MU>%A3OI.9S,)-Q$.>\OJ0$'M7 M% ]KUK.M[&'D&WT=;OOH]2\;A@'J%=*'@T+\62 MK7\?K>M>YRW#JUNW[RB>NJ-\(8#::@#U& MHU3(VJ:;C0V-J<=?LH3+1#"U:FNH THBIJ1KFM(AO#:$UW8)KVUON@CQM(<33^LBUF^RX8[#Q_J--AU6 M=W9L;_J,%K3^-#E[X76C!:^K9=1>M-QH(>O+!F AQFWLT+4TL'[<+'#LOLI0#0NO@B'AQE0/DXG(<8/Y3)*QK=WSN9GSF1BG-%OP(7D7B M=VV#RDW:=!5(;BY3"!ZW&CPNW@^XH"AKSL8L+V$U>MIDEL BILWGG2.?\3'? M24EQAN)J#U+D\987'%!>99HO55&G,I_P07Z^A:3 6%YP0'FUZ=1TQ=V&V?"3 M]W)>#[TRP[N\H%MY^4X@=C@!HDS2AB*#R7A<,J$% 43=EAPL+G9/E,\TB\%R MORWL7.YB*XKF:055T4%E5FX7ZL*.7X:XI^F]>-#HQ5&A>1D"4">$J84PM4YA M:D;Z8@A-.YS0-(6*2$U5,E\P45 3:D('?,%#J1=0LY/8%TST\8PZ@NM+9"=L MM1BH.;X HY\B>H7;%RS 6XB&1=L+R1S;W-#9;GR9&1H%1&>QM1=P.I8)T=\5 M >/ T;% ,/P5@3'Z_>1V/ M[PP2\Z0!;H7?'!Q@1F15R6+]P'B]Q4J8XHO-H MA8J2M7_2N4W3 WF)X:(%9_'!.XLADZ65SQ@^"X/K.+B.@^LXN(Y?%ADJ@\^> M")_J;8O@_!KO+MI?SJ\8R6*R1NEY!DWCTZ7-Z-WX<="FN&G5V&1Z+D]VTZ*I M\??:*.]-QV8'1"-$-82HAA#5$*(:S!A-"&X(P0TAN"$$-X3@AN"='(]W(>LSLZLMP>ELQ3]K8:/T#4F[?M'5N^("BQ M$]O;S+T"KLFQ8.\0&&_V&86GS5G,3DSY?IIQ-,1_Y30EB0C^BNY0*E)P1/D2 MXR*/MG%%4?WH8U1FJ$S$2ZL[H?4!//U\QWXT3Y]RAM >JZ$]3TE19EFRGS(F M?\J/(KEYW*JR$X'EMXY-Z_?Z:*#TP]?B#50Z+W,\RW.^,(RDEE5VZH.9Q54" MIOP*;836KKZKKBX\B-S7.,;D7DCS&6MNVD.JN.X#/X"3\XQOR/@6/>)7G7TI>K,A7'6_7(L7@IF>$E/_S(/:XQOJ!YSN?(Y9R# M+>]3FU;<]C3AAS-7#% J,D6>9\=H3;A.*.N1NK1;R1MWU1=_'"A&J_ZX9K[O MEQF#G+.[O& H!LG[NJS;N%.4+_EQ*?X1+Y+?HU0PJ5EQC!C;\*.T>F!0]H=E/0^*MR""3%',N:51/X=U(L MC\N\X#LQTVG&+:HZCA6NB;\X9?@1LZ5[.\%2E.=D3G"B3=[3NIW!>WO%>:CR M5%!7&DA3V@GUI+K5TG"M0-,+>85AY=_3X0PZ\;+60&/QD=+D@:0R]>?UGYW* M=IX5*%L03DV>QOOT,4[+A&_[&KDA50="_#R[YUL(91OY5&DJXO@FP]/4E(BX M5V*H>P'/$G!MH#I>ES1-,,N%HB-]'U)7;?C>:#+DO2DX&HDU"K6^PG22$@XN M<94Q8+L3ZP17EG4O]?XI#1*]L<) MR:N=KXQ+4E1E'0M\1J1Y/11 MJ*L: ZRRK&.IZ1JS8B-4ZX(?*^(H65?!Q=(S'E+%\:V/ I$,)Z>(95Q+RO=L M>5QU)3&1]01>,=S_@,@KPEF$8X2@](KFE?51<[*:5/7A3HL%.8':XVCTQ;>" M:.>(KH)3^6\91GG)-I58M85,=3S)B@.30T\\*A^RK,,UI\.YYA2>%Q]U>.T8 M4T,!O%F^ *+NZOXU!7/?F"_+!XP1/$S$E^LM8&CD5EI?KG& H0 P<:]">N'+ M1Q7T (;$^%GST4X3J,T##,W(GS@$0]/L: /#,(6GR0TV5G/G'1BI*3Q(#D;* MS+T/QLCX)?*Q+:H.D<9P#<\7-1@:70%'QA?E%^"*@H,RA_+.0+)S>#1QOA9(^/#Z#E&&*C#;CSBJ6WGSCR*#.OR+D90(91W[Y0 M]'8@M;R 89&RCW=^=;T";I'-#Y*>Q&S&P2,U_2+XK8^^]E3?#[7[B9X KR#Z MPMY@IA!H<)DOIA! ?U]Z1]6QU;[80PSTB:( <.,?;*%F*&D3[\W:(M9.S@F-XL?8;*Q4NL[?OV<_R9T/>D.W/:K8_ MZ1,QO0WC?M(Z^U\;.%O<1\8E-,T7UU3);3]V6)]1=D++NV)>IF_%U'3+I W@ M;2,+5S.?)HXVKU]CV<$NJ4WT"F9X@LO^CAS1,8.M"CW9]0*"-XH!JTO7"HT9HR5*JZ6PO& MK]%ZF]0C6HNL'I5+ ._R>JC_V,ZTT>,7'=D\>I(E>FA\JYN"HY&=4?;5H]Y_G*SZ8]]702Y9!F[JN MGT'*^=$="\@KU6O!UZFZ,Y J;I\!X&N((RO^ 8\(J([;7HB+:B(^$MX'?0VG M/?B$N!Z78;;97Z[*'@!JC"-M_='FELO1U!@ M('.^5"0Q1QHUS18U@_D[F+^[F+_[U%^#7?QP[.(F1R D!ZIL9_,%+[T1W5BI M\,5NW'(J&2CUOIB06R+5@I#ZT4OWJ9>DSO7 M014L"/:<&! NFZQ.#^(99W[>EQ-UC9-<.A%<]H (2.K7E7L5 MN6K\CH&7 5;H%3,D)LEQL6%^*30H^3>5UWQ MP657^O;T%9S*O[\Z=;NH097A^R#?5LUJ#=:35WL4H!>2&DY[\+3SF\PH6*4Q M]$,[J\#U!NP-;&:!ZH3P@Q!^T"7\H+NB$H(.#B?H0*OY47,]RQ=L] 9TF-[L MBT\%-%>@7- 7+PL8% .#DR^A JVQ41N\?%E/P4<9?)2&;B,#!N'=*E$" R;M MA^1K[&0W]N40:K.PAGKVVH=!\U\B!:4)@\D32LC&Q5/Y42$?RY;$*[9[@QP\9+_ M N?\+U&,&-OPOD5H)5*LBOQ83TVTC*BQ*H2KNX/0['*=?R, Y:L,S9SV$)OS[K!@5)=,H%MY-#1 *I@J M/?MS/6U.LU'>'9+I>^.DZ0F>DXP4."7W.&G\NTU^;OCUD1'S5M('1FZ5D9]G M?#Q2'! ,K;#(8V]^B^AC,"(8SL5?[0:M5X"IG89D7 M=(79!E M2(&CL?E!J@Z46%#XD>AJC0L\6S ,R!VJKQ#L?<'>Y\+>9ZII!$/?X1CZVJ@ MM*?SR!<,]9;"UHJ6+Q:SMM.L$[?T)02ZXQJ%*B*^A'-VA$O+:'U9D^%RP:A] M/&-T:9@Q:PL+9?PIT'JP'QW2!80.Q-^Q8^B'+;]*:;8H,%N]N""M^%-+3U!/ MGW/E^NE5W.#KL>KK>5((2;6?[)3"*[2IURDH1Y9Q(]'['KMP*694XW70ZB]- M FNJ1.^<.*9Z6B MCVM[4TB\(X%'1:5[T!FF,Z?L&]ZZ4G$8&ZQ:FZ9 M)?=(I*E*2(Q2>0BMHE@/0IR@7"N!K(Q3'C9+_BCSHIJ]M_0:\XD=DQ1_QL6Y M.-FPN"YQ2X_YG+YB])XK LG1YDLN;.W/J0#B@MQ7&]7L+B\8BJ7OI5O\U" V MDUG\9TGR^N@7_\E/?W5:;&B]P7NC2$RN+CU2V]6,,7$'LYI[Q]5US/-L5EW! MO)SK=-UW&B0+_Q",X]R@5@E]CON)(S$\S\8=9EKS\Q5Y)OIQK M3]()R=9PF\+D48Z$;^H:$\3&:!3EV\JJ[P M\8XRD>;F!-?_/G7\]+&^W'W--<#3^1Q+SSZW0@QD@S[9TJ_Z/+]%C]4SD/S? M8_Y+\O85%6"U=JZB'GJC?U%-VB-X5:=]JJ?'Y7Q_REQF(]B'QB/88&]A7#'" M%>(U2K?6(\5U&WF=H2Y'[:Y67V8UVI5B>#EO?CT)4F>HCKS=96=Q+%2UG$.L M<%5IZPVTB\GEX@P,\[72IDO/54B!X[N^D6#Y' MRFZY ;B#RE9&T]>]\W^[9CYC?B3L_;K%E&W3Z. XW/.MG#*3*;Q79SQ+\LEN MT="]D*[-IJIM8> >7C&\1B39D8_3 MQ[4P[7/UL!+<<# AC0TUN'R_:S*JUFKD"Z.JI+OP!H:Z*PP64+,#M6]H#/T5 M9T!>=!C1A@;&-:(- K8;44!#8^AO@^/#K)\-#8QK1,V]2.T;6O"MO MRSB5^LA[+>J0K/YCT-RC%EW/C$3)O8;@>%C3^>KFNK*ZG MCYC%))8K4[P'4C^O>)#B6]T M*$F.G&&L7I.]IE&?9&$JT8G7!@YG LCNH"NAHL"P/@U M7Q "O#H,"8KSY7H-9,* FQ]R6H"!40=[^O+] AI;L(%-,,++UU->KZ@U0$' M"K(J>K?'**>5_?L&ODP\JTCMC8AY7*1G.:U< 6T66N?9)517(,,,2[ZD>72% MZB#7:L"#9/R N-%*/ . AB^7R>08ZH;ANWCB'VQ!W@V .U0YBI9XS/$IXFLKO4:,^&.!Y5T!#;]JD%?#$B]H/CV-*GV3-(3G:J#YL!TIZ)RY$D?J6SO MNH13IO7=9O(@BR4G?ES/J@+G+N_X\LR$SK7C!&>4 ??/_EH,*37-PLG>$YU[#;7O#L()6.[,W$!EVG@)U M66\64Q=\U,3$&XA@P3OM6(,OZ\R\^[0K4?=E?G6"KC?RYDWX9RLT6Y@2G3D. M0*\0DVHSMO8.LZSYD;S!K!8OV.W[L=MWMC TI'K8RZ&VC;:6TX><[P1U,L_JI[0F%D]Y MZ';:Z95(],G_4!2,W)6%\-C'[G%6XIT6]3IQT%,$MS!A\_\E!H_&37&I6P<4._+T6C2\;X?&3?.U[4[9-FN'$B&]<;O#=OYSZP]-"27S%Z)F:+R<54TV8&BEDU$%-] MH=6\H?'T.-])"O7EU)[Y_.FUZCH=2X-;1WV1?PA11H@ZY.(;N/X(^[>-SVO1 MLVW-@?H4[D1,T6!A41T*<>B'$X>N4\D:HMN &J@O".G#U$%JK2\^6,B$ 5%- M7P!Q<9-CY#D+QWR38P!OJ%FPL(%"Z)7/N#M*KKB313O^%&%7\C![]T>FA)61 M"A1(?()-8D=PZ@CY$;+LC,QS315;SJMWO$I*CQ8+5X=W1W28JECA:H3\H MBX2P58;7A;B'%J$LB?+M3;0HIVE;IY$S>1PYF!SW)SBC;";4S5FQ9\;A/SU+ MQG\03WPG95Q_"LG68+OE]B5FLN)WQ=I+2Z MWR1W]0&K]"#<+:5I_95/B)\,&68;N5C:PC;]D,ZV&9#/TO&FY\@ZNUT.S3- M529D= I6_F#E-['RN]M @D? ?X^ 5NFB1OK.U.'0VS9A6NK4S=R0:0$XUZ=N MZ@;!8*#@VK.3C0P/(QXR]<42?$*3\ F-\5I.C]F]AK.(QEO)(R0>YQ4.]*V6J.!RT;[MKO]!N^3 M4F@H5UQ/H>!!A;76,FEY/[9-PXVG@]VRU1;G[)4OR8K<>_/WE65)527ZP8M> M_#BN7O#5D_*Y0^:$*S>TWAT4IC_C=H9Z/$"Y0+.N-&?^?5:,,7S-Z'CV;KXT0V.7"5JPBHXX M*VO/A-.>KZ%>IZ?9N.!KHWS:"\*=X%XF([I@D*:=8LV2$0^,GD]IVKO3=#!L MQAG;)[=[R4PW;ET_/PJ6M1VMFE6A-*4/*(NQN&8<\761D"+B*.8BGJA;.E=;.G.#H-@;@_F]F!N#^9V/15NIXUY-W&4&,%5 M@\,RI?>D$QZH";T=6W!KCOHYRD6>B#O$\8IX:?&&&-H& +SX(2]:6I@Z?,&1 MT:BSA,$.9-4.=,K'GVXPGF7)9YKA[4\W!8V_7J[%T"CN\9M5M6FTZC#+0':H MSK/8H9DB1KM'B8Z$N,=[ KYZ5K3!.J&O'+T;IF,!*+E2=FQ)>, MA2@,;Q[ M+U#J#=E@_=47$ZWA^NN@?_F"F'X2*6BF+R!H-R4-@?4E58@9=KR=[=6M.^O=NXA4ZD2TQJSF?]$#)HNE MR.*(.+AH@:.L%,M;1-U4!?*H% RQH!4O+'DK&2XBO&X;4FU5!D+'< =!3P\&*ZMZ*VKN< MOV]7QZQ>')^KM7$YW[[N4<^-R[+@ZRP36>XD'3%LY?7K\%6[5Q M*'9QN]MOL)P?CN4\!":/FDN.,=*VP\[LW911 M6W!FC/?E50+N,8#18=]1W' MEHOOHU1D1,CK?[I$W$*:"A=D0DSD@F@N\OA#3G M68'YQ"[4T:6 &H/UX(IQI9VL4;K=Z67,&E1GL%Y'S0G)JXL>UWR-7&$6<_0!'=0W\OHES^%[>HW%]LG/S^J/ MMYBMWIGWM*&1@7I:"7#,]RY))Y[^/I!YY.G[L[N\2G&CD_-U.:?2;A^3WHZK M E9YP0'EU6RUZL(#RMUZ+S)M9J UJA03OA^9-C-0;V^6_)@3 NC6D+Q@< )X MX 3X#3$B/JZ;!M)R!V/@AC"18*<.=NI@IPYV:HGM4*,^^P*&O)NT(P7W9>$8 M(Z0T'/D210I"1*R =34@NXVY^"F:(\*B>Y266(0ZSJOA)BB-2,;[ M6%;;[-YOMT^AK7C?2B:")8L7#601$NE?2R9>DXGN4$[:7B%Q+YBC>)"A.A:B M2ZQ&EUS5D^0W,2J7\\\TJS)L%-5+@K,%P]4,:(HF 56,LE;YO$PC8=S/35!< MS5!+QI%7XZC,28;S_)BN[G@?Q,"+QUNX<+Q?+QXZTSV7VJ*E@1+%G?'QJ*;\ MT>;I/_^+<.%8O-QJE^?ZNDG)N<9PW^6.(N;MJ46-8?IT7FV M+HN\@O>#,CT8H,8P/6C"59G;RZ#FX#W*WRX%X[YIVQB^E]>[C1LV!0%50V1 M2++6Q=<^@'82//>'X[DW5'9H+SN\A^!IE2H-\]#$2QFJJ+U[P'J>2 M6A/Q!3"CN03F<;Z@T\.VKJ-7OD1:A'Q=HXY=&W&^KA[L8?;VFS'BUMX@[?BJ M\/LHQXOJ9X;7(@"/XY]KQ!.'4AZ_*)Y-.7\Q<"- XJJ&P/KJH9 M9C1?HQB?\*TUR['\G2-UR3Y$*7D7J4BPK!!"4J:'SY]G22E2M:)4_GE9F1X^ M_PDG)%9]N[% #Q^^YOIM5N(S?HR)LUN$7?Q.BN5NQIUG<5J*W!4B&)O_+[E% MC]O("K1X8[#LK4&K^0A:;N^P' 6=S@YG3^T8#Y'$--VAI> 7"'Z!3G?PVJZT M8-WWW[JO4?.HD88U=3#T5@Z(5CQURZ!^2NCTK*D;_( (J)7LJ9O\H" Z,[4 M;U0!H5"SGJEO"RZMX"/=%Z9@!1_C#>[.Y,>[M2.W>O=H%7!F"H]IEHB]7[SM MF.4T)8EXF^29A^15\FKQK,^2IGR<\@C_60H?1YDAWAE>%FX7[^];]HWD?%DO,Q(LW#"\YP%P#JU^N4\9B M&M=WV[LDJ3Q;XE(I2+&M__$LLA MY^O@!K-[$HN;:H0FUSBFBXPH$E4ZEB+*?ID8V'N/S@T Y%AO6K M2KV2]*NG5AU[%PH^57!RBIBX[JU^ZUY=V'$61-@C-V_3NO\P,7E_'%!>L9&> M4<;GK=#_A8+()>*_:-Y3E5TR:VJHX^R)'+W:49NB$XSJ! <:1-[+^$ZGQ MU"0V-JKK@UO0@IP]3%M 0VY[^^+;5O5GQ<% MAU+F.D@\C#IWRZH;-YM*H-JJIM3TM>4]"EQII4@<2%Q*"V^37@OV#A1EEZFQ M+=L[3Y,6'W-;LG=N7"A&$!O,U,,^VD^@=NZ5J<>&M,8+>,R#\3%.P#MR? !V M=>\VZQ'&DZQK]ED@5HSJAB#4QFQOCHP=&2UC\^X!BZP <.[ M<[W#Y-(;[;P[Y95H#1(Z (88GK[_UQKB#"^$UCO*0Z /_Q\8.7B>__$C-W0, M$1ATXT<$QK@CM'%E@1$R?C9@0@BI?"9PU7?R8*J3#:%A*C MB]OLIS^959(06( 0DA"B.J:GN0BI*O.7EZK,ROPT1OKAOW;T3^MG9V!I?-+&[5:YP2^]2_$+U0M MN';^.O&E?ZE!-<6>O])FRO&+^7K"OX+?-)KA^VI+A] \T0S;H8;"@NMM-6IF M<&W]Y/]^^_JLC-B8^A=K;TX5'CWW W\HFJ%K!ON_GY^^GC@6->RA:8VIHYD& MW*O>KM9.J\UZ\%"X],=R@N*WH4=&SV;=\QK51L>_B6M7G>F$S8@XI/: W\7_ M!G_4K=;JH4':EK/L5\%7$3]S'8N]+&7 V0E\/YO;LNOJS=#\0K.P3'W)+/@W M4;-P)E8T=O";.>B\8\H\X?@!CI-?56O.6&DM8:0UST8 9R1BYRY27,MBAC*-OJ/_[?Q]-64) MD#1E[D+VIHRBK\1OYH=ANH9C+1N%^'*>6G;UA=))I C@%W,7JXZU(,%S?(:O M3_!K_$T-I:91/[K\&_DT8E2])'\CY).C.3J[1(;XO/BS7OOK&!3^IQ/Q';_L M_ZU6R1=F,(LZ3"6#*>D+(%X#$,FC:3E4)U72/CGEHR/=\T;]O'E*'K^1:E7< M8AK8V:3>_:3/)EC M:H@/+\B$JBJ(R3FI:0:I'=3* MRZ HPR KYS<&4'IZ!=.WJ'X'9'W[@TV/B 9F*R3OU>C++FOPYZS>JK<[GT[F MAI'.L)[8BV:C^7'NX9MEHUJXZO+[[2/IWUS]?O_P]>'+WKW:3J,6E];[,9UZ+.[$F B_Q.ZYSLBTP)RIR290KX ) MP+^;S:(1BRE%GT4S75[PQ;6X=T<$DHU'W^WTFDU*H"+S8:_ MA4)]-_P'U\$] UQQ)9Y#O5$YZV[(@BU,6]HLJ-J!] MO1-^^=FU-8/9=D_YR]5L#6_3>]/L:D]]A87\-Z9J,-YO;#Q@5FC2-]^?WODC M=,J70WV3W\IB_IV9?<^-S-!ZL3U4#K@&YX=;Z0!SDZ;$23PX!=^ MN8P$?'-*&7DTN#.4'J[O[64TB5@E^G<&! PT@V_;PTUM3<4]-'C3YSOZW(O[ MJM&!IL/#0=D8?&,R 96Z:+"6TFCI5D =0=UHA%\NH\GB_/_$G;N'8<^"F;PP M! "_[-XT%',\88[XY8O%^'>V3S2/3,.)$T6CX/H^L\9'6N88 M)C9Q'3ZQA^$-M0SQ/$#&%;Y#B#9XT^\?GZ6=F**,QM7YP=#[# M2.TG]LH,EX%N\I <\3,$MU %KNV8@*EWU[S3 G-40WS[)/M&_V-:_GWRH=<2 M_;? E)5D\K2))%B+9$L=L8Y1] M-8T7':R.V@,?RS>MV]#KSR_,?+'H9*0IUQC(T09N8/>CO[HU+::]&*O)'2Q* M%AX*)A _H"^L'M"]VHA)^ :0_703NC<7-VR7>3[7;.#<&3!'-_!FP*Z;ALIC M34!M0WUB-M_AN0(G37,";\6CXE=P9\#=Y=_=4@6=NJFXC3L UT^CUO2+2S%, M9EH^UY[0>^(7?:-OVM@=>Y__DUH:"L,3/(Y__6AI8_XN%LWGY_*9VIK]/(&E MB?I@A.^<@/XMW)QJ+%D.#DW3,4R'87SZ7(>I_7;$C*IK"U=N.!RVU4&]<5IM MM,^#QBZ\Q7/_;D:V-)SJ/&LW? M0SQP[B'\O6VZEGC+LZ/./;1SHB]S]RZ]:QF/X/KO8($"[X%0%N%/99&I4%=W M?\Q'GA=_?.E_-']W05'_'8B2Y6#8]'(V0O]WL^^"8:JA2YL\QCK_C?_>?\C) M'"T"VJ#8<,((I]Z__Y@OV]FE]WB^9/=OX7_GO\=;1-+:W^; [*P"$%BD[#B7 MLT$%-_*^V91FN-)=I)B7!'4.WR4F6$$0.4^P,,@V)-B[.?J[1X6:8\-/5M@: M%$&PPW^*JKW"N"Y#E_*5.07+EQ _[WZ/'UXSPQSCWL'[V\85Y+E;G,R/?AU\ ME^T<[)[+<[JU$5^W-K;2K/BZ$G2<1FAGBKPL/>)KJF:)YC1U1PO0P;[/_,P5HYHR.>4G>^:EZ?3B(? M%9 V&%&>(IV0?SU5Y;M]5'^DFGIG7-&)Y@3[I'O*0'^7;]7V$B=+EVDNV2=PEVZ17DX]7LQ/F2J^FR,PK0 )6)G-<=NY).G&Y11]W MDDN7C._2^3M@YDNG\:#8+9W-O**/>P0*Z:3N-=,UZ>+M)(,^Y8,_TE7;10;] M#I@H7:Z]9)MTG?+*H-\!74]Q^ZU4;G3^&V!C[3 M9ZICBZ+G$6-.SU!G*\]KS59T$VL_V)^G\&9BVE3_8IGN!&MNZB[N*N UO)N# M"P[RQ*O3*;S(;Z:.)1TUH)I/^F^W?5X/BOO33XSJ-S:.XLZX,W_28J,G'Z)Y M8$Q&NNR\6(1-BEYL\5$X6R ]*\R@,$-1DLQ_H_['M7D[$PG:K$"[=I*VY9Q' MLFFVX%O&K\)+RK(JAX46&BD%A5#=R;V-N8R;I!7B>&%%__;S=:4F\-+__6;5 MSI*47R\H&G>Z8ES)D\-W&[$ZC\+[D_'JM$.;]VC7( M[-(4UI5PNV[XI>1LZISMQN=L-P7.:I*=&:KH;D(5G0:'_KS50%&SKU@W^\Z MI[]H YV)"MJ?IZ(:.%8)7JR7[6"!8]OW>M!%&FF3@L=VT^-Z[$=N0%T_MR,> MC24@\?=P =-UIC@NU1\M$X;G3"4&M\)@L*1:1EF)O+F&/NQ=,Q^)O*V0MYRR MA4>>UT)!AD&S=(#K.PN#ACCK'X>3G-T-9^M;;67%"7"#T5-=Q7FPGIGUJBE^ MMQ'^83$9BMOE4:.>J=:YX1]&3%NR<:_"V!M)8]\T=S2>1RPB$K>EE=N;V A8#"X.:?+-7MENCDI;JQ]#8?7S.: 95CRN73R M?$LUZY]4=]GG*5_'SS9$KIGHV^RU12TFBX.-B673\',%HR9S&)(L.5P6&=:6 M"&[P\G>@,+64T?0K*C/.X^"[.V/B.C;_HNEOC\YN\4T$^Y$8MQ;[RV6&,IW_ M?>@*[&'K6E;A3][&(]%L&;:"5BELG:XG=L1(5E ]H\W3;!H"2KA*N&8"UY1; MWFRP(XSQ7*:,O)W4.T-!)[(4!ROBS*R$>\:^J@J]E+S/E?<+PIQ=ZFO4RJCI M\7[=@3C)^ZS63,V8O,^H\85D>-8,S\3-5 -CW6B$7\8]_/AG?SIA#\.>95'C MA;LN\_D@XI>ER F)S=O8SXNDG?>TU13,T('@_(_M0,PN37I^XM^,6N\RZEW' M.O^W_]-$C>+E\=T"*IJ(+=3>3VJI* B+)F4W;Q,@*BNXTIDCP&Q5^(X2VZN;%:0,'2':C Y8'+>,0Y*"P76-U* M+$LLET4O/S&@A:8X3.4L^@[K&/OI^?NA(C@H'KJ"*@<%W0*K80E="=V]T;JE MA^,> :-0.DT"HSC *)3&F#=V?KUDI .GWZ-."UX1>HF!6C&3PY!XR=@]E]BY M/+A$6P/[PMDT%O3;17M23@=+:Y]2,K#@RE>3+,Y-1E..R*:U_RH9N+]V=.4N MQKXP=JL=F?TRFY)?9;.2DJ/[910EO_;7!H;.XO,R;KAPQKK8V$J+'V#^/ WX M_)4:*GR%_]R-)Y;YN@]9K#$F-N/^RAD67EKGG!K)T%TQ-#T':&,)_>QJNBIJ M$/@O2\K86#,MG\1*!I=<@K\R:K.1J9=6(2^?7_FD53*S1)(9E.@*?U\B9JZ8 M7_DD4S*S1))YZUJP3'0\#+_; M7A>&8G-OV30\I1H]F?T2/,FIO9L&Y,"5FW.*V22IWD7C%D;UDB%CC%"C,U64[YDWKZB?S182LPZ'\]=XO_W"P/.FDY&F7.,1'6W@!NB)_NK6 MM)CV4O"\S'6$#)UTB*+H4@!M,X"(-=!JWFP_BN7,G0TB!I?3E*?=)\HMR\&2 MPB>%[Y"$;WP".S/8INL]^[QU^#LFEE"""N&K2 F2$K2WCM.'&%;A>WTF_)K?EH$32GY-_>[3S'D[^>"V],+$V^ARQ<'/S!2J'D M8BEDD5FF/:$*NV9#[!*PC[R,G,+ARJ7D:,ED],Y07?3A]]+E61S\P&0XT7;:![!WL_3P6!=&K[/'68KC/%<:GN'\;O6Q2X M0,=8CORS10VUF.SV-PHVF&Z A=B33A,FV9WJ2\)Y/ &'W5H\F D.2B2 ,KA:[<%[ ME6&Y7"R"#<9 O;*8JCD!=KVM\:^:P1Z&XKM;JN"AUJFXC3NP-56CUO2+2T&- M.6;1BS2]IX6GI3>BR/9[TLM(ZH]F*6$S@IZ'E3) [T\,9CC,&N/#9ZW/F.+" M7?KP^5>SZ$W/RHO2^(^.8.*,".]9N5]R$05H,:LG]FKJKYKQ,G^)!VVIRD/! MQ:6PC$')[0%:7ADMBL2H88F1PB.%IZ3",[>ALR ^JS9T%B[==ELN0M)VXKX] MP;K,J]D,R[6Q._8^_R>U-,RW?(+'\:\_ZZ:)W[P\CTS+06?A,S5^_%MC.JSN M5/:&%Q9;"LLK!FL?C=NG :>/+OEN:IC=VT]J$2_>9.*C1LIX'C).WZ2,'Y", MA]DM95S*.'S]: %CI2!+09X7Y*!H]QPZRB6P]A%($3ILST,NN809DG)#>SNWF,Y/ MS-@C;4)TS?CQ9.KSU,,?'9O6RTFC5FN>6/#U"5YW1*BE6*LO]JXX&5+%J0Y- MTS%,AQT1QWQB0_NWH^%PV%8']<9IM=4ZJU5;M'E:I8PJU4&#JBJCC69CT#XB M0\L:_:M6#5\W@5?"+=O!MNPE@.ED@@?^);;J6 MPFR@$;X?,:IR+JG:ZR7Y&R&?\ 7\2\C__/V-UB[X9_/??IH0VYDB>89 [^J0 MCC5]>MX'Z-CDGOTD3^:8&A?\.UO[+SNOUR:.>/N*SHSAG!NF-:;Z!?*J2G7M MQ3C' T[,NAA3ZT4SSO$'_$O-0 2?G\'[H\OO]W?]FVORW._U;Y[)\\W5]Z>[ M_AV\[-U?DYO_>_5[[_[+#;EZ^/;M[OGY[N'^T\D$!IW/:(\N_T6!RJ#!3*-" MKH^OCDFCUFZ=Y3N&3X/+VX>G;P3A;YC&/8BLI2D$\ZE@#<2T\VM3X6*,^O6( M>.(""%R:1GIT6:]5_Y=#97;#2T#$X#+EJN%CDE"#'_W[O/?5OGK[^FSS=/#X\]GDB]_4']2!YN2?_WF[",!?+5N^KCU_6S9FL'5!::X-:TB#-BY"^? ME$08 L*=7_+)GE##'Q3_M0K.L3@_>4Y7>_&ZPR4_7 M O*1T^Y&+-;FX'BNPB=C8-5(I=,IHQ8S8N+Q6^_IZG?2K%<(?KJ(2G\>)QM- MY!T-MOGY"NC^NH#=7S=67YDHH36Z_^%I#^<4(?+UTT7%RC^)@>,^K#-MC1^2 M3EVSUI9HUOY3[_[YCNO/W%0K^9^_7-.Y6""W^/""S*A..-G)'-V)1WCB49Z\ MT[8D3'LRKV^=@,*^PD4/EOP)?\#UY?_N-0CA"5?F>*S9N 0BMYK."+ ;EC'G M)"6=>\.7/7AG<>.8(*S5<&NMTSI=I4GS=C4WH,?WVT?29\K(,'7S16-VA=P9 MRO'.!O_AY@W6;9PMQ!P2B[U@;0/X/:$VL2=,P36S2C2#:(Y-E!'W,C[F.\8Y MJ#NX!9S@N3\UU1G!R]HOWLVK.ALZY]1U3/\#"YO.B4\ C$S7\< <+&1^.ZJ) M]Q-8L?KO!Z8%7,67EY] AZJP@'=@]>BH_MA>F>7@R71O8J 5)A=$C(*T811' ML'8H)$+72"S U;0FWD^?<6/U"JM=6=,K4V7O#0W?>L5&\'B?V$[3-2S7?X*3 MM4[(/YTXZB$0O4_?[KP=+-%):C.=V8(E6;UUUJW%H^<)(/EOQ87S!XXZ I;8 M!%-LD?^XEF:K&F_#BDI,"R.47V:]4$/[+W__L>BX^7!W_'3\?$QNQA/=G,+T MYAE/[LWCC^]X=>*IH!.N'O?-[>_NG1GZG8'R>'8LQ M9U&4*LOWFN:>? 4O'ZR^^3.N+@12#EQKBGY\TF=R@7FP'D$-@W#$W>_ZUGN_ MVQ7K<8\F:'W]_],FPB3$TU'UL_8[]50AWY][N_.-O.F@3IE80#AM0G7"WICB M8ID+^!B$DMD?R0>8*L&YKG2,#D'X/BP%",*^9S&Z 23.NN^<_(_+$8@]%O7' MD6ELMIYHMC%.7UMK&?-#W5/@@_]JPQ)49Q.<%#'XK"IHW707W5 "_A&%2:Z! M7<;^>$[/_#/NGYR9=0N7@8U&&%:X[PMOJ% ;%4(-U?]LJ-D 3X([A\#"(:ZD MC!=86-FHCXE.;0?67JCB]U&%S#V!GP[@+4V]U22S8)X3U[)=7%8Z)H$KN"=3 M;WP8?$3EBALJ/<4YSW)8^[F(%!=4!Z;CF.-S4I^\$=O4-958+X,/M0K!_SY> MD$7W=:RIJLX"#[95.^[\&#J'^SH58XW9F^V,.I@&OR"_32PR,DE 1WS7B!L*6YV[$ M,K?)4]?3>F/ A2VFVX2;PT#>9\=4?KQWG=*3T#!E-Q#/(E#6DTDADC')^OWV ML9\7.1-8!6'<"D#T/G@,:R%]XVD#5!'O-R915VRT)WG?>[[NO4\ X2) ,$N# M.>3K\=?CJ^.2;<_,/>'.P'JK#B.#*3BQ#*:.=:)!SS*^%X>N7"B(\*'^D8RH M#>ZO#DX@U77/RT7?\"]70\\0',(!\RZ >P;.81-W[D2@T',10YZESUIT&_%K M#!02%;X%&XB73BRF,&X1ZPW"P_8V^0#W Q 0VP6+8..I#QBO%[QS1M19'/M/ M.C]*'*+XL3>'C\+#_] 0:[VR0>D1/>BT6P<>Q#DK$03Y&EGLA)&T:H HM\H#P*"L+. M0B,1^2D!ZE8COK!A,/#"LS(H%%@OCAK3"EI$N!F8$1SI"WFQS)_.R/_Z& PD MXR-3V1"KF&&Z,XH=)=%'LUT8LD M6'1JW2RE>9,0_8R(&21=;HL(_R[%8,/-4BNQGO3^;[_PGUZ)7^;!@B6,*-.2?[C"Z\" M9*2KI VC5B)\_0$ZPC#Y\L&UA<<"/! '%B+R:L'IP6?I4WSX3PT>#8\E!DS' M1/_C5;.YSC&HH6A41_\&\]'P8CPAIU)+M0DFH&GJLCA4\P/]&.EO)#MR,\/+ MP?G ]@C<%Q\:Y ,PG/NB(H.4KQ67.G40M9C^X#E<1H"N.",;G&7>Y75@[<3KSJXX MPHH&#[-_.[J[OYT_%62X8]5TO OFF>2?>6Y7:XVCRVZE4V]5ZF==GS7^*"]! M9G L\]G78F%T=F&3<*"E0OY1.Z[5R81:Y)7J+JN0G\QBQ)S- ].VX4[?Z)0T MQ(FC/,5*U5Y%D/:WH\-$!$GK$47! U__Y:%@%HR4^7_P"%USD\S%R/*'\]C[\U_@=^1Y4?8&9=0ZW.?W6$8Z0O;.[L)HQ<[%;-]HK> M;2,M;C.%)_IN^#%FOBBT8=WFJQ.Q N*O"2Y,Q2N""TW0:CB!WXX:[VQ$&V_P MB9*1A5;T[Y-Z< 6Z154@#5K.<_8VT@8:DNZQ]]0G=Z1*;N_N>_=7=[VO!.ST MP].W7I^7/J"7?%T6>OK\$]L+"V%OP'P9%SGX^9]W:JC!/5I[5DV<%0Q/0EL[ MC3N'C4G]>/UXZXU&!QZYZ?UO@Q42SP;GH:RN7#O M%?1<#88%TOI'8(.Y@X\,\V*P\F".O8X(5R:>YL0%([SB*0Q\Q^JSN =YYC<) M?"A+&04'MW$[6X#DFBFB1(SW58-\< WJJAK0[=UE]^D!M^_\TX0G)GQCMZ7+;S8H9" M[=%0-W\FU3SS/+B"NY%;O-T>",%LZI>=O,@=;/-AD:FU-+_'BW"GCP?#M3%9 MPH3<3./"\"^[\>F6R.EHQ'(Z&LQ]@'?J 'N*E+T5YM<:[;BBHH"J"=Z M!M6GML:1/V,!\DAL .,U3\QV=2$<#Q,F_.',W);&T67]+&.6-&.QI)F<)6L? M\+^X_ZT!T-'D(HWA ]U_CRS23=O%':G>P'0=/[/Q2;-_9$7WYM%E8P.G)A'= M6['HWDI.][4/ & [%F@_3O-'RU28BF3.BJBMS8BZP8ILK="+%1DNR1[ZO]\\ M;;P0/]Q9/!DN(R@@2.Y;&S@KB:C)HU'SEYR>JY] M NHL<@N?F59VM*0Y$#.N'4]*RK7W_VZ$SO(]4UW$*[S502@O&U7;=YL?R/%P MG!GA&SG0/:ZQ3DKWM?>_9D/*_1]W@D$@9FBP+)C1.RO:-G.@;5R#G)2V:^__ M33,88'G( ,(AMR90;)#A QM9V2N2TJ& 1U4)K63?$YN#*;O:'90%9.U4_7$G%" M/V4KM^!'STGX9 K"4==YUZ'7^XRDKY(K UCZ1N3:CZ> MOC&QMHMP9QE[3S5L^RZD3'D; 8P%.GA(6;ST9!PKO%-OS7G.ZW$GK)0]N%P2 M0@F#!0CS1 MX\7"IW-,B154G)M4(;)3/MP9Q!F9K@V+-J \>U/8Q!'9: 1F0#_FS8,/WT,! MBUR38V::5B12>$I[J!E]?!]MCQ/G3BP4%D9G-.$YH"4)^T24!4!8SYRHY#DM MRXX)I'C'"-,'RTN?;D&; MN)20,,@/!G-9)O.,SW4<&$HN$N[\8TYK5%^$XX\W;=1:%=)HGL+_VNV/:2E( M?UW0754I-ML\0H^!G&L]VPX['!G*:PIW_#0(;CJX7+QQNL*_YF&%O+$D>.P; M;ZD9VFVN%-+5#/EI@Z-+K\0#H5S\S_= ]N4=#_..1;3AN4EJ\%=$''C*'X9- M,9V.8/[B*]5% EJ$_/H+T%^V4\O1[$WEYN\][*/+?RQ[4B/E1T6'!Q:.!>(F M#V\/V6RUSZ+/[/'3E+-S@-^?KX^\TX1!=UC@5L]0\9^;&<]ZSA6U+#RH_$\\ MGA<<*FRN/#4X.U]8;1Y==BKM6O/=*<'<>)4A-"3N?-QU:A&X:V#+\-WAKE5I MM>O%P-U!>W(+]N&)*0S8/-!Q=]S MA-[:1;6W7SG$EE/:@EZHMZ$/6/4/7." M@:6FQ5/[ MI)[/0@B;2?6\SYLIR%XRH>M4.M@&O0A")R&5(J1:2?7Z]I!J5MK-3C$@)9WV MF1Y_M-B$:BIA;Q-,#!%Y\:)9H3*W2[NG6G[+B'&.DAM[I*L$O)W49G@XN!$P MV,9C:U8ZC9VM"5)BM\1S0?#<26JPTL1S8W=KW-(D'N1OW[P3^7W3H;JT95G* M?LP./YLZJ]W$^UR+MM.V17.]48 1[ MA>2#7I_Q-9DY@2E/*V2B8[UB7))AN'V"Q4ED:"7#_9'$07:?98_(L)ZAWOCL M2KQ?E#[+12ZQ8D>G?02Q9XTA?35']JNBX5>S92 MESAF[C,FH?/5K-3;,I!2/CPE#I!OC:=:X[08>#IT+_W.<*CQHN$A3+&K)#WS M# 5NBV"XSR:QF 9OZ>9-T5T\KKJ5,':Z.2ZLI6[/#VI;!,FS@MIII=DI1\;K MWGOJV$+P+RQ#.M28BCVCF(65YK"1%#-LT5,8MVVD(#8'L.'. M84$.5QZZR^];=2(:Z!"'OLE3#UD)8^(0K,\ET9JI3]^"17@R :RT6S+^6CI\ MG2:.OZ:.KY;TZXNAWT4I\+UVZ \KH>XT<3B7L]H37--0MDH+;W?RL@\R0;3D M>$X<3DX3SYWXM-AN99K=(]S2L%,"[ERF3&#AK2B0/IVT"Z>UJIG^T9I--?@"V >C=O M#]I +R]Z_%6C TV?=:$+M[/VVF7PEM9PJ=>W3A9(WO!AA;RQ)'CL&Q_ZCI1? M(%F?J0I9)5G>L:AW/&A#OU!0QZ^ 1R9TBO7O2K,8+W"1VM/DI0(\;CT*9FUS MTKI1J[3:,CVDY$A+?I0_/:35SRIG)4D'WV]/[;WJMUPVJZ6VIZJ_\"'\Q"DB M'H-""_"MQ+!3Z78*$L*7^$H/7V>)4T32Q5>C6:GOKI*>]/"7J?D@'=!BK\QP M]]7#+[P8)D[RN()?X0W_I3FC*]<&8#++E\GI=J4 V[E%RZ3"SP]IB=,O,D-: MJ]+I%J1NA/3P9ZJ?)_B'=V6E[L]&(C?/AEAY)",5F6Q4SIK2W2\?UC9/4\@# M:VW9]:1X^O\N= !HSS?X"R^6B0_Z>ZOPX)S&%JOPEF@V5RN&)$IXI0BOQ&?\ M4X07/P;4*J@ZSQL#!P;[6^2KJN8ILVD>< M)8X+?P5F]X'7U\#JQ.+=0>M1J^W,>LAF*.5"<^+8\^&B62Y>:LM:H>S_+E91 MQ3^;0X)GB*<4CVXW=G:R01U[+A>9V+7&0/2TTMW-,HBK$@=?]7J!A]&5N M!58AS"^N&M@TS;#!Q.G8%6%?C5H!G-75@ILX+!_V0K].. ZZ/7+A2R]EJOP)2Y!\*XT5LA'6U$?Z[_,,E5JCQ9=LVHQ M9$]B*T5L):X%D!!;J[.K9.6U8JAW64Q_MU*9:C']6>*+3FV;LW0;3XS'WKLR M]EY"V*5:7S]EV(F2^[F5]I/^_^HM'YEPFX](IEQP/Q#*+46Q7J^<=@M2!EWB M+46\I5QS/S6\U2JG;7FTNA"Z7Y1EWG_=?V"!O<1A:L[O\.I^2U$^J[1.\S(= M,EQ=;E37$X>KTT0U+(GKIY5&(Z\U<2'"UON]AHG.P9)&;<_$/WG0>\;IA$W' M6I7&65[;U=*,E1S'R>/K6^.X5NGDUE"I$(9K80%&%-R?_.WHR^W_^7>K>GW[ M'2X>5RWUI>J,X*?,4LTQJRJZ!JY!U6*VZ5H*LZM7MOWDO:F.G+%>U36#W3EL M7'UMO%:IJFI(QWTSBWC$QAR/-8>G:O$RR(A+6-DS0UEF%=-7(86\HSVAAG^[ MJLV4JO96'6FJRHQS7XQ;L\?CU04O4[Q'=XQ!^W9.M#]HMQF>%"Z+[I=$)XS7 M0Y>UD.4=BWK'@]ZU73A%^VCY&1TV"G.%Q-&O9S#I]97_SBNU0,ES/\A M$VJ15ZJ[+-:S&O5XSVK@.>U:K2;R0N<>:(\H^&J$NL[(M(!4ZD6L!S?C/1CL MO&%&/U&S;9>I>[I[4/3P5#WQP>$ \MQ\_1.A*-,?=W[SG>,I\='=\N#IH/W9 M^6U@ 1\-%OUX>?4L6 ^;Q@:6LM&-9T1.T["4\:QRL\;KX*=I*D% +KN53JM1 M@4'XM\+]@CB_;?+?UAN5LVXMTG[R.YFN8SOP0C->*@2^FS 0DU>F3RL"OX0Z MY!NUE!%IU@%_8 GBC;PAGEZO-%JM34?>PM^V3[$\3'OIR+WA+1\_COR:*6P\ M8)8_^(;T&3+1\8W$R;1"\M1W"M- %KF:S4ZEU"W+21JX39QNH3\RAFH$MA:AE@'N_K]E"A9?"Q/M] M/H=N/ ;U%,4=NSIUF'K-AIJB):S_#&O69K-=#(F42$L1:8EW K-"6JU1:9]) M3[]PNC_$7V+RHQ!X+-IB(V;8VBLCNFE+<["%D'Y8):7;M)CSN<8SOZ_"/!,U M#+X"X^Z9\S#LT[\PM-Q.UP1?)2X2QUWK6U:SV6+NU8(=YWZ#M<* M'^4R8=%4]"U&;=>:BN 1;OHKINW$"NRTT 4XJ[3;9XMAFL681]S01:NU_(YE MB464,&M\I5I*?/S!1R;?B1:;TLGWH]NG.S-WL1F^AU;QT,"<^ S$H8+YH%=E MP9D]>WD^LK1B11'\57*?.(X3SD2_X0Q/MM/2ZE1:IZV].@(EX5Q8."<.'*4% MYV:W D*U5W ^Z$5CU.ESOJ@+6[9?]]RDK16_)B!'-=V!SA;5PC]VI1&6#6EC ME9"\W=4,$3U#34E!-,]JE6YNS>WBTK1,!N^@P9Z\&U8F8.^>[JX[3E*P"W-X MX@Q,=8KOL)WM)?D; <6O:J_B5:1I^G5AH+]>S(;(1SAGC#Q;Y)FB^6%,5CQE MX2$;/Z,_8H0JCQA3;A!BF@R;/@H\!2X"=%XNGT5D.-GAT1LQFB"F5&3:O M0FQP%X-'X(:\VIS&UX'P 3^V?KQZ^*D3"7CB%Q%X_/+YCZ-%3-5JOT0)H/<) MERG^T1&_W<+];OM/P0W#HJC 3)EU04(/\7X_=X/1L&J9/_UO%K]2F*Z3QR_W MW[^M?$:T3Q-'1(XNQ7,):?HC"" \]SK\H4O_C9_AW7J@KP3A0KAGU2(S2QMN-2.1(31 MD""9J8_0@SQ,SLGCI\'E]]M'TF?*R "FOF@X@SM# 44PN-S!8#Y1;A%G&LD< MBCX91\31'!Q"U%K1C[D/ZKM!754#OJUY=!86R=,4 MW'?PM.5O1QC&!JTSP?(TQDOPWIY0)7@O]!.@LH\_C39FR0W"_!&[&JCH0'$* M=\?7?&LW P*U2M*O%I#/G<$ 82#VMZ/.>NN;6I@^5STX %_/8HQ\@Y^/;'(# M;%=1/,F%?ZV]99/23*:_S' MNB?N^OQ&:R$S7/5B+'7X;X-#0Z_,<-FM98YAU>W@8_ZE.:,KUP90,PN6MZ*O M<<^V&?RG)DP4OSSK5KKM)27P\^1J#F"2B%V&V'8M K&-&6(;14)L%XNE+(FB M[!:Q*5FFQ62XE/V?/,OWVCQJ4BJ+E(X#NV>91.UZ"B8-X? P_&*:*@^J,NM5 M4YC];.IJ(CW0.:O4VGGK@51RC*0 [)\ -%*PD"D+0+M5J=>6M'W8"P'8AY7< MKLYK?;%,VR83RQQJ3DE,Y\Y4PJ:RWDS!V''^/7+V)4N=/:UT:TNZ#,IU68G! MUTK!T&P+OGJW4F\N.84@EUB%,1GPI&>FZ[RFYPLS&&:J_0\=3RX(5<>:H=D. M=D)]982]82OLTJS!]D:6VRD8$H_#7P1_P6_LS?'V1K VF9@W*[7:DK(NTL:4 M&)>=%&Q,EKBL56KU0OH^A+0P.4MR-P4+\]FU-8/9 M]I4Y'F@&Q6>$^/K$>,48W+M8VM9OP[8"TK:4&)&G*=B6[1&Y.H+477(DM13& MI31KFZL1-5X8T0PRI)K7B0+#24$72(>?O]%49G&(2-N3KZ2GD>80(>E7 7NO MPMSM61;"@1\X$,BX,WIC0+_S,%SR$_\4W[2>; NN[F$11O+A"]6,CP2@J6KVQ+2ICJ9O8ID3H,JT0B8ZW,';[<-R#!,$ M4$DLX&&&F#MIY%@@:A _#\8SZ(6'X:,'F$>$RXV/DRU+RNYQR%D*1,$$8E49 MODX:21?92<1E?>=9B!N6Z9,+S;5Y%P\3[F09+T3S3A"7PJ3NC?.=1NY%P,-9 M4>N$\ETY;14R#B%!F"D(T\C!2 6$K:/+3J7965)*72[;"F-%X$EW>)R.V8Z? M;5$A!BO+BFQO)#>-C N?D=N$L$\[9T6468F^3-&71EY%&NAK-I84#B^%Q2C' MN@/7&KQEDVQX/A8$I-1XCV+52H@C80,CHM[TS#G7<@M-,)L\VY9@UBY M>[=K$NRC)*S6MBU\ZH/#AB@@'D[=\2A;[YQ M+8E-W1M'.(W4D-F^B5]20#-QHIIV)\YN\5U??K&[)LWQZ(@6YI!K>F= MP\8VJ X ;YT&OI($=A[$4@C.V5[$6A53ML[+CZUG0ADO])<(A+[^+'T-.:7Y9^T MD(,Q:^YR#@*19S.)M.X,T_%OKBV5X<-^@"1^@@?(W;SE"Y3/U-:4TJY-]J#J M=3:[CK8ZTQ:FIV)", M[XK8Q'0=VZ$&MG^16R2E?8 D_NZV2$KINI9IBV237(Z(](MT;=H*=^!TXPRE M2$? -P@]80_NW?& 60]#?JW],#,'\XO1C:HX5MIG.T_E+Q1T#@.?&R<1[0Z? M+>F^[IG%*==FR=[(],99/9O(M,?3=Z*=4*H[I[(DS.$A=..DF]T@M,41VCS0 M@C'%R)4I4L*-S$XZN#4T*K+!Y94YGEALQ P;&T#=>8G0@[W<>1L$-Q]DLS>S M]P^0Q$_P +D.FM<:F-!X=U@G)I:>M=EYMGA*]6A.D^0XE?*\Q"$6GI'X/TV2 M2%7*PQ*R4W?JE=N4.1];G 4XWT,'6]Y9WCG^G:7;O#Q\<&M:#"9/%->RF*%, MB6-1P]9YA1?R0K6R]"@K>OV"C)R)-,I:<=,QMSLC? L/.E<>LL[ZYGTE4_ M3($Z2Z.T5O$%JIE[Q%#Z_EG;^_KITH6 M//[KI;2*-*U3"WA'H*TW-)R[[F( MI%'*:Q\*2KB!VXLIA>6>L(U$P:Y;XB-(RO79)5#:Q5&LV\,\]E M]2\I$5PBTJC^E;9$M$$@]KH<7MBNPNN!J4[%5_ &70[^YM.)JKV*5Y'V[=>% MH?]Z,1LT'_.<1?,,FF?/Y@+ZF1"+0<[CH.+9N-I3D/%8JLJON+>"\7#GD/-H(:BP>6V Q_P'O;' MJX>?.I& )T31J0U0?/SR^8^C1935:K]$B:?W"9;ZN>GF]X?U=YM_^;IG%#])YW:ONRA4V:P.2)4"5X+Y0"&+,^_C3:@B37PD)0-404MS1OP8+[4\C1B+.<_''USC-'ITZ3YE"0DR>$BLY/2E3MM6 MS^_$?GZ>W-\+!R7=T-+GN*XHY=G?(Z M#0-TV[+SWW(7'2F?Y9-/R3S)/,D\N58M/;0^L7%X4N=$,T;,TL+;=6Q\*?6& M9.Z>,_? /.X5K.^IJH;1?JJ'V"_]<2G=4KI+(-TF9NA*P9:"70[!ELPM,7.E MUO99WS>=0KAC%CU13JW@>=^?:4'(_?^X_,8=J!L8))?L/D/USY_(/$P/2Y=C>Y>A;C-JN M-95.A]0[L; 4/AKP:P'TCER([0ZA"82X0$#F'2D.3MFE-Q:)N$WCB6/3-1R) M.(FXO!!W12=:7ONE$G(2)(Y(-NVG@N6 )/ D^N(23B MRH@XN8:0B,O9H?/J?>P+XE*J(YEI3>?Y;<-[JC6JS_F=0DT>((%:V,PTLT=-[ MT^RJ2!;AV_&AMKK?.$?7]>I-JU]T^S3O6I$'50-R?6W'7>.W4= M>@'4\K-P:K<0 ]G/N. *%&YS;L@U=AP+@M#@X.D3=V\X4NIFY#C-= MVS[M[A[#)="UA87O*O1VEJ,W'P>VV:VT6^W= W _>RCM:N^;&\_J@(I.#^,) M^(N\1Z;<\,Y5>KNQNAYEN?>-O[JS;9>IUZX%/WMDEF:JPK?B__^,&+D*0219 MP\+3(FH(">XLP7V:([B7&;CWT/XGU5VV&;+_RRQ3I?9H$=15B>E#PW2\QO 9 M;YBG NK5G>\JM;;CNK1OC.[$N^E25TLTIXGF>,V]<]Q?EP"7 $\3 MX%&MN3<&>/+]]_26CA+317G(SC$=KP]TAAOS4DE+0*<)Z*@VSILV-C_T59_, M8E^^DW_SQBQ%LQEV*N7]3HDY0;[9Q&"\L;/-#3(!K]7&$P\JXH$P[U=ROS]7 M9= N]GX_OZ5 CP\K-=EV?Q&UB(1VEM#N[':WOZ?^Q[4=WK.Y;R[98(TVE6'4 M/V&7:%MSV#.S7C6%">EX8HKY8FC2X9."$$,04HGI;A$BV+$DK/8P:V=2( Y- M(%*) R>)*DB;($6@&"*03M@XG5"$E HI%860BE8JX>:,XA>;+(4EI(ORD)U# M.I68<\+PA53L4@J*(07Q M.%1O,^+F/E@8?E89)[YHA("+&9X^A<^6)TY.GY M^Z^VC(*DKAY6';EKI1+DW[[D#^J26]/JT[=_:"#%$.JC?KN%44) MCN85"=FK@!TOV%_ (,@3LQU+4QRF\N=^AX>D[@G.3JQ*E["4DK%2YZ<2^MY) M6"15V5AM+2KM1@%JR$F#D9O!2"5JGF]L1)H**1.9RD0Z ?1=!TNDF*2\8[#S MMG>I/40T=5\A :E$S+&IO]VY%@N@XG&168NW)/J.FUUG4IL M._>0AU3/4BPR7?"VXT6W]P+?>[=HE0=&ED=",.6!-STPAUCZ"32M.#\E;*03^)=&X@RGWU=,7[.4- MNJM>;^Z="XOD'D>\[+%I-?31L\:>=AV*=OCZ:%P^XYCJ4-7(<. M=-8W'\'7-ASIGTB KP%X.L6KD^]&2X1+A&>+\%3"ADEVJ"6T);2SA78ZH<1T M]JXS0OOJ\I]G30GZ4H)>+KP.@[_2<$MT9XON> $Z:7!EW?Y4 M"M*4:H,8N&BIS*H*9L*'DS=BF[JFF*.?#?F(UVN M%VDLA4+@"INUXS:[H,=F]JWH+I84)2E**T1IU]U]I2P5$[]%&LN>R%)W9[V$ M8PG1RM746:7;S+O IY0F*4URF2$1*!$H$7C("%SA4>RR-;#TS(N)W2*-95_D M*(V.Q-+)ELGPRV,;GP:7GZG.B\Q0AWRCEC(BS3K,$=#UZ61P6=*(1Q/PI)KN M0&>%U!_+AK>Q EG( =#RK-D?^EDBM=.M=.IYQTKC\J$8!CDTO($.2BNG422& M[]'E/\HB6)VL!6O9(38L[\DL6]PZF5QUI%!)H2JB4'43"]6VQ7RVEZIFJ]+M M=J5D2I1KU1:3;;4J:D3.U*IE:5#>Z>)3=7*18[VEK. M9K6OZ_6\#=@6.,JV]4U!Y.PPMRU.:XDE:\M6"EOM6;3 "ZQ):U4\*9+6"F2J MGJE,Y6"=VJ?2.DFY*IJI:BP7JWP62:U.I76:=Q&J5,U..#X'KP>F.A5?P1L\ M;\7??#I1M5?Q*HB-A4-92\)?<:8W&]-$/,!_$M"-;3:"(6\/#\><+ _=QHSP>H0[:^89%YW3 @K0FEDB5MH?68R1;W"# MD4UN@ WJ?,RTL39F6BBJ+NG"M6' /--0>"G:R/&' 'S\YPR6JN<(X&VCIV?6 M-.;S\YRK9)YDGF2>9)YD7H&8%WB",T*^7YN%A[7$Q5NX^<7LKORF4TGC MD)IQ)X#"$XA5S2B(;I0@V D(_&-S$@6'C(*Y)J.'"P7ICJ3BCOCG,*1#(K70 M)I *GS3XM2!:2"[9=@?4!+)<+#SSHYH'J?K2&XL$7H*HY-AT#4<"3P(O9^!Y MY8PD\B3R7_9'0D]"+V?H^2WW)/ D\.3Z0@*O_,"3ZPL)O-UX>;S^R'X! M;\,=Q(/J6#Q?U?^:*;QWH[)9\7K M[;H$\"$#N!Y5#C<>@'=8O;W>J55.:SLOV2FANU/H1E6=C:E[\ZZ17I2>D"6& M\)ZLUNI115WCH?;0ZH^7&*R%U;M2JM5MX-\F07VRWWN[GQK ZHS3#^,YZ DTB1;W*3.U?I;4>TJV[,VE4W MLF\\B[^ZLVV7J=>N!3][9)9FJL*WXO__C!BY"D$DD9HHIH:0X,X2W)T(H ;]32 'CR+?CT5H\2TT5YR,XQ7<\+TU))[QIK MAP'H1BQ %V3-UR@B/F7J^O*M_'OF$!L10&SF.#I7B<0^&6TJUI]>G;OS1GA%$^N %\D):F:!U=-@J0.%&"H'.1D+T*V*W= M;N;WU/^XMH,WMOOFDJW3:' _,=NQ- 46[_RYW^$A]A.#T=F:PYZ9]:HI3-C2 M)Z:8+X:6P*F;Y6)([ZZ4DK%2YZ<2Q-TB'% 0V5@=):LTSLYV+QO28.1F,%*) M_B8))!1$'*2ID#*Q*!/I!([3"4=(,9%B4E Q224&O>6Y@G16T!+=$MV+Z$XE M)ITPO"&5OA2+@BZCF_%"V7N![[U;"LNC$LOC*]S))G.-*8A?:5$&5](VG,M+ M;E6]:EO2#NP_EU>8@7C!\LP"#(MP@42X1+AV2(\E5AQDJU_"6T)[6RAG4ZL-YT= M_(S0OKJZVJD\$U9.T,N%UR%P>85J2R4XF7!?6AINB>YLT1TOIB@-KDS(3R4A MOU0;Q#';#Q1'%<0>\(Z]GIAM'79C/M+E>I'&4B@$+K=9K50.]R;?"@<]-K-O M17>QI"A)45HA2JF<*=YBTUW*4C'Q6Z2Q[(LLI1*A3;*]'TN(5IEN)^]8 M:4RB%\0@AX8WT$%IY32*+;!:@/8[Z0A65#?@7!H@I- -.._6'5*HI%#%$JJH M-L7Y-%](H4UQL])N-:5D2U*IY-W[WHI4U*F8LE4 M5&/G_!M0I&"Y-I*4724 6#756)IQW5$3O[ MKAOEZH@=GQ79UJ25L"VR&^.)A3UPJD*%F M4$/1X"+;5]KV\>I!ITX:X 11=&H#!!^_?/[C:!%;M=HO4?+F?<)%F7_DA4_G M[W?;?PIN&-8 "LR464&,%!_BAU_#-Q@-JY;Y,PC,+GRE,%TGCU_NOW];^8SH M*&H<43FZ]$2.M -T^\"=>QU^.0JBT8^]+S?5ST\WO3^JO=O^S=,YH?I/.K5] MB<,(KL'FB'!!1DQ0M#%YNR!>L/KO-?XG*H[M?75$3J+(__MU-/F1CVD0O_]P M]54S?LSH)+ 5EUBA5_CB;_-W6*%*O#_KDA62I?H&^:4 M28!EF4*9/PZ#1#F$'&0/1P:Q8;# M/I6AZ=9R3]7F*R"^?B)#RQP3<\(LZN!F$F[]O6H.+/S.<_:$TKHS3,^_^6#I M%N9A/T 2/\$#]N'TAZQFE?+*=%V,J=[8:P[IVS*N\L[YS99G&Y7=#@[QE_ZC6;@ ;1>,\V0@V5T#%6W/TO M_Z D'FK[\S3 0N'E($#9 M2:./9&:@;%9J];S/TTJO=4N;@VL4\N$+U8R/!,"F:O;$M*F..2;@K(*+ZDPK M9*+#W-S5(R&?D^(-QS1G-#PH_#'NVS9Q$ M2]597GHA2_E+2&Y-U%6G*3KQRJ7FC,G+>F/W6-R[%L2[,D#\Q%EU@#VK>2-B MOVFU-"_YFI>HUIV;FI?H]N,).XG7VH5T)B4,,X5AO/Z:N<&PF.0!.=AN.0G7S4ZT'3-F=83 M[LV=MO,N?B0MU^YQG4:!VAWCNBBEH$M3RG9WD:0ALRQ84?DQ:/K&;&GH>H<*_5_"AMNVF7;N5=TFQ=5LE$I/98C*-7K'I8[(5 MPF2KE7?UH)RV[\JQV@I66#8NL4))3'R_EJ*%AYK'S&KIGX%]:9BH(+37O&WJ19SIT" M;)1(]S-'0,;K5;LS0+8Z!YMY"[(49D?VUN6$$>3 MIB"V6P638(G$;)$8E;BPO4G9%HG=RFFC /D+,@TIIBUYM-B$:BIA;Y@PP,1& MAHD5Z8GB6A9&C<4.A[0T._E7DCV-XS1!>"+9(/FT4XF"$- M4(X C=?AMS K5>Z94V0+>4JA_-;&I_=R'8:I2G>RS9GZ8,?.DDJRRV4Y=-V MT:)E$I)9IAEUTZA0D14BPZD%S5J9*UB4<@WD;Z.2"9WB)JJT-OF*=E1N1GK1 MFD?!U&1I\ 5($RH04@X#CE$5$-*+U6P#QU:E7BLD(N4Z9J5UL5PVVV&3UB7? MM;\&G_TIS1E6L#K)D5'&W:LH9)I796@%T+:7MR6^2<9I,] MD#I&+[MG!4B5E N>S=+39F?OY);:;L0[F^2!T,$G;QOCGCD/P]#'6V:B-BK= M(KB:!4+28< UFU2";.'*PY#U9@'"D#+:LXEYNC>-ZE\N$&"HP1I)]1=+X1I< MO/!C*!,N=+"O)(9L>7^FS3K(YZ YU@]UE6;)(Y%ARYV6RU9[YT4DT\*#1'ZN M3%FY#9%'QD1JFXR-LYUGC:\GM\S=6VMCZZ?"V1OP)E/OFG]\<&U>G>5C9!N0 MM6WKRJ!F-NJ'60AMLS#B53HGC50. XV.7ST8/-Y^MW&FANS+*T +TGS@!MY M[RG%(VV9EZ(EEH>51CB-9))L!2(.!FC6(UXY79LE'LH3Q M$C_! Z1/OR*/355YBP+>\6^A1TJ%;Y;)%BD[RC@X2Z-'RB.=\JJJ?;.G ",M M]NCQ^!$YW#/4&Y^]"4,[]6X!VLS*'(,<89E&FY3,8=EL%JURAG1F5V53 [M% MKQPL;M]37[GYP4ZS6.L>?5XJ<*)**Y1K$/5/_U:WR%.]MXTNRI8^8VI M"/%O;#Q@UH::P;\SLWF<%Q= WC?JAI6_9VOB0I8 ET#.UF[%:\92+"2OMG*U M2K=3M Q/N=B*;>:N>\_$PU.%_#2M'[B-H]")YE"=T* 9N[1X^5J\>"U=ENJ) M:VI+J&)VI,*9Z 0L;>(_&;ZB],;5< MA8!*E82T2K>DT0K&1\4M@.(9,/$P3'D+:-=J0B;?E0[W:;2;R1KWNZ^&EP0. M4LNW2%XI&Y:R[\R6J3+?+*-UNJ!G44&2ZW8$\0!)?IMMEN!=& M,:2HP(/ X%GLU=1?4;/HFL%WR!3>?[0D#GV!G))5:_S36AIE?L)K_*^X#_XP M%,UD-_NZPN9XP3EI98HCVVE4 M\GEB$X^S#\-8LBWS! X4B2MW5]*HTK,Q%%>:F6XQK(Q,:XN]J-$,19M0G4P" M4S,DNFF\5!UFC8&[ VE@\A;K-$KDS(DUL+,/W+P&9B:2ZGH!I5J",%L0IE&L MIO0@E&N7S4R+X>W",Z)C\2)B#H ^O,);61+)]D? TZ@,;T+:6=RA6$:]5@. (9R$1,W,N.,&&%OS%(TF^^2V8ZI_"#F1%J9_#?+ MZFFT^IE+NT1F/@A>WGA,3G8"KUXK0/&# D'E,/"81H.?Q'A<1M=AG<&/5JU#Y\X2%5-J-/3A0 M4(+%UN$(02IY#7D*0;W2.-NYGR?K6*=@>=?4L8[*[I6':@JI:6)7KSZMIY%K ML>3XP*T/F"VK5X.9[>;=+4)6KSY0>4@CX2-C>:B?5CJG>9^B25,@Y,)W^<+W M9CAD"E_W AX8D($HKF4Q0YD2]J:,J/'"B 5>'0_UB=I_ABI>8"W:5T"3D4?- M"#*A*CJ3841(Q;2E8EJY,D@C9T6@ZV%XXT'I"9#T8*"RPK\W,P ]!3LKO#J- MHWWS2V[1B_IX<'I?CM M@_BMDKXTDG7V4_HN6P5NU;86OW./F(%C1UZ%H5: M0NT\G)9&#M%6&N:169JIOF^*Y^F=L"X3^BWA&K_6WOE6>J&05QYXK_1JTTA. M*CZ^9QYLM]+:O1,KR546Y./.5_%LOR\WT Q6C>H08U4LA1O5ZI5[/N[Y; ??@2[8NCFGS M&7Q>2FN_5@TT 7.JZ0YTMJ@'_E% I;5\M*NT5B-":V6_SLY#:W4J[=J.^T O M8TFIK;\4*Q"K9J1/70:Q:E8ZN6]>I2I686< 7@],=2J^@C<4[LG??#I1M5?Q M*M(H_[HP]%\O9H/F8YXSPYX5]HSP_, F*YZR\)"-G]$?,4(5Q1Q/J#'%5;MA M8C"=6O Q%HYVV(O%#]1:/ COC)C-$+$(4G=H Q<AU^. D_XL??EIOKYZ:;W1[5WV[]Y.B=4_TFGMB][Z$D:;(X(%V3$ M!$4;D[<+XCG*?Z_Q/U$^M/?5$3F)(O_OU]'D1SZF0?S^P]57S?@QHY/ 5EQB MK5,(Y!W8*X1_4B$V>,[#I:;'P^CBE#-3$*$'>:B;DSA8#7RBW)0% L^5QA%Q M-(<_?N'CD866[._PRQ-Z><_UBV.2.[RS-B97@3*Y"BN3VT"9/ ?*)%A:Y*I/ M!!QF6 CQ69BX>W<,,U'B!:;F;?F#]4(-[;_1<#$:S6[SK-,Z(@S,]P3%Q7*9K]*X"8O4BYSQ M&K*#*\&W"W!10##L"<4TO=^.:N*]EVO!WPO9QY>7GX2A7+%X=LP)XN>=[6]T M5ZYNU\G-HMBLY3$@^,,G-@X_[!QLW0CNAE_7/YVP,88$P@O9]Z.FKF/F/.K/ MU-9XO:0P-A;&R7T7WVL).RPYB4PF>@C;&VK#:>BYP1Z%!QYT9#1/I6S@GR Q MO]\^DCY31@88H1<-."0F!*[R,?F A[OA?:-65RZNA)LDWJH7'\E$L 'N#=AA MFE$A(_K*R( Q [\#KPF^FKB6[<*T4.GAW2Q79[9XA/"HR#-37(LGP/(M%C_& M!@IQ/-9L&U<.>+SO+Q>\,&;I4P*W-BU1WN06:.4Q8 6B:QS2U?_E]U=-LN): M4-K\8DR%@*4"^(%@&AU.7;$"P.'@;5"[$S7003:,2C1MP],1Z%.Z!N\Y,A'U M$6#2Y(49L++0=?X]FSBB/0G>_#LL>. =5VZ<*3VN4^DQZ7.7,\0Q>V2Z.CP$ M*,DHOP%P^3^N(998>"B2WW$]Z_U)V'B]Q8 ]2&7\[911"W>UX)Y8+)>;CYU5YU-_R]('S/,%P8Z1-G\L8\_J-"J T3UN'Y M 3'6(^QXC?R62$TL40\#JO-"0?:(,40'A^$J]G^CEC+R>=\4K$?J)H&,LWQ< M\\H*L&6.F=B*!5A9; 0_T5Z9_X4/X16#<, A8P)J8_AJ9,> >H*Y\MF)Q\2> M'3^VC.?RF&4+-7MVP7>;G6DQ9X97QIZ=$FH04:C)>'.!1;]K4%?EJGC@.A5? M@9D3S?#Z$(-0TA<^IR9L1=1!YL;BEBB'4.RWTFIH.0(?LEM M.\ 31$Z=E7^9\PS.+E#+:7><$77(3X9;+#ZMIV*W1643QMUOF.\+$) ) M_V&@P^HB9%&'FC5&_H E9RMM2J0M]YR.17,^-$U'6,/ CB.Q4P,2?#0 %\ [X MP4!$X)@CV^,H<)]E,(P5E\.TQ$A7F\GFL;C10>#LDW;YQ'#[C_1FNNO1,@UX MK?C;<5KIB7'J"QU:ZW5X]^'^$X$.ZAU'0 36[E< MD*/+;[C(QC +6,E/)_B[TNMR0:,'8Z7G\']<4-Z-SMSF3'@'E\(B$@T!?*:, M\* 8?0&?BOOAB#]+U!B:?0KH#BMY6)."DR\6LJ )R<^1B?Z_^=/ W0)W8&NJ MADOA;[C'Z?-GMCL]K1"Q+>UO27^[[<^VH\,#L!C:#6X@<%%Q9_ZD./RK/V[) M]^<>N;N_>GAZ?'CJ]6^N9W>#;V=W^T#!C=+I3YSME6E-/!Q]%,OT"9BS-[[< M@.'_8T6B2ZL=G>C2K38Z?][Q3:L@I/59K-.?<9D.NKT'6A5O1_609O\\G4M= MFGXEIHT>ZO'[4S)"G$!H="3Y!\T? V#TIVG]P%=@ZS2' MAG=G^%(O/O,Z^\J\/X-Q/8,7"_K"Y#<+W@0$*1RO:\?O#R00G\O<:_2/IHK5 MLV,BAY7P".F#_(*]7=8,'E+=JY)A*[4/'AT-U7.*3&WQZGWKUI MB#HD3B(6U]O'K>4\]K=%?)MAH0U'8T Y1U\HZ'.X#,;+-I3FJ-.S;D%R#.5].V'XQG(,_#T+]Q4C:]/]/@LZD"MEM31N0GM6<<\K;ODL8/CX6_ ML9*'9R43P>'$2:Q??V>Z>F?A-8N((SA3$ MM*TCIG.&,_YX=*YPH3@VP/WD;A9%0;4=6"!:#HJLHE-M#.X@$-[&1<_"KJE0 MV:% [:/_W%[@82(Y\*9$ >,%WK'%4P%"H1*X+?AK%OBJFO\(Q7P%DX<[#K,? M\#=9Q/6P+[9!O M#/=5=;F26]RRKG?"$;RP6?7E6B4KU&T[^NAKK5FM=_[TE5]H$X+K1\$3CR7O ME!_(-5LT6Q%W>F06;K_2%[!B_S1Q!Y%G3,*23EQEA][3Z MQ==UINN WA;[ZWR=*^+6YGB,#H?H:S$D\YBKD*^.>EQ9^%2L4U$!+7Q^9<(3 MR!.\AA]J8UB>J/#J@V.^,$S#\2[_6"'SJVY>]SY*)RY;=?-5*CA3+_#9"ZZ" M%_0XAH##8E:UF5+5WJHC3569<>[SO\[!WJA1Y:)^=ESS!"RP$4%M&.Q@Z,7Z M5JV^P'M'RPO?@KY_[[CC_;X?/Q^3:U/7J65[$3&ANVHVN$^:K<&\(H2 MRWW3PZ9_9V:#34_H?C7JQ^^/D?B4%^9R@:?HB]GNX#\\S@D$"QR>, L&7.;= M"9!,S'-FKG!G77_/OA#/>H1'';?S#L):*)F7L$P8\G$0\L<8.HZP[&S"KH]O;'M^8V,FO3O!,7^$(Q;1 MN,:90UL8?CXRWUVS$P_H%JDOEIVK,D//SII>@-NSQ2#((T95+Z%8W. +QT.% MW*$Q-=2*,&:A_ *X9F:[N>; 4V$&F&R8F@N.O2.2,^"Z;^Q-4\SCT.,HZ/97 MIN/M^$]G/X$/0+E<(2/)'3S^3FBEN[L[,O9Z;R@P(Y7BJH<<I[H^Q0@S#[BF7=H;.$^LWREF;F= M)2QA*M7L&1_X-HKIVG!7^^/Y+LS-=J'J9V7$5!?WGYY@W?9BP%#4.PPB:T.- MJ6(+T7?B>X;Z=4:XGJ!;']D7'&W"/3M_ ''[G%[\1BD M^,A3PJ?M7[:Q9YF'S3>LPI%*]8V -HU?\JO$@3I^3O;FA-86/MJ065:XOU-* MQ49"YZ(/](XB92"U G![6@1&%$?E!6"XD9@MAU;E@J18AR*/ H#_6/:D]HXK MGG:7-!"$]7LW_#+_I?Q&]4R;E4[M-+HF1,Z%3+>5ZDR,RZZD^H%ON?F.VW1/ M!7K=S73[I(^AYEI"%XGREN!8EOAT TWUP4M+%A^VGH?5\I) M&VS8A.2P/0"1-QT1>UJ7W5UD;1%ECP?HU ^68C ?IV"PTB^(ZC98$+\@F4O0 MJ%?JG:B2BLOYL&>>P0*,D[\]="7T.!\XG>U-RXTLN9&5H8/L'6?D29M,>\5= M\A)9O>+N8RTY29"Y@7L?@4&6QXC!7(D$;W'E4P"6I$U[E[8%WS.;N-^&9T$9 MW!FOP&+3DCM?&4G]D@,CQ97Z !$)E\&M^LZ6P=+FK][F]D[L>+D+4N*SD?C3 M?9/X.3O/D9)PZ;NDE<">"7ZI[/NCA1EG>-QDHE,L6<:K"0$8)ACCE"H@&Q6P MY(A:<56 #Y-'! E<<>,C))$F:%>ZM??'._=1%Y3*";CBV>WH!\ /D2LV^1\Z MGER(TR.83C72)M(MR$8GG"X_1[613OCS5L/2>%^Q_.*=X5#C10M$_//T&_V/ M:?%48OY[G^-7/L/](ZH^L_-?7/@C3KJ+<-8H1\R]5%X&'LS3=:8X6"!SXMD2 MJ4BR4211312S5B1A!ON^PO[ICGIC28?&/=,=I?)*[DVCBC5V>8E=_QR?U!W9 MZ(ZH5H99ZPXL%2/X&QS3W#^_HRUC%X73'%^Q!)20(3P9XMI,[FQFJCV6=FQ, M95L#Z^"D*?,<'D]((W,(V!"_2";]I^60_E+Y#2*D(04^2X%O[=L^)@?%K#;= M%C+?>E^#E M\@B"7.8)G>YQ(G,!3/[JXWFG>Y?&Z"4UA;_PL/(HH))(#W2[[PORY:8$TCF\ MM]\^P'OYM[#+D-\?3/94N:SE/FSE+(5=R;S/DSZ MB))D 8#6#H-^TM0OB?:'2JSNJ>R7, JP4I.DE*Z8X\Z!J'K/\?80=&/9M\2! MG$L"[;>/(0K5W#-GL:QSJ4H"+4*B"9!031>#*(MAO=V7#MIHL*OT3THICYGH M'S\F$:F' ([[48(H)J?BQ34B^Q-'M/0N=RW[<%=GQ;0=7D_>5#3>Y(?W)>"- M+V<-2N ]*.47\?F*5@A#S;(=T0K!:W[ ^P"MZ'P-TL*O%W39L%]FNQM1X*L> M;KC(R\=G*HBA>WKM^;"+0]+]O_<&/:C47T%2BIZ(*VFRM@GEGM&DN8(FO".1 M,@*@BQ9.WD:]WR?2Q^#Z5I&BF9G?)U(T,\/[KZ3TV6KTU;UVGWM!Z=;19?-] MLDI<0B=LR%GW&G+V1PSN)3015P'SK4=T]D)U;&+/VY14>+5^T57#_XR?.[<= M.IX0U77@5V#KC!?Q,?;7MM@0CQ>)5ADXX"%5@EX;P$,5)Z/R>HWHQ'(]:/MM M/GG[#*^'HFCH-)Y8; 0_T5Z9]\4!-4$1+=.0)A9[988KB ( ,#C)9_WKK,!% M(8!;H'=D[Y.\+ O@-[YAZ2RI*)VG$GVTS%MDT9TA))B+."?XP]#S\-@STC7T M\&N86H\?HTND:T\;$6V3 Q6P3A]VEA39W3'1;CQD/EB\<7%6M(OPB4.FVV+V M!!00* Q]*JID:+PO*W:X"MH:IZ&(N,+DC?- #DQU8]-WS&7F,+39!FU@ 5=5 M#H40-PZJ&6Q4^ZN@&R)0T36HJVH(5]"Q0FK6XAGA'&J YB-W!5C!6##&$5H= MPU>CI"BO>!X>R*#P 3R3%;9.(PK>@L)3_7E3%KQLP( \J$WB&I\B]-J2K1U/ M96O'?6OM6,"N52V[G/O$(TR"5: M]]^.&NLU5VIQV4QLNS?4.=GHHQWU3.BC,*$W:$(SK0T>,P8D,5(,C,Q[3!(9 M!4=&[(AL;@#Z\-U?$WQ,&3V)DAR*F.T2-#UMYMOT])GJ^YOALLFAME;:0>[W M<>F5A]K.=K4G%KJ1[7NIWO9ALJ,I[4HK(CJUCT?4]CZ9Y$'LF?!>\+CG)P4Y M!T%>TDMJ)X(L4LYQ.QM[RV'Y3K<"*N12*8;\36N%)F&(F54)N*J%=()4 MK)]IA81EM9NM'1Y&D09^)L=^R!+#&\0>48N=RZYM1>O:MM_68N'XPV=J:XHT M&CD8C:B4Q32-QB.SGE%C;!"]\-6-_U,.AL"&U&+:D+O[VZ/+VG&W')7-]MN& M+)YJU'376;*[+^4[7?G..OTV!?GVX)!8P@O5@6T_,OK)N^=4"/^D@CFLVG#I M["-0B/0H4%80'9BO+#+_1YM%Q3'=;6(Q&\,$*L_TT70=;H_;%?#KB6M-3!N& M:AKZE.>VKMFB \R,0VD"@C5J]=H%?Z"7^@LC2(R3&;9);,$DNU3-+P=;G]7#-73OS1GY#>JB<[-.(W,S?!2,Q84&L_MR3I9 MPC$G\QZ']W1/Z)*JF$4-LY9WGP:7'U8@MJH)BDJF+&& M29TOIJD2T.3>(8QC$GTZ('0,P--6MI_M;&NJIW2%SG5"P\,3)OQ2$U4X'G%T M=''V!#0=>U/XUC:W)',#LD,CLL605DP8;D45!623XOF$X.0;?,+/H!B*-M&9 M.-/P?+5*:W=J'6%NQ $M+[.;K!*?NA ?O]SHE.?5"KIPQ26&,^-&9>7=&A%W ML]F$6GC& DP;MP(X23,X-7Z12+_J06WO03[K\4D>[Y=B P9%!JZ#2)=IY7$7)DJ-G;4LER4GE_9*"@*&(VR# MX*!#?OW3W3.# PE") 62 #E;V2S% S"8/O=)"N15.L11KSF8:O,EULQ/''Y(EX'I8KT=-,#!-(PL#RTT5C400V M9=,0=V"YZS,75 "#M1,?R,HISIU&IL)*/HH%/W<\>H34+PPNK$FAE1^3@Y'T MPQ<\;(O^!"(8\P5\=&\$2;E5$-T'(2(NT/6,/G+(4GP02 MF1W:$UY@A'46X##%Z@ 7C(42#DT PC*61\-VR+8+[I)[3"X;OB'/QN!WD1_0 MFN]%=*5G=!0G2B"XP&?@XR&.'5H/OBB=NVI<5P:@W^@L-V:V MAC9T$#/^,!;^\'3J@'\@EHQ\Z:;<0@WBM7M>#I7>F.Q*QT F)CQ%*M_C^HDO MG'H=)6PY)X99&LUY0(SS(!@!$LU'\HYJ @^:0'\-&=$? 9"0#5(M)S MX]B7Y %X,2$OK\>G%[])/PZ/,P:? FF8B,]P3T?BL,;&Z8@ M93?WOKCPA#MN]NI[+"[]P$Q;5X#MARL35V8MC_0>\U>-9A6P><20W27 M.I_Y+L]G:FJ57KOXKF6ZW7R#(1*$&KI63*8JR7=+;P_F&ZPIFU1WEFV]P0Q5 MG&6[QSN<2*4"HWQ[=)YSME]3:VDI;+2LF3OC#I+2[NWK9X::D)\^6$A3HMWY;E-72WP M&V:C[#(SM,($EP(5D]?5(P].4@5M,3C6CWO;ZK11TM05)0EUD83EFEE40Q*. MP7!VMY7=5_.'-H'TE/P!GH*#N-S@@%">]D1T$)\ID2&97*HTT+)'""9.(-OQ M)6WWT;--@H]Z"8*SH?T3T<7)AU2SB AE&Q&B7MY*Y@'D<65*:DQF,L1 %)-P M_*CYR9*3=,6E^?O6)UD2L* YO& '+1@S%AX(\+D0]NM-F2L/'TS'"_"UE!DD M>"Y1UF^E'ZS:2[^3#$M2#?'KTA!_H!KB5[@A_IOA[GG.%XV&3$V"?,D'OU_T M3P:M0?>H^^4"_J]WUCDZZ0P&1X->^^S+Z?%%K]?LSR#C:8$V:'AK"+Z;>7+2 M:38O6OVC8>]\<-0]_T)7Z!X-!R?#T_,FGMHW%9I>0:-K@Q2,/=5OZ>'@M8,, M*MZK(>\MJ/:X]]$LSF+V-<61"C>]:8[,8N5WSVN*WANG=[M*]*XB#F17)4-? M9E(LVE%V0!V/Z/?F7*JZ7?\&[7XV>V[SE#G-?RY.F>>%:G&(MAYD2^\?5V10 M@^*W3?';<0Z_M7;%;^WNMB _"IU0:! N7=-G!O91M")J.Y+ML>4SD]F/V'\Q MTZ&FI@9B&9333F5TN9*J!>(ZFH;%LBII_25B=]Y9FLXW@LQT#"N)O![B8* , MR?[QY7)54U7FRY;>:NW'J(IZX]+A3C=S71YK:DY*Q-9N6+J77NG[ BW06:[. M:ETM(-CB)N:*+Q%"B]DYK!7A6?UX7/ M.[DI[.WS>1='$3:[VQHRHJD!52I+* M%MTQRMEVM5EDLVQ!GCE[$VWK8:':$_,9]O#VO6<;6WP[+]IO15UMEBP2OC!L M_Q^&$['3%\+VG2&*CFH?I1LBMGR9BL?5?-I8J/O+"G7OW>=68SZ9J $_.OC\ M2)7"35FR%K0*F[)25'L\[]S'\&B=VJ+SQO'.2T7 \#M1'OG5"\8H9/Z*I0L& MH;(5VRE4]@%RI$+I*E3VP=%;H;(KBLK^ MZ>*T.AI?%8>2"IF]*[13IULF,IO\S!\L7"NKW:[*X'3%;)MBMEZ9L.SUF0U; MY%2DT?"A0P+F(-GS8Y%U^&DHLIM\JJ2"9F]83ON; +^1O,;P5\;_>^'YTB$H MY\2@I7=4><\>LN3Q)F!I6V#)+MJ:BC@V50Q#MHL_FZW_D>/#X[.SFEJ40P.I MOJEVZ#6?$L0=CW5H2OJ=EX2IZ]JCML)E*Y9_,\N_J2QIJRS?;>ULLIA"9)>2 MC%.H[)JC5;O-,E'9;\JT;*\^0T&R#XS)6V5"LM_$Y-UFS>H.7L%CI\%1VT1F MY8'!L?LH[S*:=!A-FHB6T W4",87CO=T&TVG#L,9*(;SQ0X081?Y+)AK =HY M[@R.VS-=/L4F<538#,&IO^NF<5JA-\TZ(.+N EBXR*68(Z"NT3LZ3LZR1Y]F M^>]5>O[M'MS8Q1# +N'_/BP\F!6K-J+0V_*JT^37D"*DRJY4QO+0,5NNT]@-V76\DW)S2-[T) MTT+C6?1TX*,W1_#0"F#]!H$L0O-TWX2PCB42"7>'=%M;*,$(!;!J>/7NT5FD[3Z" MCR*[Y(QLUW"I)1+RW"/-)E2Y"'7%JEY1Y2(2M_3,F-H(,*"D_3\>++:LR94GQX(9XL)+(E5C<8-WN=J]#-@A-"^N@\-VV76I7O^ M;(X-]P'K=6,2?T,*OZV)?$OOM2N2I52\6"(OYK6-7M5X;)L7VR<5:66@ I/% M]L01)+:9LB,;2I?W\MJ;K]201#9YN'1+D\]TZAR,1E]ES_>+Y_+.YU?J.+(! MGNND>&ZGQB%3/UVQL1Z+BLAD:<7UU],_W\WN$!5IS7--MNH"WI*57IGK7=S= M%((Q4S>)JSU2%QB/CGSO27XR^Q'66FC77W_\_/XZX'.M@H]WO+H._FDUY1+B M^KK,Z_3+<>P,7 ^_GA^=WIP/_SP:7MR=WWS4#.?)> DDB!*-JLLRN_!)&S.^ MI>WI\R=-^ I_:=(_>6Z$^.@=MA">W_^_?\G??R1D&;M_=W7VS79_)1N55"(N MLUFI5^O5LRT2R1S5AH\\)Q ;KJ#\YAEN\,,+67#G&Q8;NM95.&9^JJ= 4AB5 M7Q+55>64:Y53]BI;3IEN*(%'<4,L :09(#B6XLQGEAUJWSP(HX)#KZN4 Z"2 M#1,%E'M=/SDT39H=17J#- CHC0MY8)OL1K["Z)500]F:*Z)LI:HHCU459>T+ M5_:NY$V1J10R?0'M@O/-MD8I576XUU5HJNKPL.BMJ@Z7K3IL;[?J4#J56C*G MD$\H['P*,32M:8)^)9A&?]\])ZB7._UXZU6<])OZ2?^D M&H=HBN,VQ'']O&Z'2PTQ*9OC<#AW3S_9926%.K9-S,$W%@2:D&=;_7MWW!U8?"U)TZ6Q^ 0T[1:VRH7VD['[MU K7;4@_ANS+0S M;S(UW!?-#C3V//4",1HP'=YI4Q^([L.*M' ,]OYAK 4&GJ_C; O?LR(SY."$ M@/F/MLF"AI:Z,D\<#C[1]9D9P@WPLJEX!!_'P0K&E,9]]Q.59[)$Y MWA1^'P5XB#^V@]#ST3'!M+K#N(C@37R;P75US>2\S6N8(RQ2TAC(C#>Q37H/ M'NH7"U&,1&VD3F\;.#W1AET7N %YF2 TPHB>.IZ<^%>-\J%Y2X9=^,+'8^$U M@K'GAT/T+W3Z*A9>@_PQ>7MC@I?&O_(V)AP;H58 ;8&' M?-$(WE+P)=<+Z2O:/9-["=L,>WYO($/ MAH/8J8PK2AG'?>&@\3DC$!H"XY! M(.J(_P14B9F#/[D<$F?=@7N8P=CSJ XU]+G-S*F MP(3 HKAE\.K1#O!6E*20]^*[-#8>X=O -P_PW/C5>P$@Q759;&1$3KB =2<> M*%1@MDP)/&R@Z41 ?: 7 ^$0VT)K@R=W;&KCK6N6'4RC$&=Q@M<=\?>FQ@OV MNL:]&=FBX;?. 2L6@5QG=NNON?O)F=CTO9BM$UYN:**$="SH9T+-DPS@4N%7D% 2T>&="$PL*<&PM)K?GPT1%LZI/A6[' +L[=Q;MN,53DL,$CWYODJQH/ M[L,")#)>%%L<"=T4:W;.28D*P=OA=PMT3X@=L[GV 2G#MMD,VV87ZK08'Z*A M5\_5&S)5P6_X<2/>I?;@K_G$1#I]P3&!" DLZ)W?5[BOVD)%5$?T/! LP0CN M?02VPS?2B-A:P0L4/]:0'Q<,?8BY,0-GU!1'*G"5 M,I>BLPW8& Z6)OY0B" M(_C %:F4/9L+6V5D4V^S!\-U.Q'>IS.?*K-=/X?M6CMFNUY+-4.I!,Q@:&&N MCW*F&,;&.;1]@-9M'5&T,E0HKZOSJCVUKN5I0XZ4OJTIQ<[0<+6$N56?VTY* MZ)JU.6[KM7;.;E4,&+9J#,119_J8SG@P;#<(LR,.%1Q6O.%+([ -C]_PJI-VR>[>[K9;Z^XS37M02+2+;& M3K9&@,29I1FA-L*M?*2M)/PG([ UNN"$7A;P=2T8,Q8"S3P?8=LH;XM^/O*\ MT,6F>SIADTVXS(/GPR-9 C =33W^30<+%Y" _QM9#QPC'02>:=.-G^QP3-^R MW6D$:Y88YPDS4-3Q([AS;^0@HHLH'NC:"=T>$Y+Y_T8:W9T4XV)-V M4^B\P-8ZA@#\9FL4@NC^?QF' MR+_,/:=X1OA1_$ QU!TN$P\2H7NE&L+S+38"@7L.M@_:W2Y7=_M< ]B?OQ'O M%-"SQ6L[@$([7BRQD944"T2N00=5X_(ZYM17Y:A:;L7U*]E"[3<>S1WA?*K,!KG:KR M&MS#>&!9.MZS(,R4!SYA[8[@F*GAO_5IC"8HZX^]@,(&\)&I;OR+6O/O>GK!6\<7K$REN0$& MV0D&2VT:Y1 R[);F/\F:<]^I4*DAE0 &/ A*PB(4\[$(35Y$7**3F4HJ5X5G M1R6'Z-$+G3,;8:%[A,%;Y/NQ?U3_LKTXD4-#SP(1<%E7[HU\TE-\T/S0^8Z-;N4[$>J!1L&?U'!@A+KB@5SQ MT*&NUQ&X SCQE;)DY$F#2RB:X:02#N]QI)'6%JY^?>BKKG@X5SQHG-[,0.>A M:?J8PEPLT,SPW2,O"C_L#8JO *ZTZTGM@X(.J/^.:[\0I[4\-D. MCN+/+BE-2Q]TOI,7G[Y$ZNSX0IZ&97^?/EV.TQW\0L60J%/L]<>"X,R;W-LN M\=%9S%^9!/7;1L2WCO5N>X=E,/N#]*NR2!3T3%4B,2<27;U7E9DO!^TSS]C9 M:]&#[U'BPH Z\+23*0MY5TC1B7%?:X=WKD7RFDG4Q[".IN%'P4)TA:O1#\]- ML<_PP6=TO;?5E![K@Z;J;[%_S)_7TJ(^)G1+S-]JZLUN1;B_DD#Z'9UG7[K( MO*YH%1Y#;PWS/Y$=\+;):%#1G6+F6/O.+ Y(1#CL\#;^VW9?Z33;$A#;,-M@ M';G8]@6^U_B5R7U)HZU+!*W$Q" JD@,@S;'-'O% W 3OQX!%) ?K4^83ER*$ M&1OJ!F//L40?]H7QN+REMD277GPH_DR9S3+)!\4#?&S//,4U_U:@/4Y:.96B MK>3D7/3&^;=T<8?)O4CR!6$$'2Y=<^A:7XQ _+V^\YQLRAUB04?,!RI]2\"G M<"?L76W%6J&_K%;HP];-5]YHP.T.=?PF$!>"4 NWK9U;8,OW*O5R?[;M&#EN MX;:!($VP-8)H-SWU0A02;",//&U;"!2'?2VY@;0V=W[9X+^[R^)@! XS#5V6 M\O6Z)&+%PH-+101Q^4!*X/#)$. MS8PD1I@A;"K&A@8I&P!/SDPC0!,B5ZKY$BZ,5M.+@LS4@Q$\M><+*Q$Y E8: ML#!TF.SPOY!E34*86F"0\$?4,U[.R6#SDP,X'X<1+!-V#>X5)"4?R1,(.!BM M")X[ ]N7=X\WS="6!/>F;I#&7\M9 TO 1=\!>- M*<&9+?#)@X"*%VKZ?JY;!DY%NYU^N4CISRKX?]^]3"&T&OH^60_'XUM M"R3RH]Q-N#(X) *(HKTPPY>%:Q*%CX5UJ7DZ"U@Q\2+X6#AV O2I74RLY*]B?S]W/0PQW,?^.PW MB]UG5A%D*B@"41*%_D8@G'?A/,__,#TJSD+,J\_M"_U*N.*9"5K"?1"K:Q3V MM-A.-XT-=\Y(*MBO1J3VW8"D^8;7KI]Y$"O=CH%O3C%,B3V,W/J+@>JML59O MC>/*]M8@RA\1Z;4T=QQZ0PW./WQW>/QNIG8'+6FZ:@LUR@/XCJ(R.1/PSR?% M#!I*ATK&+OE,I58P+06Q%9D)KVZ&MW$@GI- D:&\_1EB,R$X>/B M.8,GS3+F##;GY@PVD\+%$U6XN*&*M>W-=:O*P+;R:]$.9>*:F@&8+7*M855C MB46"6QZPM4*18.SWYWBV24NSCYQ^6RDD5 7"L0BI@O"#HW<=:\#W$V0.=P+_ M?^*A(@4OGH?-=860UVA*7+?9[BTU*^3?<;PE@#9(K%NDE3C)NZ3X]U9&W]]$ M_$;?ON51[U<>\PY=:YB)=\]%N+O,2:R(#)F5'SB*2ZV.G^WA >#\<:Q"C.\5 MK^9'A2A>KTUI5;U+F#'33>;.(^!=O:U>!>8)%0O_U;=M1T7%\RRUK98VSW.C)&8V3T)_(C]0/@.A[ MHV=.^NW=S#]:1-4]LL&')5^=Y:9='IA\]3KSF.(JR]>A1[UWB'?/8(/,# :N MGH;^<,<.@E[*JZW.L?OUUS4MO=E3PSN5%&U$BO)+[>>L>_VEJ#_8D4>\5Q-! MU? 8/CRFK8;'J.$QV9F-*?R63"E2:W ]'M:'O,IC>X7)3)_L_.!3EN? %BEFJ$,$%;682'SFG-; M!3QI1;[L9+ Z8Z_,USIG;%34%L,J6C[I.%UI)D<@TD"!N(H7E$ 0U\^*-ACT M"'O*[;.$!4[G9SE767##JYR^)\^?G5Y'HW^#: +?IYKN((W[,.3$:D*+@_)O=2WGS\PW;7#CKM$KPD5HNUC) M>["&W!=;W 1"28&2@@VMY88ZQ:+_ATU$?=&#\IL]VJ%$V"YO"J<$XD $8A@W M8MRA)%P"^]MN #X^M93;*?LG;32J(@)5Q'_*B*7;W6X]]544!B%0ASJ;A?-= M66J*#GGMXJ6?FJ]Z])PWL$VV=E\+'YY*FE-D,A>YY[=^28Y'3E_F^J/10D1H MDV*4'Q&_H=#6F\?S3?)5[4.9E7^MW_,8LN2[%W%WT>RU MMW+WS]LOU\S?-(]+OU:XM3+ HOAJ/<[O#!J#BDQ8JTFR*<>3?#,G ]\N3M+* M^U-JMGX;I;:^\+$.'0;\E9_H*8]N,Q[=)@M>-^W<$6L$ER[O^9=MLK^2D3O6 M!QWEW6V$N7?JT.55MFZ N=_BVP4K\7CY_EVKU6KT*E?5K;P,Y> =RM97,:^W M30=/*K&ZNG@EU99NP1-<>J7O"XQJ=\DBKLUXC/B#2^P:;GTAA!\WBQS4D$;Q MQ$RU9M9#/S[96?.CI^)(+JYAWK(GN:%"YFZO8#QA)1..99TF]_5V9UONI6H/ ML))H[?)T>OE5%DE5?X-25==3[&Z_T9DO@E0"5T'+53496Z'L:%WQRA&D^]<% MZ7YE08J1QBF@,LYXA:$JV-@"D[C5R^O H@:N@Y:J:C-4N!%TL2(M"T%8F!.VU"D/0 M))6C0M"ZV*TZ>(.]]@Y"T'+$+!N"MM:*08_USO&V#O6K$8/6_ACT'RS +@;8 M40];HIE\.+#V"&^KF+2N6BBOR+;2,2GG0EC$N>#!.P_?4J>E]9"O@PY5\VI^ M:Q"J+A"YC4:PZA!5R>%!AK.OV[?UHMR>.FA5HK9]D[=A@-#VO=4A'\16 M;NK(3AHJ?WE+W^_--[0/4P,G9*^S1^15;/>,+9UYLV=8B*Q?6FGZ0[?9W%(] M_P;D?*YLA0; E2#2G>.B^0>OSHG8Y'CDFN[H?#2N9V8UZ+2K";,;$R]R0^1Q M')QB@]+C;?Q]9C+X@:7=O]"W\3$-]T4;^=Z$WDC$0 K&BN*PUC"44HAW[7LF M8U: DSR**Q-7&BS7?,O,D]9:,T\JO!VO,6)#&X::'0::90>FS_ ;>H;3#.R] M'\@>^V// =X,,(4:1+[/J$GVU&>/-FPPL)KWY/*)//BC$AP;=C6A>??&<__ M3/8+WLA7A>OE,4[Z.?9 S.)X8CY+:(^I]1"HIQFB3?#L%(]"8>OLKI1T- W7 MVM#O]'QO:2?2/FXTYUOI-+3_G_G>PDU.36L)X $DAX-LO>)6-78SD&)7LU*2 M$F\*$;?&H*W", #N'L2D-3[KTHU&YN?R;C4[8[&6A? M)Z;D#0LG1;;$^)2V&I^BQJ?4M$]ZK@;>NP$JZ]Y8,4K,*+,3)H@][GT<[0J? M4E[%:N'W?U M^7NE1O0[9_:\4LBW,?LFH"C+L_S,\3A9/S1^:.ZR6>B5I*'7;S3;U9"%0P>B M$D/4MH5CY:W?6L<8%36$V8[&:T+1NGJK>EV+%:._E='[>0=4I3'Z3HQ@80/O MLBQAE;IX5S%:W*8I%!-VN>>C#.+Z3%74A;B_5A?BBEI$CG![HT4\T=O='6J M/>Q%O'-CN-9Q?*6-89;3-Q46=AJ=;;6V4&'A,K80:#=B=GW-84DM_K>@4$II M\=]?"[E24>-Z(7GO;?9UL#.-*UZK?[R;=(K:H)+.?H<'.LG/=6Q3IV0DDPL7\-8:6.\Z1/2 M_G'CI%,E4ZRJ%.FT-$P7H<"2VLW6X%.V2B6: LLCIK+8)'(AUK PM#!XBL0$F H^I[/@!D1;#^Q77L2368+4N*2+5\6 MK\NR+3M 64/7B2$F'ZY*)2YPN4?@2/B"2VJ=EW?QTA@>]N,5;1K6IHD?)8_Q MQNJ7S9=J%E5VK#57]NW&>2O5,>VFWNT=SQ?(T,X5[$G>$?6KI64UV9/60.\< M][=1--3>^@'H[DJ%6L>-P7RIT*M%C.V\HY_2.*U26P3F.P?@-%/B>!A%/\, M16?E:L=TK>?8L%8H'6X7-(,L+G65)7RWS'\$TN?S1NSY$9L&5)F=_OS,"\(? M7O@O!K6%+(]>/;X#V.UX!=11T M W CQ@8Y >D.@_?H)\0_(R?#D#522* M[^+NIK"F(W63N* K=8'QZ,CWGN0GLQ]A.95V_?7'S^^OUXVL5=/U[C._KZ:U M.G()?\ :Y$J3U^F7XSAO>#W\>GYT>G,^_/-H>'%W?O-1,YPGXR60F0+,O[DL MLPN?M#'C6]J>/G_21%KQ+TWZ)R_C*#YZAZ4@\_O_]R_Y^X^$+&/W[Z[.OMGN MKV2C.',MNUFI5_FYS3ENUS5Z1X=@Q;='"^/)G&'6^,AYS,^7GJP[M:8WJZ-+ M4#00^?@O7R!$0&ZZVC#TIMG,M;B[L*OKTFN67*\J MJ[_=?WY?8+Y/R%Q_6%CR)%9M1*&WY55+TMLLF%E=04ICGUVQU(90+B((C9 ' M/>AM.=Z3S 4$H?;>8J"Z)S;VS8B")>+]D>T'(8_W;5=?\IM8Y#UAX=BS/FB> MCXD0\$[@V&[=6"3Y\K',1 M=ZR^SBA*#0NJL[NJ.EM59[^:V=UR-6T0Q2J4P6OZ+UQ>K>K1.\J8H=VU?7@QGC2,&<*7W*"NN*&5@4XE"IT*PX! M.2X8H5>CZU.YUB)]>@KE9@&53H3D5P[6/'6 214)?N M-2?3VV6PK[=:%<&0*48KD='RQHRMINM+9K2NWJH66+%:OO\V=?V%[=K!F%G: M@^=9=57U)5;M[2#^7EF>"R:9+2G/DNI?D>AOE.?NN\\#O;NKN7V+]G2/[,N! M<7=>$"%\7M+K=-%]W]%YG6TG>?9Y^EXL" MWC!$$>+P*5CTEVL'UHCC$O\3V5.L.GP-LMA3D,6U((N#RD(6)2OH&C$#0=]B M=CAT$.,)+2+9HBEN$8<',KE'BX&"M0<%+E03^0V9/*!1&4#&! @Y6'CCX38XEMB=3WWND;CFU/4^L%91K M4- A:6$,LBPTXZ51DU(MBV0VQ[$D> MYE6./:HER[;VHPUFO4_^X$ZGD4V=6H)],455!Y>=Y &)5[$^DF+PL7Q9 9'N M=/5>NR)P9,6N);)K'NAV%NM$A3[[QZ-Y>-V5HIT*\6A/[S7W [I?^UCGNV&.;9?Y+]K_ M&)/II^1,6]F:S0X)ECZ\UW)<5L?]"OB,2HF+9%)\["RJQB;BC%I MN[,?UJ;V8/5DS<:HHKR:E.=]%3"'IUY-&Q'\!TU MJWCPZ]NMHJI%GCFSGY9=:9%R>"MF(4U]:DQ M-]9WJYS/#]'94?U4FLR3A68 MMPIKJ(D #=Z*H*B8 +6/=Y;XWAODWZXJK&<*;++U-74UQW6"4PT*,!A;E^56 MJZ.W!]OJE[!' 5V]6*X 1[$#EFOJ_:HDLP\Z+INQ#$/3C":1PR[BQKLS2/?*@RBU9A#;41DP*\1Y7%I*WW!MVZB(D*P/#?%F]Q M\(.&SAY"%'9 W8$&!7"3-5WLM;L%#?1F>UL9SFIVP2I8UKT#.D8)PN8$H0#2 MLFU!.-&;6\M4JK99);7-PJG>WU@0,'8%[ "N$Y5O7-BNX9J,P+5!?DN<8]4O M:ZU^6:UF91MF<7(?>F9)Z2#G<<3E0W-HQU!':MYH9)NX_[": M: 3*+_+QV^1PPKN/;&R;#N.UER:PKF&[XC?T5O97L7/:T#A1M"<[',,7@9'L MT#8<#>>)OC(+OM4F3M,F\/XXP)&@<'\^K+3@5Z['QXG29',0/TOS7.K^=6\X M],S!F#%85WJ##-.$*"+D&\$,.YKY$7X.O\+!J<[<%7587!1HIL$'JQJ.@Q@\N-#4>*%B #&H M'525'>(T5&8UM'\@9]S'%Q-?Q;0;/0;->C<-%_8"?YJ:WBHFI,+=X0[CO>Q"H=K-E?KJY^LE?6I\^X):S4' %KLZ!#;$= M8"X6-+@$ H7A?5P"SKQW<#I0;Z2@YT7 MN:EP9XMO _;%P_B;OIB5BZ64UY[HR-0F^YB2"9" 84+IOP:"$4$"D1&!U!%L MH>^\$"7PEYK%%5XB0*38D$KSU%ET$^\>%LR3YW"GB?&+S4K<-/*#""-_^#R^ M54/X4C.\DLL5_)O([@\NJA!DSHP20%Y(!!OOX5+B@:^7AB\C_W+5-+,Z#UR9 MF1T0?)36LG\E-0DNGI7Z'O^:$/^ _^61M)#> VHR9']?XR*'BTQN]#1FH'A( MYE!7>2Z([TMLG$@)PJ=/-JA4]LQ\T\:;XKO\#GG[!_(# 8&G&1:R#RP5+0(7 M^A$CM8%_FR9XC*@]T, -@QER"J-J>4NIOO!EBEX@+!SKOVR+V,R>3!W;A,6C M!.M\F:F;(#>*S4+K0[H:20%V%5Q.G_>X].+NYO"3ELIYU[VP\Q<83PZ@IV, M/YK]#'U][?KKCY_?7^_GM593S.3.A4Y2E[.17&0<4\W\D7D]CH.0Z^'7\Z/3 MF_/AGT?#B[OS&_#;G2?C)9 1*J8H79;9K$_:F/&.H&T(@C21>?U+D_[)2\J* MC]YI?^32Z>]?\NF$,6\Y5+J[.OMFN[_>?9;[F0I"E]TT"FHS[);F/\F:<]]9 M+_A9E)#).<_'79 YQXMU=7(E ,Y+EVZ-S(SM]4LZDQ5JA)(@V9*40&#'0TA5'.C]TT&BAI? M55H&VEMK'E^)Z=)[ KT?R/B9#YA.6\QBT%N5-<8F8,:;UA\EP8Q;S:+F6N4H M$#PG6@A!G3TZ6C?FZ[6V5<133:2^DI"-24A12Z_:2$A';_6VU5.R5 A_F<'I MC(SLYL^#=B1R4KMI,,:11A#4/2K=JW(2K:@=V4+%1DHIA>XXXP1;/9%*&?' ^JD4M3?+HA/FT5=?VJ#9]V>Q4YE% YWT4U K6W/@>5^FH5S6#; MA%I(>^6E*(7>MBR7R@+ON2@4S7=3HJ"2P5M)!A<:5)4=KF/NJ[46$&@=Q5*8 M BO)!1]TMN6"JQSQ@U8%&59->FWA_TJL&N M*G.\.'-<>VMT6 FSM5!/;],/N3FSMVJ';KU E$HB*BL1:Z&<*B@1O7I!ZP\Z MQELEDYPRL"J77,L<62EPHR4US')ILK>'DB?'-0-5*G&IB;BT2T$]54IJVAR='@_/6V5'O MY/3+>>^X?W&*)9Z9!F&T"-N-F#4$EC.[Q_"ML^/6T?%)[^*HVVT-CTZ&I[VC M0>O\M-,\:U[ /ZJI6*WZ$/7WMUO5W=AG3/ON4=/N"!7/&A$ MP,SI118=8"K)55>L\!6K:&MW-DDX/5X:!T%DAFS5NR-@G5![[9EJDX5)YC7[ ME*7)O":XH!I /,6!F^+ ;@X'MA,.;"L.5([?G/FXQ ";X0PA=QZZ4E/#L758 MVZJ2VBO95D@BGO/IENM)9S6$4_%9B7S6+]DB[!&?J1@BB?YG:]4P_E>J?S,B M>5R"ZL]6ZV">=2U)/-Y:%V.E\[?'8"Z?K- MB>*@!%TOR?4V23S9%M);:?JML5>G68*F+X&]NN!)-*O!7LJI3_3\[=CS0RHZ MJK^F/ZQRQDZK!+M!Y+\#ZK\Q1JA50:+BZ:N"W.7MMZVS=56;6DYMJJ@% M-1)F4O6@%8K:=P6=/S."L38UP$<$V=>,"3QM&&BV:SJ1Q2RLF9J HHA\-H'= M1I3?'&9# 7?5%:MZQ8,.918>NILH\R/'>PJTD>]--"]['%]7%%:MP).=/*C, MV\[EKXT75-+KS3SLJQ.;?>>X/"3(VP[JU^>X[KO/O:XZQ*F#@NSPC,4I7 M;-751%3^B#4/3/,6H.ZU#ZZ\/36<-QF'UK;:1.Z1;:@\J^6!1=Z"U=TO5COH MR 'N]$^&+,2L(P.>W'A@FL\FANTFF%TZZ'__P@P_^*!2 .J*5;VB\NYFO3NF MG+ZV,N;S*&#F1ROR4?.^ M^]QIM >S!QC*-=L'1FJ7STCM D;J5H61#MKQ6I2R51I[ZQH[F^E:5=0Z!:+6 M:S3[E1 UQ4K;T=EO8Z5NH?GOMRO!2@?M9>>%RY8=F'B6K@'EF8J/U16K>D7E M;QU2?#QOU4HV"@49YV[>G,GY$XWKR&V?/8 M-5&40B\(8Z[IP+4@.05&"C-"! 0_SNXQ"XZGUF+,G'&HTMPSEXWU@0 M,/;Z-+SO!NPE_#=WM%F[<]P9#%HST\O6J3QI-6<+3^@=(44GS5K4G:AQ,&\O M%]_Z>) X=5"="2&*Y)LE>2IBJ [1JQC2Q;5M[>W6MO&C%=A"---\7E,M0[N5 MR@SZ.W:[>WFC>%?&+<>.@P23QK2\&EW8Z&W_"P_ UD&8=K=5EK]'IZ_UXL#6 MNAPXX\UNFA/;>FN@&E;N/A,(=P(.Z=;4.KQV\9V+8WLC!N%+Q'[ )>^>F//( M^)C@]0H?5=WC_K%<9Z,6H!36PPR@/NBI&LBJZ/^>TO^;$<;NIO0_.EYW3YY2 M^XK3.*?U-JWVW\)Q;?WX>% -IE/>?KNOM/UF9' YD->ZVG[LL_6F +4K(GJ* MUTKDM3R$5_GZ?GV>T[O-_K-3D0%GA^[@WXV9SXQ1R/R:*OV2AC5L06*77FF!8/=7 M/S-&\%FN_;CS3MFU85M#I/YK\OQ?YGN6$8QG1?FH5@,;%&-7EK%7/XK.056^ M@<$+#59'/S[NUHK3#SV,28\FD8CDFEJX"DAXL>AN[-AZ/>>R>5(-UU+Q6(D\ MMO%SZC5[,.JM=D78[= C&23T1^T2,U\DUN6>>/]T93,19IT_ MF\ 00QK3L=Y4JEV)]=([^T'Q=]7Y>S/G[*7R>4OO;6W^VIMY_=##FFNP;3A> MZ-%P(I8[9*BNAF\38^IVH"86K[)(390+!5A=#?0P;-H6P%(-83PP[EX;?+# M_*UGYKIZO[6M0Z=]'L68=^N_6?:C+#R__GKZY[O9[6S.E9NG&4[4I,-;HI8] M>[V+NYO"$MK43>):^-0%QJ,CWWN2G\Q^A'7HVO77'S^_OUZFNU8Q_+O/_+Z: MUNK))?P!:Y K35ZG7XYC%^=Z^/7\Z/3F?/CGT?#B[OSFHV8X3\9+(+D,7067 M97;ADS9F8L#D]/F3)CR@OS3IGSSG2'ST3OLC;____B5__Y&09>S^W=79-]O] ME6P49[AE-ROU*M\-FY, 7:-W="T #AXM5(0Y_4WQD><$ F___V77G5K3^FTC MA!8\-WSL>AI<,_]V;/@+FD*T=*XZ1X-H3?->MCB[J*#R+K$FJ75 MJ]KK;_<0HBWN/((V@4TPOEA0EBZ6;42AM^5E7[JF-V$:T%TCPL\LL< Z['/K MF5,C #FR^=Z @Z %N#>:'8!>"YBE>=@EAFE/HA>1)OO,@G=PSPO:OGXG>7UQP^0&&OQ'L_ >]B/+ M+H/])[(AO,,H+^=W5N3C?YAACG%1MFJ*"5 SO C^%22%/>,@0VUWA-J78.Q+%@Y%V$LC.!J>L[VVL6[.QZV.VBN.M>9PI?9H**_$OFOM>JPY]WQ7W=;D'2%/%QJI-6LT9C/Y%D1P^P4 A1]V\2?4,Y/ MEQG(*1(QH'S5S>W/VF(YR@%YE:X*EJRL6%5CM$NQ6)>NZ3,$(QO.&;$/UQ7# M$#CE/J)4VYU'[YUB^ED@EX>^;[@/;/TI\B?;ZO:@"KCV7 PZI1C.78G!MHK@ M5757&197GL[M?;BV/ !KMTID(<)I52W2W63X)]AFS@M?TP'OG]0,3Z8XO\*< MW]MDX%D>YW>)\SLU PM7$DFY0R0%QT?0M"J$/$AP!!-0LQ0T@CV;3F3!@A 6 MP48C9H82)#'U0G"X;,.!+S'?M .J2."AK/%D^%:@(]0"?HY BDR(JVM/8\;A M,])TPX)_L5"; A&8O$,&&&,'FN,]P<+"L<%_&M\V\R.?.09!.40T+2 SM&*. MF-%@"W"Q*5Q->M4:/G9%C MP0<0^X>V! 8UM O/1V=N3%\M6%*(I^&TJ*,)'HF+)PTTAB?CJT_><@M_@^I( MYUL08O\8\,-PQQ8KM^-R8N1A:F]NF8ESLFP6G',.M2Y\;W*64.!J- NU]P0*)V#NK+5WO3F%E^49(2>6-H)E%'%#CHSAI+1P#/SM,R/PW$8A MU'H[(.\-8UIOV0,&:S=LZOD(\,=1@8X71(O0K5V%;ET/W=JN++I5L( 6\X"" MMTKKC%K,<%\D+)&@JH;V-SQ&ETM"=75D/Q^-;0MX_*-T(H_??0Y@*QVP!?CM MSV $10D-)95]VFLN-'S[#P0]FMF[N:S(7T;TSR<'J M8+]]GD^PK=C1^ G&"KYR"SH>?H'JWK<1?VI,I[[W#,8C9,Y+D5D), M/-3<=\1OOS+OP3>F8]L$UJ^%#ON"2WIZFKDZF[>QX60>0H^.CB=SDM#*-8=Z[/J*=5<@P2;N-S7 M0(:O7!;O+;==4O&NH5K;S>42B;L0Z^_&_WJ^_%) /X%GEV_L1GC;\U 64I^% M6[QUJQRTG C)*<@E?M=WJ+Z4:6L>%J@$\6MX28R7E4);?-32I M"PLPK\GL1_2K]Y5YYSO$O*X?7O6L6FVUR_$NMV"7%SA0$*P$@6:(;0">E_N@ M&6'9(JU]@:M359WX65OGO\L*^'!966LM!^A\G0N^>1#7PMVM81"P,#@\_WJ^ M(1DQA^$XF@-[%8I/B_,PO3@+HVC.!##\4!7C,0T*EA,NU_C,GT$XC0B+D!?("R M=NE:$;*0X?QQA=ER<= 1-.!Q0RU WT>[?Y'''Y4T\=S"XRX9@2B-#?:I,%;X MGJJ9&M:B-;J'GQETGPU;:(K:EBQ5$,F5.6WAU4- MJ>A=TVK(DNL\N&TA&" 0,G1 M*HG)+F^L>"/FC=_WC2<4L94B4(J@YHI@%1]JAJ:']>>A5W")/&I=R[)RR@T6 M]NDNO77X:I4E[W2*'RD'8>.YAAO^TP[&\WJ6L \#3 M&_B?=6<\KU>IV=%/FA5I?% GEGWMXJW=3OAJ=_+0)&_CTLRQ'$Z+7(-'DU.[ MM8"))[W&SF:KO$/7H&YL6B_-VE\. 54/S=IKZ[V>TJS[IUF/2^?2"FC6XTYC MAX,7?U>=C_!."0BBIH[\,K*[4PNS)%(Q1W83VE3)R'3U3G>''I&R,1NR,7E8 MSS?S:07,3+>Q0X^HAOY[U15J-P^.NIPS5%F%VMM6&QJE4+>F4+O+]2&MGT+M M-W;(K>6X[;5/OB_ *RL??C,F9[GF)[FB+ DE*%0MP]/>W=QH97@V9GCR^GB6 MQ*T5,#_=1F?GYF??V'6GRC7O<'-)/ZG"RK6C'_?FZX655ZZ"GYI-Q0^T.C@L.:NO6O@^)W;IE>7V*1+L@[/%[.T4IH7"6;U=,[)SNS M66_EEIVRZL[E9,,V\6URDG=\_68YJ82UW-;0@34(4L-09>\-1MY9\'+.8S4- M1JNI]TYV-D.MUDI[YX)2:8NQ9$O'VEF,5G=WF*>E3<9!'Z[$_P[HKJFZK7K& M8&N/O]@F:G[0E@Z.]>/>MK(OU1Q'4["L'1C5=>?5[,"X+EYJ MD73D 10*I6/7!K2)'F2?\A;.;=F@ICEMZN[NMJ$M9 M"F4I>BM/!E668D5+H<:;):T^SR#>-&Q7,R:\6^XV1@JT>2M-&H/E,^KU:(]L MA@.]PB?&7-GSD]J*>BXR(;ZD*5&1[^,8G!=F^)KH94T]8RLR!4IVKKS^>OKG MNUF^IU%+\^R;;6H);\EY39GK7=S=%#;O2-TD;J:9NL!X=.1[3_*3V8^PE:5V M_?7'S^^O-PA9JY_F.SX>"_YI]>42X@%9F=?IE^,X+7(]_'I^='IS/OSS:'AQ M=W[S43.<)^,ED,*/Z06797;ADS9F?$O;T^=/FLB:_*5)_^0E5,1'[[0_\O;_ M[U_R]Q\)6<;NWUV=?;/=7\E&):/$EMFLU*OUAE(M4K0YV7E\Y&V/0+L$.7$2*E">9:R[J/D4S1K'':^:/;&?)YW?W]S!;=E[M7)N57+/MB6M M_>H=W#+/L,:YT:L+RS]%RMN+++2/]WN38EE*V[=7U[K&EJW3YFPC I3B^Q)O M4%IFJ$:WZN[#8Y5Z,%TGE;\]'9;55W.3A,HZ!:\0BZW4KZI,,7I[Z4Q_!H!L MIX9R%1]52!.T'NJKU=&;[8W@6-8A5HD:(EL[H#3$ZQI"#-0225#S10M]PPT< MRG_NH[)X(_!NZ_KC33"\_G+ [>54C>"4,\$H=PF??#5L]YL7!.LIH\Y&NA&4 M&9ODL89R9;:LJ+*9GWU439O ;VQ87VT(S=$_R?&+5E)6:_M%K=Y@)^JH))B& M.H:>R5C+%/6CX>#\YD73GBTVLG$HI\9'>-K)&8"0$M'. MZ12<8ZM*4T$47VR6+WYX[A'1^MY'J >\@R:&A4PQP>$P@01#9AGAFQV$B@L. MAPONO- HYVBP)(+O;JKF-KNN_). >&H!1XSO]2ADH,:%>#,[<@ M!:U68T!8VOR22Z7M]H3.@T9'D7G_R=QN[CF5-W;%OOA<$ M LFZ-[T"*CRYZ[BS.,?_[X+$XND+;QJ":4+1,(12,B;F9&1*)L['#%V+F] MYLY:0RG.W0[G]DKB7)GZPF37[EBVW]/;F\&U*9ZM#L_F@2:7 @=LQL ?ZR>= MBECX0^^\/#3-:!(Y1LBL3/JOKO[\VV+D;?5P6521DB?7[XL$^[A&$4&*U88I M3EMOH/KQ1C!'I>:;/BCQJ;KX%(#F=AV%E"DM+;W5KF"3"LO[3[JS17EE2<]+<0/15JGEH MOO;"K>JFQ_Z*UB#R:O;L5&*T,3%J[SAT MVYC4=/7.\;:,L9*: Y.:LA $*P=P&Q.77E\_[FXKN:'DY<#DI0"FL"NGZECO M=+8IN.UC7V/,6QN)K/^ EC65Z.^;:_+-_VWGUN->:;5FBPXPZN'UN)%CY47E>.56<5 ME/U0?7RH^7;K\4.MU,_SB/IYBJ*+M=MZNH6_X=VLL'EH0\-*;P:\.B&^\]G$ M .O/^Y+.L^=ZE=QVL)<]1KVB&NZ+*(Q\EN:T<[Z'!<7=@XHW)=U:>?=64W9Q MBY9U.V:NF;Z[(5&#O4&1*K,ORY;]P@+OKK]CN--) 41O_83[O$S'I,2V#F@] M_L4,?RVGKJ-WFA4!X1TZ( I8I5M;D2R^^,[EB#%KMYM;J3-VM9%LO8G7L E/262FQ') @!AF2*)EO'NR3MP2=P'X]A7DK@9 M25R[@=\:DHAIAW4/IP8[0]XJJS@CB\=*%CR4-/C;A_FLL4ICAC$4H'5$1+C6!0(QA>#<6W MW#@[AMUMJ'FV(E,I9$K/%-T*I;;;OWP_N:1Z?84Y,W',8'5ZY2MZ;YS>[2K1 MNXH99NE$]?O;!?,.31-\08N<4/"J@(;<;89-Y0CZ]\SPW2,O"C_L34*JI-&) M&SDL6KMJ^O,.B[/\V .UW[+$!;0A,X,0$#%#GB70IL/IO'>*%& M!34U*F6.#-^(V*X.5!]-PX]Q*PDB4MQ.XIH3JRPY[>O-JN!^%,^5R'-Y2.QB M4[$]GCO16[V=-9"L?OBQ3=M R>N:ZOV2VF66+JIO:/Q7)-&K([I1HF?/+A/1 MI4_6\^WZ.^J0LF@K]\BP'!A3YT&C7S=3FV#J[M;94& G/8:$/]047])^[F3J:B/ >6&8#]Q MJH#I99MO4V@\QRV_"./'-,/$[)+AOB#P+W*-R+)#?MYIX=?H%;G"U$8L".$_ ME)A.7=4.P*/%KT93CU\TZ3O&1B,&NO21W]N']S39-0TG*.N:8>$CP3?EVS:L MQB10(BQ*LT"D?7@:#58U";2GL6V.-"9:! M]T,[XX^J^K;MJ0[X=/%J[V9B?QOE[BC7O&5R* MY9&YDKW[=-Z\SV?!E&^;\](HM*S;L>E@JB7^]?KKZ9_OQ1W ]_'I^='IS/OSS:'AQ=WX#1M1Y,EX"Z25BDMAEF5WX MI(T9W](V>"2:R"#\I4G_Y"47Q$?OM#_R]O_O7_+W'PE9QN[?79U]L]U?R48E M3N RFY5ZM9Y7L2B\R3G$P4?.8_Y-.J]?V'WXFM_:47[K>GYKO\)^JP6$9Q8B M0 [=;Q65*FZA18T1UF ET:B":27BAHE;IV,W6OP;>!FT$@/ODO0[^7FAIQE M+W %66$GXDXK#]'3PIQ$N_UOE-9+-P I1">8&N7?,O25AQ-R"H:N=X#V[(-_^5K9/BPB9Z_5-O][(K@ MDMB;-DJE09;N=GP, M,IZ';,'U033TK^HWQ6C3^0%C^M]A[I 'S5;K;,3ZO\ MDO_&^O0!3 ^X7"9H'L-V98V2H#3_TN!3H 5RV["@*7O3>$.U9$>3J^,B3@WW M%UYY2-K;T+4?C6%#Q_#!A@ '%"X0*'R17(45J+;A@)7 CJ"Z-K0@PK)AYPV* M;X:(V]*U6ZR@"_&V<@F/K:R;_O2%_KVL>.&\0 M1CH0!O$ \/5&T1?LWH]PU\GYA>"#Q'3K-60[T6%((+&)(R[OI#D M>5@B2?(\6O&%W\AU9[\BJ%8]XY9WP>_&LSV))J>T5?@H0DVOQ1,YW3\D3ZRA M;N&>L,N@(9=U97A^H-_@U,?[S3+B!'CM/Y&-5_T/;!V\#:H8M+5KVE.P11(F MBDJBD%].!&V"4]1H79%)$[10+3'W/9,P*I,^S$@LNIV:8%@4B"_.!DTS/GWJ4 MGYU&\"K \ 8VB<^ST4:@UDC="<=EBNGED!P"$]@S(&QBD$FR)LZ%=P_FDV?Y MUK6%F/%]X/2'K='N7_@E\ER\QN&X&JNY$^#%!2)9CD$1>!;RF"#9T5/'\U"V M'K3;L>>'O+$"N^EHG]Z>_BOQJZ=.! ZGR+' -8T0ONX^ M,.'>%NFHP7(Z:B<>S0T^ WWI.SC]8'_$^_] $D* CFEM^CC>0=I W%_.,?S[D;.N/C?T>LH(%"[60\" M<0>AQ@1JO_O\;AMR@[\ M+S-#C9(_$RZXVLA^9M:1.88%0;3F/8+Y@Q_/ST\N[+,.<::SB1*&%@8@.1')!7"C23)C*BL:.S M*Z!:P!E#> KPO"'$6FFSC5K>M^67W,1\"[=13QER.Y61Y%F*]&>/<"7Z24,; M%GL9V:.O^2R=-C:LY:>===I%8V"KYW9BY'LG(M^U(I)^091JNR*U";0%>D8A M/!KWR]9SJW01ISZ!.\ ]0F!US#EQ%DZ7.C*X]M!Y)5%)> M(&<>>"!O55(7S2ZM(*D96H] 7O,J(<>Z28K>N\_-QCSD.4U_N@4X:PZ_.4J^ M2$&DV$'7+-]X,OB$0=!=B5Z*?6C4!D^>_XOYB96@,B-0*IPN;A#YJ(RUJ0Q# M?R&J(ZUL<8>!;9"TCDWDI+0ZQ (IR[*>]MC[0(OCJ;[%O=/(VHNL;+"'7=/D M_,.K$>5M%W=*ZZIYAJJ]TAOJDV1_XUWU4M.RW7;VO[G3!AI*[]G(S@7G.74M MPUVEA5D+B9B:UG/&:7&V*TWL\98$K8X'? M%\GQVL,1TW)\MFXY=A_'K>U0FI>F]@=E8><3I+K&GN7QH[D?TG_ $YLZO;7[ MD*1UP5NZ,X ZZ/5WYW;O57>&'6'5+B+$Q7)X+(?$>Z,9EQQA+2L7U/ITOLE/ M8 (-3-KG]!$,[//G>A_#?(\W[&J4%J>"HYF>&F*C#F9J.@>!3_&B1%UUAB%L M_V!&,46:*0J.9A23*"81FH,/A*T.0U0Q)I0FO#O8]N'JQ+ )801>'S_^WI,X ML+IS*3J]@B'<91ZC)"[J#9.HXJM17%\5T_YJ=&%CY(?SNM<[>JE.@EQ:T;Y=8"X&H=W*97 MF%QY2X?,VZ6 .0]%SZHD4[N_-T[2RB?JVQ?=UY=8(-K] FSF]ITL'):Q7JUD M1='>RS')A@H+MG'SPQ.8HD/QNOAYZ\O93FN2E9P=D)P5G.-71ARZ@_J(0S5S M=_L3Q!W0R-7^BDWV#J:^OB+#A@N650E;M<^B473HOWOWL/I.GY(H)5%9B2K M(^Q31XA]KAE=--%;303-YX[41- 3-1%T'R>"EE7:E%,PW>O"=],ULD?T#J]S M,DBU3ELVA->A'>(*^!\0 X,6_0M\ZP_C\^7=^7>M_1$KH?BZ5_U_[)0Y_ %< M^/W\Q]U?;[4OE[=G/V]O+Z]^:,,?7^#?X;=_W5[>:E<7VL7EC^&/L\OA-^WL MZL>7RSOQG>3>6,!W?OOSV]UMYKVKB^R?U^'QKT.G00%"#][+F M7>GCG[;._]NW@5X!3X\1H!EP'7RH?_S "O\7S ]FI'TSA- &<-8=_Q9+[08EHWM%F!26TCGV@!:[^/.,^X M7J@Y]L3&ON2AIV>V_-Z+PD53+CT:K ZV-/<'4R^$=VR:[^'3]L/R#9-_Z'J/ MC,9D>:[Q:/M1H+U_=W;UC\LO1ZW!NP\:W,EB$]LD$HV-1^JPG[N*^RBP^9"- M]+P0UZ+I"7)6)VXSLJ W%1,8,N.XJ(>[F!(O)Q4F5 .)_,5HUW+F$-)X!TR@ MALAH]$,VP9O29*B0-LF*S%!\B -0CNX9WI2F.CP:MF/<4YR[<"8K YI[+TQ> M'X7?=B,27ODT"W_K>*9\7(LYQ@O0-YYQ)WAH[C=\, I.0Y#=[U.$A*>":#LR M.3N:R+$.O<:1J_J"!QC!S[AD&):%S,RO*DBG<3S@(Z8$;WG)2N1)2A \%4:<"^1][@*I M,28:#?9E#Y(VWA0-%H:L:6K-70'\["?8NH0!\9NI2]'(/?K.)U24L-UB,%[" M2')7A& N_%Z^_"S/ 3G!Z1;F/^8>M!9P8_GT"1CDD%:<"Q22F7AK_^ M!T[K5;(CZ7$QG^!;4B/19%7F1JD;AZ#EN=DG=I2?S^P*IVDPMD?APJVY![M" M2Q=LB@L>0]@$@3OW873J201_^I&;I7=VC:$?3U5.T9D&X1@X2$MX+$LJ9)JZ M$LZ39L*G[(!H,#1;!F@-O*/%1LP-P!3BT/J)AZ.G=1I*@>&YKH%R,T,P4;8I MA$HX![A$L0Q],?=.'<.E?8'-Y3].#^!&[A#7R A4PI+I74IM2/IQ.=GH)J!_ M'/ VN9=AT_[$8Z8R[(N_0?N(PU57O+.'FL3WI&_")Q.%"8,N4 3LV0Z(DW!' MPEEN>T4&06HC]-O K4S)ARX% ]YC4NIB;\\%+UQ87E0^./-UBDO.T5RIKP)5 M@,5H&A1QH^\]^,9$B%!C0/<)Z%%[R@>XS5&^X)JQ ME,T)DD4>)?"ES4T]'T*7YA%4]."24LLJH& #$PLZ,=6B]@E,!SO8:M!'8"K2/[NTM^6#X[Z.IDDNF=!VB6)F>?S\ 3"":0"ZC6D VG9@I , M9-1SP 93X")"F53LPB]B>I%#<@BV':^BI&.C)#I@(>K)Q M#?(&5[+IZ(6T23CV\.LII0#.XRN/1IP2WW'6W49&IXB#>/8C=U;XRB_UA?<;?2CFDJ=F&>(V?C=L&?>7) M\QWKR;:8AI.@O G)["):&T'@@;N%VTL.8PE[LHEHB2_?AW"".P<>'A5PYS?] M-8C3<8!:*(+@Y"NI &E16$D1TZ><.V6C$=/Q O1_8*E(XT5>,W%D' M[!>CD9D!^NQ.S+D)B>5B9I5K32<2"3F2#&F_&]\ZGFRD#4<>XZ5BBH>+,K= MNIEA=*D1I^D\(?XVN:'ATYA:H:E)58T9L3QN@) .)[U$P:8)DZ;C>;RXBU/6 M%Q$YQ1X45FP@IEC,7?/,ZH8^^DSX!!GW3+KGL7>VK*X.&/LELSJ8I*.=Y=N6 M]E[3GNK\=Q=[K&]K0 M-#WR\QW0D3.^!W+7G/.QOQZC%F!FGR8[Z]J+%Z&&D4KPI!4!>! M)E/HL(&Z3)W';S[9CC/_;C!&?W+^?3/_[:?\MT7D.?\!1;WS;R?>8\Z']\S! MC'?.)^!:TS#3O!OYWO\N6 (B@O(_D;8Q^8CT,[BBCN'+9#LIS9["(#2*;]CL<#T[7NAI?U9-YOT]F*&L"*6V.TQOT6B(\BW M2;80+\2 ZZ3.%SN8C!D62C[E_]_39%Q<%_BR8.O 7+32VQH7VVP-[B @,T> MO"!G:@< M!-%D&F?3*&+S7 RI8M<:S7P\ 9R?JS6T?S+)&G2@$YB.8?.C'"OBN3K,BJ"? M'TVY?X+INX+82+H !Z7QHS6>DK9] M,YJ@6VYR9SB=A]&E=^R9?!=Y8CURTPR)^4)\"FPTW@$1E?J%B( M.-\C$D5T:&;<@SLD+"=NC%0$-V#$M O^]5@5!"S$%7%?X!I"1NU2NX3U:"TZ M&D4&&[HN"K@X< 7F!=:$SYM'?\81S8B:A&DO#!4*:9 OS"1THNRXWIZ+&!<9 M^.1!F!.P)Q3PF4-?8DZ^3R\TB%@L]!4C0B(GDA4&.$-I:?MG_ E)L(QY@GB9 MXLB0/8\-M&^/C'[#PT5:GR&/J4B'$ ?B&F+_@[F/MN^Y>+\X7\>O#6OP'T02 M$T2#4Q;^NVU?0$&REH%D#10D2T&RUG>$?[J./ T6N%9I0X)TZI .KLCKC7U2 M)G6V'K\7!?/O@2),WO02[3\7'8'R)V."ZN;GQ;5VQ\RQ"ZST0'[,I6LVX@P; MG@YA:1'9PT".L[?W-\&-D+)'YC_:[*G&6*LLX\V06 -S:J G#IM .1!YFIZ* MWWG';V1V2?4BFU< Q6^6$<0S;,3(9S M7[?Q%I-ILP<<\=\AUM@>3>"Z8\RLV9XEHH29H4Q)&KYSW&C_CA+[V^"X<0), M[SC(UN0C_W;<:K3CMX24!@8XSN+:X)F$%(OH( <@+*"07F36 !5+? 3LQG2D M9" EPZ>@BYXI0(4?=7J-D]^Y[&>_&5_CR0CF;S+#'3.JBV=:\6;=DT8++O_5 M]P(Z!!K9(8%%\4'0:36X4N"WC*&C#_1UOOTQ=/0->PT+;@\:W=_Y[K:[L*97 M=M6!>[/D<05 PEJ 3Q!Y%U2PAH7<(\^!Q;$)IE@\SK>@P!Q#QF=)MM9&HDVC MD)_.-+2K^#[P'4PK\H JE'\FS]9JMAJ#W^ES<&X;O=]UB7H$Q;F_Z58:>Q,? M:EXE>*H:>S.O/K/-M1!.;=O31\QJV=4E?4:Y%>C86!]FE:V\=5HO<(1DFVO) MM&X5FC)'/V8DFW\-WDW.#X7V^9Y1F+265R-;+VUO,=.AHL=T#;9EC6W(/H"P; M=)PX5)40.#P5M;21C?FQ.$$$#_U_(SPGPH5H[P/&XMCMAQN43@CT@]L_*1G0)+B))B7W86]5H?^;V]IKL M[1YKBZ\I/R'7W*^F1_2T?U"H"(8+7!@]/F4A[G6,>T1H$.#"]!Q'&N746IMH MO$%P'8[K'C-#(C1B=(W6!RTVKWP>,@^?HX-P]0Y#L#A?8=:_DZ?*CTPFN)\1 MB,+'$-/7Q7(R:>TR'"%M.1]H3WD6C3AL)N4-OC(7H?RT:T,+XUZ*J3#B/4<\ M;[#?MEYNPP/?!AZ9&]E]8&(?DN#@]NO_&)/IIV$2&"PR_Z $!MS\MSHI&[J> M5OBMUZ7)HM L!(F<#[M:FT-\+*)H@I-' MW'OBL=./A(\X]]CI;0'S>T_1+1Y/_-;N26.NXX;QV/FW=F+B?9H01Q%FO#[" M3L%:;$N BV82$;3-L[@0_HQ9SB5C9W.LNIW*>+S^_#XSO0<7>,C2HJFH"$C# MF@U>JQ07H$:P0(/PS";HOE"4&%.?@'O#(7($8\8(QAL:SIP3]=N@<1SO"6&* MX0X2X42H((2SR$L3:(HCM_BSTAI\[U[ \H^>2$7S^'R6L01RB7,?(=8LACY, M@I^2ATH$E0$"FQ$/)" ^\>EPRQ#PYQ3CI>!Q85D?KL@.8K8A>95WC_?,T+XQ+,+OI"Z0_()0/R3F1^*JB BFFE&*_+": MC_RTC?$LW']&9A:P7>NXT95\QU=CKF@%X@5FM$1*5'+\W&"!A\O)(TXT7>E] MSQ^G_-9N#!*](L5%'*[Q8M%5GT*DNQ9DME((,,R])8<%V3-M_D'FC)>KL=]B M-0A^N"_K-4<>G@(B LT/XZ'4;5Z^C$H08YA@]%),_N2L;*%2WN,@_Q(]:)!Y MR2LZ'M_LL6/R@PZGLL_,<]%9 3GI#[#")@IXE2MP8*=]G+RS./;,%TVZ!(\H M,\=>V719[AEF7)\?Q'7YN?EMT%XL&UCOIU+39AV=+9]*7))?6TBL2A0XS6%"09J5?Q,CA/3RLGZ)!Z&(0)B5(DI M5%K"@/.!<2J-A.TB(#9%/2LO;TPP_?#?I&)_-JH^27Y,52[.S)'S MXG1-#F^*;B8YB^\DDI+X2O+K]Y'M\%@FFL)RT%R)AB^BN0QZ12+].[:Q;Q(E M>O TUPGFE@&B3ZFG^ @[CQAQ[B__H%BD%DEPA5-(I9G8<,4G9VWJ.;;L'98C M6N#H"<#=G,J8HV+B--*1+170!GA837EUNI ^PV[ ,3[6:!0\8S^%.L0;)<\Y M_XSRY\CV%Q:2TJ/&%?+B^ZIS8N,J M#QMXRSW:"8Q+N#I.)4O?8&7;*1Z8M[))0P$BI$"!$"]E.Y!,\. -3"_WK^,6 M(YD3#I)A I1GFOV9A")+Y;T4AJ**&(J6PE H#$7) 4.J<52BUW*55#_OC*A8 M[?$'31^@B7-A.GA.,N^\@0-U^X2K8 M7>H(2XTU;+*5:Q.;66<\_>LDFX,)(00MR#I%G@ORQ-$T>V:^:1,(4?A$X 3Q M$SK\&G:T"C0T)+G147O_?7D\6XA"[%-B2:]B&+QRP7[D)+ 0=\SGL MC2Y[AG#1H#;%=)AFB8YFO.$*_/E;JY-@5&ZQ R7LHYB]@'MZP^A(V-+X!#5M M^ !B2M[ >[Q^C*)=X9<)TI;WHDO:'>>>EZ7+YV=N*C]YT;Y"K&*XZ48M'V@1 MIYBP@BL/:9*2H6L_&L,&]<#AC;=%(VVQ6S:ZK11IH!K19T'40PSG=>T650T6 MMFC?Z'MTHV]_G&F701#AS^B\7#X5C[SIBT'2LN0H](ZH=0GJ'7+-?!9Z/(.] M$A5H3D80*PG>5RB_92:FLH56-.3OL:K9!L;B#3AY+V?24Q?LWH]P9TGEMD[V M58T0$F0VH2G,2+@J,2C3$W"; %\(EA2VLAL.)[ASE0_B>!+?LV78PYGK9@N M5C;?O):Z5'F=B4/]OA!8EZH:;X#Z_W.QS39+>'")[ MX"PRH[^U<%H<_HMAZ(2))I=N-LP1ASI@W$QL'9F:(+/*8Q#,CN(O&@8@RB1, MSY]Z=" TC>!5D.WZBTGU-/00?)*)'9* I$_N\]L<>/? <2)[NB8O46MLKM48 MBZ>YY*J\?9;-U>0/U!A/5\?0$8LA;Q).4VSAJ>-YR,H/VNW8\T,:M\OMQ+]L MYEC:)=Q('!3&12*GMZ?_2@S+U(FP$$+42A$(SN?]TWCE0J/=HSJ1=J/Y.^A7 M7?:\%V>$\\-8N.W&PY6,OIXPO@QJ@+/X?O)V_V4^6)!+E^-93=ZV$R&!29NU MI+S+8MC@GSH!(NPS!G$EL-J&]G,MSIT# :?@O0;OQA%->*7%D3G&\U1J1TMU M&NF&T[Q#;?H\%+?@F7Y-(#\243QZ13<<+GY^>GGW99ASC354GVB+*UH,I?OE M4LTMRA^=BJ1:!<>-]L*7*+$^(H&>CXK[$CZ1)B+'>LXU;\9"ZX0AUZ/8OIJ, M;]G@7#ADR:F(YSA\ALY[TJ0<5A5\^+CE[>!MRWG:[/^\:[[3,/TTQ92L^Q#_ MC1-HXK]YH@H8]@Y_&F?!LGE+, 0SR4UZ1R3&>LW?WY(^U-)#,K7F]/F3S)'R MZ;DB,1;&^4+0Z2'*MTQ9\5F]GY(,7#(3>/E%S*X_,\YW&QM5]/ MTVYH5G1K^JP19#N>IKT1 1./,HN^P6&EL;+C6!N!M]GN(E#/9F]?-@N\ON]S M+,('2B\K"CD)<)Q>W6YVP8QT3N#_>KT/)0N,U 8GK=\7,\Z*E\S04!-$S.2N MWWV^6133%M&NE%GAKZB(#T>'\J^W4??D%ST>B02 M&Y&+;1H M5W$&MYHC5IR2Y92"S+#B',4Y13H&\U9W4$M.*L.@>N^>J=["E/< M?I'*FV"*VUQ=E93KGG#;%BRXXC;%;=NK+]I/"+9J@[N0!5)M<-MR":H-KFJ# M.R]@2[0@%54'R42:/>XZFIT*)=K\41M@'--JO"R<0!,/C96C:.*6XKS%$_P< M"/]HFXQWY82U^6*.::J1WH)6>TEW03'^!T&%?"(.%G>DUH3MM_!V-)@IU23) METV29N#'V?&6,]-P\MK^)@VIJ"];ZK:S?8ZU@NF@GV;[0'%RFX;K>F&J414? MOII]O">X?[Q2.>@"=H.85 S16K"/6"H#=I!WGZQKT'"P M_(:I2>U0/.[6P\D)3#2XGX*3 !<"$?F%HQ]HE-\]-79S&7X)>\1)AL=&L#[U MZ<*!QKAU3OPAR*28L,H?.D7/?>W2=<>'37D1L(,=8 NX^0YV.)6*QK'$^X+; M;UE)TU[XF[EC/DHMT3JC$39E<[$QFVSS.\E,-\ +AUDIH!:ALD]=/!EA=N W M3?7![],8$)Q!ZX*U?J"_<$J<[UF1B2-D4#"1NZEQ&[5;0U[ R1\A#DX(;.SN MEUW /7-L]LB"1*K9L\VG1/ARKEFZIZ!-TV,6=HD-O0=&C0MYAV74 S/#L!-U M-J.K=*Y$X"M!)/8RC >:\J;)<#4\=3Y^,E=H%P\C"#[*(N,:+Q:*KV$_9XP%B8KG6\I M&M#M[E,MOC-W1>LW,AX]GU\/C @*R @+4 TGN[U_#5+F5B[#AH^DL-(0R^>0 M>@(GG,+' /A,^E;1=,]N@??*) !WM*U?[OQ'X;*T^ M=9OO95T!%-I(Z!!A'4\]PZ?!%U] D9G8!%LS(G@*'_;/$HYG3'@: MR6R.A0,'TOUPL34Y]F_'Q:<;(@OQF>MUG%Z$EUX#31D,8B5X$X%>:#7O>T>MN9RJ4>MDU3[=?GM\VF,7@X-F:?.F00IG;$ M$3JZ[7^_F5E54G$V&-.V&/JA X-41U9F5M:769FP@8GC!*DWQP?SQU?-8QT" MRL,;9[FG$J686IER>:M:U)3-6S "IL0'\F%J7&T)YM6C,,C@;3'"D(]4Z1!G MA,*2E.35WA2*&Y-T*^VLYQ2G.FXT$2PZXV+]Q[C.HUQ,S,K+D^.GV"[0'L74 M[>M))5/7!U% V;I!1D>3/A]P_ 1SQH3B\5%);LPP*3>SD$H86F7CB7:@Y/EU#?(@GJNR>:APX"),2 M$]&[ZNM]+6D7E!HP/FJ5)8F:%\N*)I4"*4MS7%(&U:@T>G2V6J5$5LU6<2@D4#H<,H^&8]#D;5_ MMO9'PC-K:48E?5#@O8DL)(@*QQR/(ZI]C1F&4&?68)B@K<^^,)5IG0I9"J I MKN(15]XV_.BVCL\+Y+G )& FRN"%L!:PF[ M*3[. <]25;7EV*P$L&**'YEUZS1&Y0*\KF?1.:-O1*H#A_'^;Q^F.5[X !M\ MB(,2?\ V.?CMPS_@J:SSR>Y8=ZQPC1PMIK+M_]#5'UVST;$[9L?^C\7,1I7! M%W7U=]5N5^K-=K=EM9EYT^QVV)W9^F)U6,MN?_F[2Y)D%3!.1^P0\28:;1#@QR :@>P@Q):1$138B2OX57:,.)0*.6#! MU.T1;*6&I2&(V$#<-9W: N3_A'Q^Y,G'D JR+-@)YZ="+3B]7C2*/%&[5!Y# MHC&K1&25"&!HZ.Q,M\Q)M)PSKE4OV*GIP0BBO-.>5-4]UV\:BBAT* M+L.=0/,'"LX7 P$!F_0HXW-?!?Q@$[#WQF$.LBBJ>!BA3'6* "81L2@2V:5- MQ@DF8^CI0T&^1Q5=NMN'9E"]UT3 MZCT(Y[M5 :]WCLLGI[C\W!GNWFQUF&WO=HAK=CY;+68W:LW6G=FQFXT4PQ8O M)3'/:43&/Q:/RKG=J%RW;LVZ."-;5;MQVSX(*L^YV+EP13FJB/N$B?@>"0QA M+7'I;(MC4Y(?P1#P5%UK+,-JL)HOB\.3U4)NO(4*WZ[>&XYS$F&!78Z0*YSR M^"B&8J<>!DNBWY.36U^J[C48+]4.IF>F?!R[,-6FNZQD,?JUU_4=#"FX2/CK M,&:3HE&QVCS[7]1_E+7 P19UP]"3\4C"Q):C=1X?T6)"R_H[-440G).0T>F# MN@Z4Z:R"3A>TO![ (YVQV*\8%%GSZ0^Z?+DR<&:T@;-4'9A;Z@/,ZXR@<,VL M=)JM-(O_-D$W P<#T!TVC@B=Q<"3.&Y9G74$,AP'B?8Y&J H&Q0;C"610WIN MA U""R(* A]5OII92?Q7H&P7 T%CZ+WO0H>>/%I$0: =SO7.I]][#^(ECY'G0-LS,"K;;-3'R8;T%#K":"&.)C^^9^'FGFK8.TB0BB?S6 MG&E(J&H30)Y""=6D5<"%BEC:QBFUP6#3JC0V<*0FBD(WS?B\<49J(K^;U=!M MM*Q;N]VQ6E:5MFV[(YM"?R]V[;P1VEBK%,P+T*1 MYS+7O!'Y&Y-Q:E&!#8\$^84M*K_(>06=\_;A]JQ:-;-;[[19][[9 %9KV,V6 MQG$'O'T=64RP6%%GL7UX#^_LA@5*K6:!+M,4EGLM(R M)BL=T8WWK+F.?O=-_.[%H]_]Z'??#JDH+JC/XJ+Z+.OJL[Q,?99W4Y_6GY_M M&[OS%IORUE7_ME\+P<$D.+J*AOR!AZPQ =6.KWU:D?UE9:<75\;E MEIU6W:#G\ZDHT3K?Z5S*MI?,?T]8- B&D(!A&$ZOL]GOW[\;@=LS'B??LJ;? M&_)O;I!U^X^.G^T[H9.]RA5SI7(6%& N=Y&[+!;RA?/S?/'B,NL^#;\6=F:OE]KAGL!,^AF:G$U_=?2*$SL6;+>&$*:&!Q5D1\:#8 M>O/A!DS5#I^#QB[/OF0HC$1SV,-)&7\WIS[W8/N7=VM.\.L:/(G2S(#,9[E\ MN7AY>JI$6ZG 17Y*@="Y3U]+,)^KJXW$)I<"N=EJ1AB&)=:/8K&*)\YIE@*Q M\)/XH8(3&F DCAX>MCPVP_B8:C:X.#_?D WR*6&##6>T&QLLA.&DG@TVVT3S MJ=$&&\YH9HT#O(L<1(Y(')*[9%VC;52,#$;]A2*TC_BE="XBY_J3*>YJ^DLS M3UZ=E^.;QX[_X(S=X*SYY+G/ZM)Q'O9MXV/*6"<'E+4;[??( _88K0#VYTVK M#N8'7H8'.Z,ZZ47HHD<131.-VY7/[YW&'><)TUP]P[88NB*=2KLW=$=.:HE> M,>NI(7K%\7J1R"#&$)_!._VI)7S=O$D-X>O.@^NEG^3W+2LU)+_WW0#SD1T& MLU>M6FHHGZCV*EYLX3]Q!7+GQ9=2J$+AT/?.HPN&0.BBU8>'MJH3.N)D?R)N MIM#EBX#I,Y]/-1,J2K@Q)?1[+1C#Y"07?LBP#!BL\NEK)%C>0S&CK[/_UL/% M>^C_X\M0[AHA-Q@^A0OT __9/H;]TG%'_I@'PS<=^R;^D#?J=C?_JO3^+81^ M;8%NVK<-LR,"&B2"_CX./1H9R+L1=*_VK&%[7?&/1[[: L[OAI M^1PW2]&5D2\^\@!SB8D[-OV(LM)& =UT3.ZYBIN&.%GX82)RJCZX0\<;J$N' MQ KR 8QS=Z,QO$3M)>FX#B 9)F<$&)O53XWFO7FK6VU,\QN5'[V7'^:][!4 M,@KEBW+QXKQT>9DOE/;K2I1UD$37Q;)QL4>K#2_P7K,[YQDTLW!@;&%;S@[T MG]H"+7U[MNB$J!F%U:-4Z,*ZUDOGQM4>R7 #6U@VR+*6P7YW!P/??68W#O>\ MYU^JH,'8ZIUS.K_"H9.O+174YQ<5HES-SCH$[N MXYS\"^,Y/3PV6FA@ZRD=U=S;J3G,IMQGOQNL[N"M&>7-.CPVW9>V6R#@7M7= M4J_AS]%E"]VNTV5O7/_IV,NVO6CQFG6SW3E+PE%7QNJ^ZQC+KP0 $@2 - " 4\/ !E>%\U M,3(W,#$N:'1M4$L! A0#% @ ]DFJ5G:I2%;!% XPD! !$ M ( !*10 '5F<'0M,C R,S S,S$N>'-D4$L! A0#% @ ]DFJ5L,* MF=Q<$@ 724! !4 ( !&2D '5F<'0M,C R,S S,S%?8V%L M+GAM;%!+ 0(4 Q0 ( /9)JE;02<,;RTP (+"!@ 5 " M :@[ !U9G!T+3(P,C,P,S,Q7V1E9BYX;6Q02P$"% ,4 " #V2:I6SNI@ MK\QN #@2 8 %0 @ &FB =69P="TR,#(S,#,S,5]L86(N M>&UL4$L! A0#% @ ]DFJ5L>TVQ&,40 Q%P' !4 ( ! MI?< '5F<'0M,C R,S S,S%?<')E+GAM;%!+ 0(4 Q0 ( /9)JE9:R '3 M4^8 ,.9#0 4 " 61) 0!U9G!T,C R,S S,S%?,3!Q+FAT 7;5!+!08 "0 ) #X" #I+P( ! end