0001437749-24-020133.txt : 20240613 0001437749-24-020133.hdr.sgml : 20240613 20240613083101 ACCESSION NUMBER: 0001437749-24-020133 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 71 CONFORMED PERIOD OF REPORT: 20240430 FILED AS OF DATE: 20240613 DATE AS OF CHANGE: 20240613 FILER: COMPANY DATA: COMPANY CONFORMED NAME: Perma-Pipe International Holdings, Inc. CENTRAL INDEX KEY: 0000914122 STANDARD INDUSTRIAL CLASSIFICATION: INDUSTRIAL & COMMERCIAL FANS & BLOWERS & AIR PURIFYING EQUIP [3564] ORGANIZATION NAME: 06 Technology IRS NUMBER: 363922969 STATE OF INCORPORATION: DE FISCAL YEAR END: 0131 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-32530 FILM NUMBER: 241040074 BUSINESS ADDRESS: STREET 1: 24900 PITKIN ROAD STREET 2: SUITE 309 CITY: SPRING STATE: TX ZIP: 77386 BUSINESS PHONE: 2815986222 MAIL ADDRESS: STREET 1: 24900 PITKIN ROAD STREET 2: SUITE 309 CITY: SPRING STATE: TX ZIP: 77386 FORMER COMPANY: FORMER CONFORMED NAME: MFRI INC DATE OF NAME CHANGE: 19970402 FORMER COMPANY: FORMER CONFORMED NAME: MIDWESCO FILTER RESOURCES INC DATE OF NAME CHANGE: 19970402 10-Q 1 ppih20240430_10q.htm FORM 10-Q ppih20240430_10q.htm
0000914122 Perma-Pipe International Holdings, Inc. false --01-31 Q1 2024 644 699 0.01 0.01 50,000 50,000 8,018 8,018 8,017 8,017 112 112 0 0 1 1 1 0 0 3 5 15 4 5 0.2 1.9 0.1 December 23, 2042 0.1 http://investors.permapipe.com/20240430#LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine http://fasb.org/us-gaap/2024#PropertyPlantAndEquipmentNet 1 30 0.1 http://investors.permapipe.com/20240430#LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine http://fasb.org/us-gaap/2024#LongTermDebtNoncurrent http://fasb.org/us-gaap/2024#PropertyPlantAndEquipmentNet 0.6 false false false false Includes variable lease costs, which are not material. 00009141222024-02-012024-04-30 xbrli:shares 00009141222024-06-13 thunderdome:item iso4217:USD 00009141222023-02-012023-04-30 iso4217:USDxbrli:shares 00009141222024-04-30 00009141222024-01-31 0000914122us-gaap:RelatedPartyMember2024-04-30 0000914122us-gaap:RelatedPartyMember2024-01-31 0000914122us-gaap:CommonStockMember2024-01-31 0000914122us-gaap:AdditionalPaidInCapitalMember2024-01-31 0000914122us-gaap:RetainedEarningsMember2024-01-31 0000914122us-gaap:TreasuryStockCommonMember2024-01-31 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-01-31 0000914122us-gaap:CommonStockMember2024-02-012024-04-30 0000914122us-gaap:AdditionalPaidInCapitalMember2024-02-012024-04-30 0000914122us-gaap:RetainedEarningsMember2024-02-012024-04-30 0000914122us-gaap:TreasuryStockCommonMember2024-02-012024-04-30 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-02-012024-04-30 0000914122us-gaap:CommonStockMember2024-04-30 0000914122us-gaap:AdditionalPaidInCapitalMember2024-04-30 0000914122us-gaap:RetainedEarningsMember2024-04-30 0000914122us-gaap:TreasuryStockCommonMember2024-04-30 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-04-30 0000914122us-gaap:CommonStockMember2023-01-31 0000914122us-gaap:AdditionalPaidInCapitalMember2023-01-31 0000914122us-gaap:RetainedEarningsMember2023-01-31 0000914122us-gaap:TreasuryStockCommonMember2023-01-31 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-01-31 00009141222023-01-31 0000914122us-gaap:CommonStockMember2023-02-012023-04-30 0000914122us-gaap:AdditionalPaidInCapitalMember2023-02-012023-04-30 0000914122us-gaap:RetainedEarningsMember2023-02-012023-04-30 0000914122us-gaap:TreasuryStockCommonMember2023-02-012023-04-30 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-02-012023-04-30 0000914122us-gaap:CommonStockMember2023-04-30 0000914122us-gaap:AdditionalPaidInCapitalMember2023-04-30 0000914122us-gaap:RetainedEarningsMember2023-04-30 0000914122us-gaap:TreasuryStockCommonMember2023-04-30 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-04-30 00009141222023-04-30 0000914122srt:RestatementAdjustmentMemberus-gaap:CommonStockMember2024-01-31 0000914122srt:RestatementAdjustmentMemberus-gaap:CommonStockMember2023-01-31 0000914122us-gaap:UnbilledRevenuesMember2024-02-012024-04-30 0000914122us-gaap:UnbilledRevenuesMember2023-02-012023-04-30 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2024-02-012024-04-30 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2023-02-012023-04-30 0000914122ppih:FinanceLeaseObligationsMember2024-02-012024-04-30 0000914122ppih:FinanceLeaseObligationsMember2023-02-012023-04-30 xbrli:pure 0000914122us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2015-12-31 0000914122us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2016-01-012024-04-30 0000914122us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2024-04-30 0000914122us-gaap:OtherNoncurrentAssetsMemberus-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2024-04-30 0000914122us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2024-02-012024-04-30 0000914122us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2023-02-012023-04-30 0000914122us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2024-02-012024-04-30 0000914122us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2023-02-012023-04-30 0000914122us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2024-02-012024-04-30 0000914122us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMemberppih:OneCustomerMember2024-02-012024-04-30 0000914122us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2023-02-012023-04-30 0000914122us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMemberppih:OneCustomerMember2023-02-012023-04-30 0000914122us-gaap:ProductMemberus-gaap:TransferredAtPointInTimeMember2024-02-012024-04-30 0000914122us-gaap:ProductMemberus-gaap:TransferredAtPointInTimeMember2023-02-012023-04-30 0000914122ppih:SpecialtyPipingSystemsAndCoatingMemberppih:TransferredAtPointInTimeUsingInputMethodMember2024-02-012024-04-30 0000914122ppih:SpecialtyPipingSystemsAndCoatingMemberppih:TransferredAtPointInTimeUsingInputMethodMember2023-02-012023-04-30 0000914122ppih:SpecialtyPipingSystemsAndCoatingMemberppih:TransferredAtPointInTimeUsingOutputMethodMember2024-02-012024-04-30 0000914122ppih:SpecialtyPipingSystemsAndCoatingMemberppih:TransferredAtPointInTimeUsingOutputMethodMember2023-02-012023-04-30 utr:Y 0000914122us-gaap:MiddleEastMember2024-04-30 0000914122us-gaap:MiddleEastMember2024-01-31 0000914122ppih:PermaPipeCanadaLtdMember2016-12-31 0000914122us-gaap:RestrictedStockMember2024-02-012024-04-30 0000914122us-gaap:RestrictedStockMember2023-02-012023-04-30 0000914122us-gaap:EmployeeStockOptionMember2024-01-31 0000914122us-gaap:EmployeeStockOptionMember2023-02-012024-01-31 0000914122us-gaap:EmployeeStockOptionMember2024-02-012024-04-30 0000914122us-gaap:EmployeeStockOptionMember2024-04-30 0000914122us-gaap:RestrictedStockMember2024-01-31 0000914122us-gaap:RestrictedStockMember2024-04-30 0000914122ppih:RevolvingLinesNorthAmericaMember2018-09-202018-09-20 0000914122ppih:RevolvingLinesNorthAmericaMember2018-09-20 0000914122ppih:RevolvingLinesNorthAmericaMember2021-09-172021-09-17 0000914122ppih:RevolvingLinesNorthAmericaMember2021-09-17 0000914122ppih:RevolvingLinesNorthAmericaMembersrt:MinimumMemberus-gaap:BaseRateMember2021-09-172021-09-17 0000914122ppih:RevolvingLinesNorthAmericaMembersrt:MaximumMemberus-gaap:BaseRateMember2021-09-172021-09-17 0000914122ppih:RevolvingLinesNorthAmericaMembersrt:MinimumMemberppih:SecuredOvernightFinancingRateSOFRMember2021-09-172021-09-17 0000914122ppih:RevolvingLinesNorthAmericaMembersrt:MaximumMemberppih:SecuredOvernightFinancingRateSOFRMember2021-09-172021-09-17 0000914122ppih:RevolvingLinesNorthAmericaMembersrt:MinimumMemberppih:AdditionalSOFRAdjustmentBasedOnTermOfInterestPeriodMemberppih:SecuredOvernightFinancingRateSOFRMember2021-09-172021-09-17 0000914122ppih:RevolvingLinesNorthAmericaMembersrt:MaximumMemberppih:AdditionalSOFRAdjustmentBasedOnTermOfInterestPeriodMemberppih:SecuredOvernightFinancingRateSOFRMember2021-09-172021-09-17 0000914122ppih:RevolvingLinesNorthAmericaMemberppih:NorthAmericanLoanPartiesMember2021-09-17 0000914122ppih:RevolvingLinesNorthAmericaMemberppih:NorthAmericanLoanPartiesMember2021-09-172021-09-17 0000914122ppih:RevolvingLinesNorthAmericaMember2024-04-30 0000914122ppih:RevolvingLinesNorthAmericaMember2024-01-31 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2021-04-14 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2021-04-142021-04-14 0000914122ppih:MortgageNoteSecuredByTennesseeManufacturingFacilityMember2021-04-142021-04-14 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2021-04-14 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2021-04-142021-04-14 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2024-01-31 iso4217:AED 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member2024-04-30 0000914122ppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Memberppih:ForeignRevolvingLinesMember2024-04-30 0000914122ppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Memberppih:ForeignRevolvingLinesMember2024-01-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member2024-01-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries2Member2024-04-30 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member2024-01-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries2Member2024-01-31 iso4217:EGP 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember2021-06-30 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember2024-04-30 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember2023-08-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember2024-01-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member2021-12-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member2024-04-30 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member2022-11-30 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember2022-03-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember2024-04-30 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember2024-01-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember2024-04-30 0000914122ppih:ForeignRevolvingLinesMemberppih:RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember2024-01-31 0000914122ppih:ForeignRevolvingLinesMember2024-04-30 0000914122ppih:ForeignRevolvingLinesMember2024-01-31 0000914122ppih:ForeignRevolvingLinesMembersrt:MinimumMemberppih:EIBORMember2024-02-012024-04-30 0000914122ppih:ForeignRevolvingLinesMembersrt:MaximumMemberppih:EIBORMember2024-02-012024-04-30 0000914122ppih:ForeignRevolvingLinesMembersrt:MinimumMember2024-04-30 0000914122ppih:ForeignRevolvingLinesMembersrt:MinimumMemberppih:CentralBankOfEqyptCbeRateMember2024-02-012024-04-30 0000914122ppih:ForeignRevolvingLinesMembersrt:MaximumMemberppih:CentralBankOfEqyptCbeRateMember2024-02-012024-04-30 0000914122ppih:ForeignRevolvingLinesMemberppih:SIBORMember2024-02-012024-04-30 0000914122ppih:ForeignRevolvingLinesMembersrt:MaximumMember2024-04-30 0000914122ppih:ForeignRevolvingLinesMembersrt:WeightedAverageMember2024-04-30 0000914122ppih:ForeignRevolvingLinesMember2024-02-012024-04-30 0000914122ppih:PromissoryNoteMember2024-04-30 0000914122ppih:CanadianMortgageNoteMember2016-07-282016-07-28 iso4217:CAD 0000914122ppih:CanadianMortgageNoteMember2024-04-30 0000914122ppih:CanadianMortgageNoteMember2024-01-31 0000914122ppih:AbuDhabiLandLeaseMember2023-02-012024-01-31 0000914122ppih:AbuDhabiLandLeaseMember2024-02-012024-04-30 0000914122ppih:AbuDhabiLandLeaseMember2024-04-30 0000914122srt:MinimumMember2024-04-30 0000914122srt:MaximumMember2024-04-30 0000914122ppih:FinanceLeasesAssetsMember2024-04-30 0000914122ppih:FinanceLeasesAssetsMember2024-01-31 00009141222021-10-04 00009141222022-12-07 0000914122ppih:JointVentureMember2023-06-01 0000914122ppih:GulfInsulationGroupMemberppih:JointVentureMember2023-06-01 0000914122ppih:GulfInsulationGroupMemberus-gaap:RelatedPartyMember2023-06-01 0000914122us-gaap:RelatedPartyMember2023-06-01 0000914122ppih:GulfInsulationGroupMember2024-02-012024-04-30 0000914122ppih:GulfInsulationGroupMember2023-02-012023-04-30 0000914122ppih:GulfInsulationGroupMember2024-04-30 0000914122ppih:GulfInsulationGroupMember2024-01-31
 

 

Table of Contents

UNITED STATES

SECURITIES AND EXCHANGE COMMISSION

WASHINGTON, D.C. 20549

 

FORM 10-Q

 

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

 

For the quarterly period ended April 30, 2024

 

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

 

For the transition period from ________ to ________

 

Commission File No. 001-32530

 

Perma-Pipe International Holdings, Inc.

(Exact name of registrant as specified in its charter)

logo.jpg
 

Delaware

36-3922969

(State or other jurisdiction of incorporation or organization)

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

 

 

24900 Pitkin Road, Suite 309, Spring, Texas

77386

(Address of principal executive offices)

(Zip Code)

 

(847) 966-1000

(Registrant's telephone number, including area code)

 

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

 

Title of each classTrading Symbol(s)Name of each exchange on which registered
Common Stock, $.01 par value per sharePPIHThe Nasdaq Stock Market LLC

 

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

Yes ☒    No ☐

 

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

 

Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of "large accelerated filer", "accelerated filer", "smaller reporting company" and "emerging growth company" in Rule 12b-2 of the Exchange Act.  Large accelerated filer ☐   Accelerated filer ☐   Non-accelerated filer ☒   Smaller reporting company    Emerging growth company

 

If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act. ☐

 

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

 

On June 13, 2024, there were 8,017,981 shares of the registrant's common stock outstanding.

 

 

 

 

Perma-Pipe International Holdings, Inc.

 

FORM 10-Q

 

For the fiscal quarter ended April 30, 2024

 

TABLE OF CONTENTS

 

Item

 

Page

 

 

 

Part I

Financial Information

 

 

 

 

1.

Financial Statements

 

 

Consolidated Statements of Operations (Unaudited) for the Three Months Ended April 30, 2024

2

 

Consolidated Statements of Comprehensive Loss (Unaudited) for the Three Months Ended April 30, 2024 and 2023

3

 

Consolidated Balance Sheets as of April 30, 2024 (Unaudited) and January 31, 2024

4

 

Consolidated Statements of Stockholders' Equity (Unaudited) for the Three Months Ended April 30, 2024 and 2023

5

 

Consolidated Statements of Cash Flows (Unaudited) for the Three Months Ended April 30, 2024 and 2023

6

 

Notes to Consolidated Financial Statements (Unaudited)

7

 

 

 

2.

Management's Discussion and Analysis of Financial Condition and Results of Operations

19

 

 

 

4.

Controls and Procedures

25

 

 

 

Part II

Other Information

 

     

6.

Exhibits

26

 

 

 

Signatures

27

 

 

 

PART I FINANCIAL INFORMATION

 

Item 1.

Financial Statements

 

PERMA-PIPE INTERNATIONAL HOLDINGS, INC. 

CONSOLIDATED STATEMENTS OF OPERATIONS

(In thousands, except per share data)

(Unaudited)

 

  

Three Months Ended April 30,

 
  

2024

  

2023

 

Net sales

 $34,321  $29,657 

Cost of sales

  23,804   22,883 

Gross profit

  10,517   6,774 
         

Operating expenses

        

General and administrative expenses

  6,148   5,460 

Selling expenses

  1,235   1,239 

Total operating expenses

  7,383   6,699 
         

Income from operations

  3,134   75 
         

Interest expense

  507   512 

Other (expense) income

  (67)  72 

Income (loss) before income taxes

  2,560   (365)
         

Income tax expense

  770   758 
         

Net income (loss)

  1,790   (1,123)

Less: Net income attributable to non-controlling interest

  347   - 

Net income (loss) attributable to common stock

 $1,443  $(1,123)
         

Weighted average common shares outstanding

        

Basic

  7,906   8,004 

Diluted

  8,056   8,004 
         

Earnings per share attributable to common stock

        

Basic

 $0.18  $(0.14)

Diluted

 $0.18  $(0.14)

 

See accompanying notes to consolidated financial statements.

 

 

 

 

PERMA-PIPE INTERNATIONAL HOLDINGS, INC. 

CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS)

(In thousands)

 (Unaudited)

 

  

Three Months Ended April 30,

 
  

2024

  

2023

 

Net income (loss)

 $1,790  $(1,123)
         

Other comprehensive income (loss)

        

Foreign currency translation adjustments, net of tax

  (1,415)  (437)

Comprehensive income (loss)

 $375  $(1,560)

Less: Comprehensive income attributable to non-controlling interests

  347   - 

Total comprehensive income (loss) attributable to common stock

 $28  $(1,560)

 

See accompanying notes to consolidated financial statements.

 

 

 

PERMA-PIPE INTERNATIONAL HOLDINGS, INC. 

CONSOLIDATED BALANCE SHEETS

(In thousands, except per share data)

 

  

April 30, 2024

  

January 31, 2024

 
   (Unaudited)     

ASSETS

        

Current assets

        

Cash and cash equivalents

 $7,674  $5,845 

Restricted cash

  1,390   1,395 

Trade accounts receivable, less allowance for credit losses of $644 at April 30, 2024 and $699 at January 31, 2024

  44,276   46,646 

Inventories

  15,408   15,541 

Prepaid expenses and other current assets

  12,223   9,697 

Unbilled accounts receivable

  15,718   16,597 

Costs and estimated earnings in excess of billings on uncompleted contracts

  2,302   3,097 

Total current assets

  98,991   98,818 

Long-term assets

        

Property, plant and equipment, net of accumulated depreciation

  38,211   37,620 

Operating lease right-of-use asset

  6,165   6,467 

Deferred tax assets

  8,160   7,919 

Goodwill

  2,172   2,222 

Other long-term assets

  3,464   2,665 

Total long-term assets

  58,172   56,893 

Total assets

 $157,163  $155,711 

LIABILITIES AND STOCKHOLDERS' EQUITY

        

Current liabilities

        

Trade accounts payable

 $24,672  $25,323 

Accrued compensation and payroll taxes

  1,752   1,214 

Commissions and management incentives payable

  4,967   4,523 

Revolving line - North America

  5,312   5,519 

Current maturities of long-term debt

  6,099   4,071 

Customers' deposits

  5,285   4,264 

Operating lease liability short-term

  845   914 

Other accrued liabilities

  7,628   9,039 

Billings in excess of costs and estimated earnings on uncompleted contracts

  891   495 

Income taxes payable

  1,959   2,380 

Total current liabilities

  59,410   57,742 

Long-term liabilities

        

Long-term debt, less current maturities

  4,069   4,229 

Long-term finance obligation

  8,982   9,035 

Deferred compensation liabilities

  1,031   1,212 

Deferred tax liabilities

  993   1,217 

Operating lease liability long-term

  6,032   6,270 

Loan payable to GIG

  2,753   2,753 

Other long-term liabilities

  1,313   1,275 

Total long-term liabilities

  25,173   25,991 

Non-controlling interest

  7,033   6,266 

Commitments and contingencies

          

Stockholders' equity

        

Common stock, $.01 par value, authorized 50,000 shares; 8,018 issued and outstanding at April 30, 2024 and 8,017 at January 31, 2024

  80   80 

Additional paid-in capital

  59,870   60,063 

Treasury stock, 112 shares at April 30, 2024 and January 31, 2024

  (968)  (968)

Retained earnings

  13,531   12,088 

Accumulated other comprehensive loss

  (6,966)  (5,551)

Total stockholders' equity

  65,547   65,712 

Total liabilities and stockholders' equity

 $157,163  $155,711 

 

See accompanying notes to consolidated financial statements.

 

 

PERMA-PIPE INTERNATIONAL HOLDINGS, INC. 

CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY

(In thousands, except share data)

(Unaudited)

 

  

Common Stock

  

Additional Paid-in Capital

  

Retained Earnings

  

Treasury Stock

  

Accumulated Other Comprehensive Loss

  

Total Stockholders' Equity

 

Total stockholders' equity at January 31, 2024

 $80  $60,063  $12,088  $(968) $(5,551) $65,712 
                         

Net income

  -   -   1,443   -   -   1,443 

Stock-based compensation expense

  -   228   -   -   -   228 

Amount attributable to non-controlling interest

  -   (421)  -   -   -   (421)

Foreign currency translation adjustment

  -   -   -   -   (1,415)  (1,415)

Total stockholders' equity at April 30, 2024

 $80  $59,870  $13,531  $(968) $(6,966) $65,547 
                         

 

  

Common Stock

  

Additional Paid-in Capital

  

Retained Earnings

  

Treasury Stock

  

Accumulated Other Comprehensive Loss

  

Total Stockholders' Equity

 

Total stockholders' equity at January 31, 2023

 $80  $62,562  $1,617  $(26) $(6,449) $57,784 
                         

Net loss

  -   -   (1,123)  -   -   (1,123)

Stock-based compensation expense

  -   229   -   -   -   229 

Foreign currency translation adjustment

  -   -   -   -   (437)  (437)

Total stockholders' equity at April 30, 2023

 $80  $62,791  $494  $(26) $(6,886) $56,453 

 

Shares

 

2024

  

2023

 

Balances at beginning of year

  8,016,781   8,007,002 

Treasury stock retired

  -   - 

Shares issued, net of shares used for tax withholding

  1,200   66,726 

Prior period adjustments

  -   (56,947)

Balances at period end

  8,017,981   8,016,781 

 

See accompanying notes to consolidated financial statements.

 

 

 

PERMA-PIPE INTERNATIONAL HOLDINGS, INC. 

CONSOLIDATED STATEMENTS OF CASH FLOWS

(In thousands)

(Unaudited)

 

  

Three Months Ended April 30,

 
  

2024

  

2023

 

Operating activities

        

Net income (loss)

 $1,790  $(1,123)

Adjustments to reconcile net income (loss) to net cash provided by operating activities

        

Depreciation and amortization

  829   915 

Deferred tax (benefit) expense

  (269)  77 

Stock-based compensation expense

  228   229 

Provision on uncollectible accounts

  (26)  26 

Gain (loss) from disposal of fixed assets

  14   (5)

Changes in operating assets and liabilities

        

Accounts receivable

  1,854   1,862 

Inventories

  (359)  1,813 

Costs and estimated earnings in excess of billings on uncompleted contracts

  1,191   1,858 

Accounts payable

  (268)  (227)

Accrued compensation and payroll taxes

  1,000   1,279 

Customers' deposits

  1,143   (371)

Income taxes payable

  (694)  (318)

Prepaid expenses and other current assets

  (2,552)  (570)

Unbilled accounts receivable

  295   (359)

Other assets and liabilities

  (2,826)  (1,275)

Net cash provided by operating activities

  1,350   3,811 

Investing activities

        

Capital expenditures

  (2,012)  (3,227)

Proceeds from insurance recovery for property and equipment

  -   5 

Net cash used in investing activities

  (2,012)  (3,222)

Financing activities

        

Proceeds from revolving credit lines

  18,268   28,333 

Payments of debt on revolving credit lines

  (16,405)  (25,527)

Payments of principal on finance obligation

  (42)  (27)

Payments of other debt

  (58)  (61)

Increase (decrease) in drafts payable

  794   (176)

Payments on finance lease obligations

  (8)  (83)

Stock options exercised and taxes paid related to restricted shares vested

  8   - 

Net cash provided by financing activities

  2,557   2,459 

Effect of exchange rate changes on cash, cash equivalents and restricted cash

  (71)  (56)

Net increase in cash, cash equivalents and restricted cash

  1,824   2,992 

Cash, cash equivalents and restricted cash - beginning of period

  7,240   6,793 

Cash, cash equivalents and restricted cash - end of period

 $9,064  $9,785 

Supplemental cash flow information

        

Cash interest paid

 $248  $521 

Cash income taxes paid

  1,575   939 

 

See accompanying notes to consolidated financial statements.

 

 

PERMA-PIPE INTERNATIONAL HOLDINGS, INC. 

NOTES TO CONSOLIDATED FINANCIAL STATEMENTS

April 30, 2024

(In thousands, except per share data, or unless otherwise specified)

(Unaudited)

 

Note 1 - Basis of presentation

 

The interim consolidated financial statements of Perma-Pipe International Holdings, Inc., and subsidiaries (collectively, "PPIH", "Company", or "Registrant") are unaudited, but include all adjustments that the Company's management considers necessary to present fairly the financial position and results of operations for the periods presented. These adjustments consist of normal recurring adjustments. Certain information and footnote disclosures have been omitted pursuant to Securities and Exchange Commission ("SEC") rules and regulations. The consolidated balance sheet as of  January 31, 2024 is derived from the audited consolidated balance sheet as of that date. The results of operations for any interim period are not necessarily indicative of future or annual results. Interim financial statements should be read in conjunction with the financial statements and the notes thereto included in the Company's latest Annual Report on Form 10-K. The Company's fiscal year ends on January 31. Years and balances described as 2024 and 2023 are for the fiscal year ending January 31, 2025 and for the fiscal year ended  January 31, 2024, respectively.

 

Significant New Accounting Policies

 

Refer to the Company's Annual Report on Form 10-K for the year ended January 31, 2024 as filed with the SEC on April 26, 2024 for discussion of the Company's significant accounting policies.

 

Subsequent Events

 

The Company has evaluated subsequent events through June 13, 2024, the date the financial statements were issued. Any material subsequent events that occurred during this time have been properly recognized and/or disclosed in these consolidated financial statements.

 

 

Note 2 - Business segment reporting

 

The Company is engaged in the manufacture and sale of products in one reportable segment: Piping Systems. The Company engineers, manufactures and sells pre-insulated specialty piping systems, and leak detection systems. Pre-insulated specialty piping systems include: (i) insulated and jacketed district heating and cooling piping systems for efficient energy distribution from central energy plants to multiple locations, (ii) primary and secondary containment piping systems for transporting chemicals, hazardous fluids and petroleum products, (iii) the coating and/or insulation of oil and gas gathering and transmission pipelines, and (iv) liquid and powder based anti-corrosion coatings applied both to the external and internal surfaces of steel pipe, including shapes like bends, reducers, tees, and other spools/fittings used in pipelines for the transportation of oil and gas products and potable water. The Company's leak detection systems are sold with its piping systems or on a stand-alone basis to monitor areas where fluid intrusion may contaminate the environment, endanger personal safety, cause a fire hazard, impair essential services or damage equipment or property.

 

Note 3 - Accounts receivable

 

The majority of the Company's accounts receivable are due from geographically dispersed contractors and manufacturing companies. Credit is extended based on an evaluation of a customer's financial condition. In the United States, collateral is not generally required. In the United Arab Emirates ("U.A.E."), Saudi Arabia, Egypt and India letters of credit are usually obtained for significant orders. Accounts receivable are due within various time periods specified in the terms applicable to the specific customer and are stated as amounts due from customers net of an allowance for claims and doubtful accounts. Standard payment terms are generally net 30 to 60 days. The allowance for doubtful accounts is based on specifically identified amounts in customers' accounts, where future collectability is deemed uncertain. Management may exercise its judgment in adjusting the provision as a consequence of known items, such as current economic factors and credit trends. Past due trade accounts receivable balances are written off when the Company's collection efforts have been unsuccessful in collecting the amount due and the amount is deemed uncollectible. The write off is recorded against the allowance for doubtful accounts.

 

7

 

In 2015, the Company completed a project in the Middle East with billings in the aggregate amount of approximately $41.9 million. The system has not yet been commissioned by the customer. Nevertheless, the Company has settled approximately $40.1 million as of April 30, 2024, with a remaining balance due in the amount of $1.8 million, all of which pertains to retention clauses within the agreements with the Company's customer, and which become payable by the customer when this project is fully tested and commissioned. Of this amount, $1.0 million is classified in other long-term assets on the Company's consolidated balance sheets.

 

The Company has been actively involved in ongoing efforts to collect this outstanding balance. The Company continues to engage with the customer to ensure full payment of the open balances, and during the three months ended April 30, 2024, and at various times throughout 2023, the Company received partial payments to settle $0.3 million and $0.6 million, respectively, of the customer's outstanding balances. Further, the Company has been engaged by the customer to perform additional work in 2024 under customary trade terms that supports the continued cooperation between the Company and the customer. As a result, the Company did not reserve any allowance against the remaining outstanding balances as of  April 30, 2024. However, if the Company's efforts to collect on this account are not successful, the Company may recognize an allowance for all, or substantially all, of any such then uncollected amounts. 

 

For the three months ended April 30, 2024 and 2023, respectively, no one customer accounted for greater than 10% of the Company's consolidated net sales. 

 

As of  April 30, 2024 and January 31, 2024one customer accounted for 11% of the Company's accounts receivable, and one customer accounted for 12% of the Company's accounts receivable, respectively.

 

Note 4 - Revenue recognition 

 

The Company accounts for its revenues under Accounting Standards Codification ("ASC") 606, Revenue from Contracts with Customers.

 

Revenue from contracts with customers

 

The Company defines a contract as an agreement that has approval and commitment from both parties, defined rights and identifiable payment terms, which ensures the contract has commercial substance and that collectability is reasonably assured.

 

The Company’s standard revenue transactions are classified into two main categories:

 

 

1)

Systems and Coating - which include all bundled products in which Perma-Pipe engineers, and manufactures pre-insulated specialty piping systems mainly relating to the district heating and cooling and oil & gas markets.

 

 

2)

Products - which include cables, leak detection products, heat trace products, material/goods not bundled with piping or flowline systems, and field services not bundled into a project contract.

 

In accordance with ASC 606-10-25-27 through 29, the Company recognizes specialty piping and coating systems revenue over time as the manufacturing process progresses because one of the following conditions exist:

 

 

1)

the customer owns the material that is being coated, so the customer controls the asset and thus the work-in-process; or

 

 

2)

the customer controls the work-in-process due to the custom nature of the pre-insulated, fabricated system being manufactured, which has no alternative future use, and there is a right to payment for work performed to date plus profit margin.

 

 Products revenue is recognized when goods are shipped or services are performed (ASC 606-10-25-30).

 

A breakdown of the Company's revenues by revenue class for the three months ended April 30, 2024 are as follows:

 

  

Three Months Ended April 30,

 
  

2024

  

2023

 
  

Sales

  

% of Total

  

Sales

  

% of Total

 

Products

 $3,253   9% $2,842   9%
                 

Specialty Piping Systems and Coating

                

Revenue recognized under input method

  10,140   30%  10,338   35%

Revenue recognized under output method

  20,928   61%  16,477   56%

Total

 $34,321   100% $29,657   100%

 

The input method as noted in ASC 606-10-55-20 is used by certain operating entities to measure revenue by the costs incurred to date relative to the estimated costs to satisfy the contract over time. Generally, these contracts are considered a single performance obligation satisfied over time and due to the custom nature of the goods and services, the "over time" method is the most faithful depiction of the Company’s performance as it measures the value of the goods and services transferred to the customer. Costs include all material, labor, and direct costs incurred to satisfy the performance obligations of the contract. Revenue recognition begins when projects costs are incurred.  

 

8

 

The output method as noted in ASC 606-10-55-17 is used by all other operating entities to measure revenue by the direct measurement of the outputs produced relative to the remaining goods promised under the contract. Due to the types of end customers, generally these contracts require formal inspection protocols or specific export documentation for units produced, or produced and shipped, therefore, the output method is the most faithful depiction of the Company’s performance. Depending on the conditions of the contract, revenue may be recognized based on units produced, inspected and held by the Company prior to shipment or on units produced, inspected and shipped. 

 

Some of the Company’s operating entities invoice and collect milestones or other contractual obligations prior to the transfer of goods and services, but do not recognize revenue until the performance obligations are satisfied under the methods discussed above.

 

Contract modifications that occur prior to the start of the manufacturing process will supersede the original contract and revenue is recognized using the modified contract value. Contract modifications that occur during the manufacturing process (changes in scope of work, job performance, material costs, and/or final contract settlements) are recognized in the period in which the revisions are known. Provisions are made for estimated losses on uncompleted contracts in the contract liabilities account in the period in which such losses are determined.

 

The transaction price associated with the Company's contracts with customers are generally determined based on the fixed amount of consideration as specified in a contract. This  may also include variable consideration in certain instances where it is considered probable that a significant reversal of cumulative revenue recognized will not occur. As a result, the amount of consideration ultimately received from the customer can fluctuate due to the variability of future events stated in a contract. Therefore, the aggregate amount of the transaction price includes the fixed consideration contained in a contract that is generally not subject to change and excludes sales and value added taxes, or amounts collected on behalf of third parties, along with any variable consideration. The total transaction price is then allocated to the performance obligations which is eventually recognized as revenue based on the project type and the method that is used to measure the transfer of promised goods and services to customers. Additionally, transaction prices relating to cost-plus contracts are determined by applying the applicable profit margin to costs incurred on contracts, whereas transaction prices relating to fixed price contracts are determined on a lump-sum basis. Further, standard payment terms are generally net 30 to 60 days, which is customer specific.

 

Contract assets and liabilities

 

Contract assets represent revenue recognized in excess of amounts billed for work in progress for which the Company has a valid contract and an enforceable right to payment for work completed. Contract liabilities represent billings in excess of costs for work in progress for which the Company has a valid contract and an enforceable right to payment for work completed. Both customer billings and the satisfaction (or partial satisfaction) of the performance obligation(s) occur throughout the manufacturing process and impact the period end balances in these accounts. In addition, contract assets include receivables or amounts that are billable beyond the passage of time. For additional information, see Note 3 in the Notes to Consolidated Financial Statements included in the Company's Annual Report on Form 10-K for the year ended January 31, 2024 as filed with the SEC on April 26, 2024, and Unbilled accounts receivable, as further described below. 

 

The following table shows the reconciliation of costs in excess of billings and billings in excess of costs: 

 

  

April 30, 2024

  

January 31, 2024

 

Costs incurred on uncompleted contracts

 $15,980  $21,912 

Estimated earnings

  10,441   11,270 

Earned revenue

  26,421   33,182 

Less billings to date

  25,010   30,580 

Costs in excess of billings, net

 $1,411  $2,602 

Balance sheet classification

        

Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts

 $2,302  $3,097 

Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts

  (891)  (495)

Costs in excess of billings, net

 $1,411  $2,602 

 

The Company anticipates that substantially all costs incurred on uncompleted contracts as of  April 30, 2024 will be billed and collected within one year

 

Unbilled accounts receivable

 

The Company has recorded $15.7 million and $16.6 million of unbilled accounts receivable on the consolidated balance sheets as of April 30, 2024 and January 31, 2024, from revenues generated by certain of its subsidiaries. The Company has fulfilled all performance obligations and has recorded revenue under the respective contracts. The deliverables under these contracts have been accepted by the customer and billings will be made once the customer takes possession of or arranges shipping for the products. The Company anticipates that substantially all of the amounts included in unbilled accounts receivable as of  April 30, 2024 will be billed within one year.

 

Practical expedients

 

Costs to obtain a contract are not considered to be incremental or material, and project duration generally does not span more than one year. Accordingly, the Company applies the practical expedient for these types of costs and as such, are expensed in the period incurred.

 

As a result of the Company's contracts having a duration of less than one year, a practical expedient was applied regarding disclosure of the aggregate amount and future timing of performance obligations that are unsatisfied or partially satisfied as of the end of the reporting period. 

 

9

 
 

Note 5 - Income taxes 

 

The determination of the consolidated provision for income taxes, deferred tax assets and liabilities and related valuation allowances requires management to make judgments and estimates. As a company with subsidiaries in foreign jurisdictions, the process of calculating income taxes involves estimating current tax obligations and exposures in each jurisdiction as well as making judgments regarding the future recoverability of deferred tax assets. The relative proportion of taxable income earned domestically versus internationally can fluctuate significantly from period to period. Changes in the estimated level of annual pre-tax income, tax laws and the results of tax audits can affect the overall effective income tax rate, which impacts the level of income tax expense and net income. Judgments and estimates related to the Company's projections and assumptions are inherently uncertain; therefore, actual results could differ materially from projections.

 

The Company's worldwide effective tax rates ("ETR") for the three months ended April 30, 2024 and 2023 were 30% and (208%), respectively. The change in the ETR is due to the inability to recognize tax benefits on losses in the United States due to a partial valuation allowance in the prior period and changes in the mix of income and loss in various jurisdictions.

 

The Company expects that future distributions from foreign subsidiaries will not be subject to incremental U.S. federal tax as they will either be remittances of previously taxed earnings and profits or eligible for a full dividends received deduction. Current and future earnings in the Company's subsidiaries in Canada and Egypt are not permanently reinvested. The earnings from these subsidiaries are subject to tax in their local jurisdiction, and withholding taxes in these jurisdictions are considered. As such, the Company has accrued a liability of $0.7 million as of April 30, 2024 related to these taxes.

 

 

Note 6 - Impairment of long-lived assets

 

The Company's assessment of long-lived assets, and other identifiable intangibles is based upon factors that market participants would use in accordance with the accounting guidance for the fair value measurement of assets. At  April 30, 2024, the Company performed an assessment to determine whether there were any triggering events that may have occurred which could indicate that the carrying value of the Company's long-lived assets are not recoverable, and an impairment may exist. Based on this assessment, the Company did not identify any triggering events that would indicate that the carrying amounts may not be recoverable with respect to long-lived assets at  April 30, 2024.  The Company will continue testing for potential impairment at least annually or as otherwise required by applicable accounting standards.

 

Goodwill. The purchase price of an acquired company is allocated between intangible assets and the net tangible assets of the acquired business with the residual of the purchase price recorded as goodwill. All identifiable goodwill as of April 30, 2024 and January 31, 2024 is attributable to the purchase of the remaining 50% interest in Perma-Pipe Canada, Ltd., which occurred in 2016.

 

The following table provides a reconciliation of changes in the carrying amount of goodwill:

 

  

January 31, 2024

  

Foreign exchange change effect

  

April 30, 2024

 

Goodwill

 $2,222  $(50) $2,172 

 

The Company performs an impairment assessment of goodwill annually as of January 31, or more frequently if triggering events occur, based on the estimated fair value of the related reporting unit or intangible asset. Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants. During the period ended  April 30, 2024, the Company performed a periodic assessment to determine whether there were any triggering events that may have occurred which could indicate that more likely than not that the fair value of the reporting unit did not exceed its carrying value, resulting in an impairment. Based on this assessment, the Company did not identify any triggering events that would indicate that the fair value is less than the carrying value of the reporting unit at  April 30, 2024 and 2023. Accordingly, the Company did not proceed with performing an impairment test as a result of this periodic assessment. the Company will continue testing for impairment at least annually as of January 31, or as otherwise required by applicable accounting standards.

 

10

 
 

Note 7 - Stock-based compensation 

 

The Company’s 2017 Omnibus Stock Incentive Plan dated June 13, 2017, as amended, which the Company's stockholders approved in June 2017 ("2017 Plan"), expired in June 2020.

 

The Company has prior incentive plans under which previously granted awards remain outstanding, including the 2017 Plan, but under which no new awards may be granted. At April 30, 2024 the Company had reserved a total of 245,150 shares for grants and issuances under these incentive stock plans, which includes a reserve for issuances pursuant to unvested or unexercised prior awards.

 

While the 2017 Plan provided for the grant of deferred shares, non-qualified stock options, incentive stock options, restricted shares, restricted stock units, and performance-based restricted stock units intended to qualify under section 422 of the Internal Revenue Code, the Company issued only restricted shares and restricted stock units under the 2017 Plan. The 2017 Plan authorized awards to officers, employees, consultants, and independent directors.

 

The Company's 2021 Omnibus Stock Incentive Plan, dated May 26, 2021, was approved by the Company's stockholders in  May 2021 ("2021 Plan"). The 2021 Plan will expire in  May 2024. The 2021 Plan authorizes awards to officers, employees, consultants and independent directors. Grants were made to the Company's employees, officers, and independent directors under the 2021 Plan, as described below.

 

Stock-based compensation expense

 

The Company has granted stock-based compensation awards to eligible employees, officers or independent directors. The Company recognized the following stock-based compensation expense for the periods presented:

 

  

Three Months Ended April 30,

 
  

2024

  

2023

 

Restricted stock-based compensation expense

 $228  $229 

 

Stock options

 

The Company did not grant any stock options during the three months ended April 30, 2024. The following table summarizes the Company's stock option activity:

 

  

Options

  

Weighted Average Exercise Price (Per share)

  

Weighted Average Remaining Contractual Term (In years)

  

Aggregate Intrinsic Value

 

Outstanding at January 31, 2024

  22  $11.15   0.7  $6 

Exercised

  (1)  6.85   -   2 

Expired or forfeited

  -   11.39   -   - 

Outstanding and exercisable at April 30, 2024

  21  $11.39   0.4  $7 

 

There was no vesting, expiration or forfeiture of previously unvested stock options during the three months ended April 30, 2024. In addition, there were no remaining unvested stock options outstanding, and therefore no unrecognized compensation expense related to unvested stock options.

 

11

 

Restricted stock

 

The following table summarizes the Company's restricted stock activity for the three months ended  April 30, 2024:

 

  

Restricted Shares

  

Weighted Average Price (Per share)

  

Aggregate Intrinsic Value

 

Outstanding at January 31, 2024

  223  $9.33  $2,079 

Granted

  -   -     

Vested and issued

  -   -     

Forfeited or retired for taxes

  -   -     

Outstanding at April 30, 2024

  223  $9.33  $2,079 

 

As of April 30, 2024, there was $0.8 million of unrecognized compensation expense related to unvested restricted stock granted under the plans. These costs are expected to be recognized over a weighted average period of 1.7 years.

 

Note 8 - Earnings per share

 

  

Three Months Ended April 30,

 
  

2024

  

2023

 

Basic weighted average common shares outstanding at April 30, 2024

  7,906   8,004 

Dilutive effect of equity compensation plans

  150   - 

Weighted average common shares outstanding assuming full dilution

  8,056   8,004 
         

Stock options and restricted stock not included in the computation of diluted earnings per share of common stock because the option exercise prices or grant date prices exceeded the average market prices of the common shares

  32   35 

Stock options and restricted stock with exercise prices or grant date prices below the average market prices

  150   210 
         

Net income (loss) attributable to common stock

 $1,443  $(1,123)
         

Earnings per share attributable to common stock

        

Basic

 $0.18  $(0.14)

Diluted

 $0.18  $(0.14)

 

12

 
 

Note 9 - Debt

 

Debt totaled $27.3 million and $25.7 million at April 30, 2024 and January 31, 2024, respectively.

 

Revolving lines - North AmericaOn September 20, 2018, the Company and certain of its U.S. and Canadian subsidiaries (collectively, together with the Company, the “North American Loan Parties”) entered into a Revolving Credit and Security Agreement (the “Credit Agreement”) with PNC Bank, National Association ("PNC"), as administrative agent and lender, providing for a three-year $18 million senior secured revolving credit facility, subject to a borrowing base including various reserves (the “Senior Credit Facility”).

 

On September 17, 2021, the North American Loan Parties executed an extension of the Credit Agreement with PNC, providing for a new five-year $18 million senior secured revolving credit facility, subject to a borrowing base including various reserves (the “Renewed Senior Credit Facility”). The Company's obligations under the Renewed Senior Credit Facility are currently guaranteed by Perma-Pipe Canada, Inc. Each of the North American Loan Parties other than Perma-Pipe Canada, Inc. (collectively, the "Borrowers") is a borrower under the Renewed Senior Credit Facility.

 

The Borrowers have used and will continue to use borrowings under the Renewed Senior Credit Facility (i) to fund future capital expenditures; (ii) to fund ongoing working capital needs; and (iii) for other corporate purposes, including potentially additional stock repurchases. Borrowings under the Renewed Senior Credit Facility bear interest at a rate equal to an alternate base rate, SOFR rate index, plus, in each case, an applicable margin. The applicable margin is based on a fixed charge coverage ratio ("FCCR") range. Interest on alternate base rate borrowings is the alternate base rate (as defined in the Renewed Senior Credit Facility) plus an applicable margin ranging from 1.00% to 1.50%, based on the FCCR in the most recently reported period. Interest on SOFR rate borrowings is the SOFR rate (as defined in the Renewed Senior Credit Facility) plus an applicable margin ranging from 2.00% to 2.50%, based on the FCCR in the most recently reported period, as well as an additional SOFR adjustment ranging from 0.10% to 0.25%, based on the term of the interest period. Additionally, the Borrowers pay a 0.25% per annum facility fee on the unused portion of the Renewed Senior Credit Facility.

 

Subject to certain exceptions, borrowings under the Renewed Senior Credit Facility are secured by substantially all of the North American Loan Parties’ assets. The Renewed Senior Credit Facility matures on September 20, 2026. Subject to certain qualifications and exceptions, the Renewed Senior Credit Facility contains covenants that, among other things, restrict the North American Loan Parties’ ability to create liens, merge or consolidate, consummate acquisitions, make investments, dispose of assets, incur debt, and pay dividends and other distributions. In addition, the North American Loan Parties may not make capital expenditures in excess of $5.0 million annually, plus a limited carryover of unused amounts. Further, the North American Loan Parties may not make repurchases of the Company's common stock in excess of $3.0 million.

 

The Renewed Senior Credit Facility also contains financial covenants requiring the North American Loan Parties to achieve a ratio of its EBITDA (as defined in the Renewed Senior Credit Facility) to the sum of scheduled cash principal payments on indebtedness for borrowed money and interest payments on the advances under the Renewed Senior Credit Facility to be not less than 1.10 to 1.00 for any five consecutive days in which the undrawn availability is less than $3.0 million or any day in which the undrawn availability is less than $2.0 million. In order to cure any future breach of these covenants by the North American Loan Parties, the Company may repatriate cash from any of its foreign subsidiaries that are otherwise not a party to the Renewed Senior Credit Facility in an amount which, when added to the amount of the Company’s Consolidated EBITDA, would result in compliance on a pro forma basis. The Company was in compliance with respect to these covenants as of  April 30, 2024.

 

The Renewed Senior Credit Facility contains customary events of default. If an event of default occurs and is continuing, then PNC may terminate all commitments to extend further credit and declare all amounts outstanding under the Renewed Senior Credit Facility due and payable immediately. In addition, if any of the North American Loan Parties or certain of their subsidiaries become the subject of voluntary or involuntary proceedings under any bankruptcy, insolvency or similar law, then any outstanding obligations under the Renewed Senior Credit Facility will automatically become immediately due and payable. Loans outstanding under the Renewed Senior Credit Facility will bear interest at a rate of 2.00% per annum in excess of the otherwise applicable rate (i) while a bankruptcy event of default exists or (ii) upon the lender's request, during the continuance of any other event of default.

 

As of April 30, 2024, the Company had borrowed an aggregate of $5.3 million at a rate of 10.0% and had $5.0 million available under the Renewed Senior Credit Facility. As of January 31, 2024, the Company had borrowed an aggregate of $5.5 million and had $4.0 million available under the Renewed Senior Credit Facility.  

 

13

 

Finance obligation - buildings and land. On April 14, 2021, the Company entered into a purchase and sale agreement (the "Purchase and Sale Agreement"). Pursuant to the terms of the Purchase and Sale Agreement, the Company sold its land and buildings in Lebanon, Tennessee (the "Property") for $10.4 million. The transaction generated net cash proceeds of $9.1 million. Concurrently with the sale, the Company paid off the approximately $0.9 million mortgage note on the Property to its lender.  The Company used the remaining proceeds to repay its borrowings under the Senior Credit Facility, for strategic investments, and for general corporate needs. Concurrent with the sale of the Property, the Company entered into a fifteen-year lease agreement (the “Lease Agreement”), whereby the Company leases back the Property at an annual rental rate of approximately $0.8 million, subject to annual rent increases of 2.0%. Under the Lease Agreement, the Company has four consecutive options to extend the term of the lease by five years for each such option.  

 

In accordance with ASC 842, Leases, this transaction was recorded as a failed sale and leaseback as the present value of lease payments exceeded substantially the fair value of the underlying assets. The Company utilized an incremental borrowing rate of 8.0% to determine the finance obligation to record for the amounts received and will continue to depreciate the assets. The current portion of the finance obligation of $0.2 million is recognized in current maturities of long-term debt and the long-term portion of $9.0 million is recognized in long-term finance obligation on the Company's consolidated balance sheets as of April 30, 2024. The net carrying amount of the financial liability and remaining assets will be zero at the end of the lease term.

 

Revolving lines - foreign. The Company also has credit arrangements used by its Middle Eastern subsidiaries in the U.A.E., Egypt and Saudi Arabia as discussed further below.

 

United Arab Emirates

 

The Company has a revolving line for 8.0 million U.A.E. Dirhams (approximately $2.2 million at April 30, 2024) from a bank in the U.A.E. As of April 30, 2024 the facility has an interest rate of approximately 8.8%, and is set to expire in July 2024, with intentions to be subsequently renewed and extended thereafter. The Company had borrowed an aggregate of $0.2 million as of April 30, 2024 and January 31, 2024, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. The Company had unused borrowing availability of approximately $1.9 million as of  April 30, 2024 and January 31, 2024, respectively. 

 

The Company has a revolving line for 20.5 million U.A.E. Dirhams (approximately $5.6 million at April 30, 2024) from a bank in the U.A.E. As of April 30, 2024 the facility has an interest rate of approximately 8.7%, and is set to expire in August 2024, with intentions to be subsequently renewed and extended thereafter. The Company had borrowed an aggregate of $0.1 million as of April 30, 2024 and January 31, 2024, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. As of  April 30, 2024 and January 31, 2024, the Company had unused borrowing availability of approximately $1.6 million and $1.0 million, respectively.

 

Egypt

 

In June 2021, and as renewed or amended subsequently thereafter, the Company's Egyptian subsidiary entered into a credit arrangement with a bank in Egypt for a revolving line of 100.0 million Egyptian Pounds (approximately $2.1  million at April 30, 2024). This credit arrangement is in the form of project financing at rates competitive in Egypt. The line is secured by certain assets (such as accounts receivable) of the Company's Egyptian subsidiary. Among other covenants, the credit arrangement established a maximum leverage ratio allowable and restricted the Company's Egyptian subsidiary's ability to undertake any additional debt. As of April 30, 2024 the facility has an interest rate of approximately 9.5%  and expired in June 2022. This credit arrangement was subsequently renewed in August 2023 with substantially the same terms and conditions, except for the facility interest rate which increased to 20.8%, and expires in August 2024. This credit arrangement was subsequently renewed in November 2023 with substantially the same terms and conditions and expires in November 2024. As of  April 30, 2024, the Company had substantially nothing outstanding with respect to this credit arrangement, and approximately $1.4 million outstanding at  January 31, 2024, which is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. Further, as of  April 30, 2024 and  January 31, 2024, the Company had unused borrowing capacity of $2.1 million and $3.2 million, respectively. 
 
In December 2021, the Company entered into a credit arrangement for project financing with a bank in Egypt for 28.2 million Egyptian Pounds. As this project has progressed and the Company has made collections, the facility has decreased to a current amount of  2.1 million Egyptian Pounds (approximatel y $0.1  million at April 30, 2024). This credit arrangement is in the form of project financing at rates competitive in Egypt. The line is secured by the contract for a project being financed by the Company's Egyptian subsidiary. The facility has an interest rate of approximately 11.0%  and, as of  November 2022, is no longer available for borrowings by the Company. The facility will expire in connection with final customer balance collections and the completion of the project. The Company had approximately $0.1 million outstanding  as of April 30, 2024 and January 31, 2024, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets.

 

Saudi Arabia

 

In March 2022, the Company's Saudi Arabian subsidiary entered into a credit arrangement with a bank in Saudi Arabia for a revolving line of 37.0 million Saudi Riyals (approximately $9.9 million at  April 30, 2024). This credit arrangement is in the form of project financing at rates competitive in Saudi Arabia. The line is secured by certain assets (such as accounts receivable) of the Company's Saudi Arabian subsidiary. The facility was renewed in May 2024 with substantially the same terms and conditions and expires in May 2025. As of April 30, 2024, the facility has an interest rate of approximately 9.5%. The Company had borrowed an aggregate of $4.1 million and $3.2 million as of April 30, 2024 and January 31, 2024, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. The unused borrowing availability attributable to this credit arrangement at  April 30, 2024 and  January 31, 2024, was $5.4 million and $6.1 million, respectively. 

 

14

 

These credit arrangements are in the form of overdraft facilities and project financing at rates competitive in the countries in which the Company operates. The lines are secured by certain equipment, certain assets (such as accounts receivable and inventory), and a guarantee by the Company. Some credit arrangement covenants require a minimum tangible net worth to be maintained, including maintaining certain levels of intercompany subordinated debt. In addition, some of the revolving credit facilities restrict payment of dividends or undertaking of additional debt. The Company guarantees only a portion of the subsidiaries' debt, including foreign debt. The amount of foreign subsidiary debt guaranteed by the Company was approximately $0.3 million and $0.1 million at  April 30, 2024 and  January 31, 2024, respectively. 

 

The Company was in compliance with the covenants under the credit arrangements in the U.A.E., Egypt and Saudi Arabia as of April 30, 2024, with the exception of those arrangements that have expired or are set to expire and have not yet been renewed. Although certain of the arrangements have expired and the borrowings could be required to be repaid immediately by the banks, the Company is in regular communication with the respective banks throughout the renewal process and all of the arrangements have continued without interruption or penalty. On April 30, 2024, interest rates were based on (i) the Emirates Inter Bank Offered Rate plus 3.0% to 3.5% per annum for the U.A.E. credit arrangements, two of which have a minimum interest rate of 4.5% per annum; (ii) either the Central Bank of Egypt corporate loan rate plus 1.5% to 3.5% per annum or the stated interest rate in the agreements for the Egypt credit arrangements; and (iii) the Saudi Inter-Bank Offered Rate plus 3.5% for the Saudi Arabia credit arrangement. Based on these base rates, as of April 30, 2024, the Company's interest rates ranged from 8.7% to 20.8%, with a weighted average rate of 11.5%, and the Company had facility limits totaling $24.7 million under these credit arrangements. As of April 30, 2024$6.7 million of availability was used to support letters of credit to guarantee amounts committed for inventory purchases and for performance guarantees. Additionally, as of April 30, 2024, the Company had borrowed $8.4 million and had an additional $13.0 million of borrowing remaining available under the foreign revolving credit arrangements. The foreign revolving lines balances were included as a component of current maturities of long-term debt in the Company's consolidated balance sheets as of April 30, 2024 and January 31, 2024.

 

In June 2023, the Company assumed a promissory note of approximately $2.8 million in connection with the formation of the joint venture with Gulf Insulation Group (see Note 15). In accordance with the promissory note, all principal is due and payable on the maturity date of April 9, 2026, with the option to prepay, in whole or in part, at any time prior to the maturity date, without premium or penalty.

 

Mortgages. On July 28, 2016, the Company entered into a mortgage agreement secured by the Company's manufacturing facility located in Alberta, Canada that matures on December 23, 2042. As of April 30, 2024, the remaining balance on the mortgage in Canada is approximately CAD 6.00 million (approximately $4.4 million at April 30, 2024). The interest rate is variable, and was 9.1% at April 30, 2024. The principal balance is included as a component of long-term debt, less current maturities in the Company's consolidated balance sheets and is presented net of issuance costs of $0.1 million as of April 30, 2024 and January 31, 2024, respectively.

 

Note 10 - Leases

 

The Company accounts for its leases under ASC 842, Leases. Under this guidance, arrangements meeting the definition of a lease are classified as operating or financing leases, and are recorded on the consolidated balance sheets. Operating leases are included in operating lease right-of-use (“ROU”) assets, operating lease liabilities short-term, and operating lease liabilities long-term in the Company's consolidated balance sheets. Finance leases are included in property, plant and equipment, current maturities of long-term debt, and long-term debt less current maturities in the Company's consolidated balance sheets. 

 

ROU assets represent the Company's right to use an underlying asset for the lease term and lease liabilities represent the Company's obligation to make lease payments arising from the lease calculated by discounting fixed lease payments over the lease term at the rate implicit in the lease or the Company’s incremental borrowing rate.  Lease liabilities are increased by interest and reduced by payments each period, and the ROU asset is amortized over the lease term.  For operating leases, interest on the lease liability and the amortization of the ROU asset result in straight-line rent expense over the lease term.  For finance leases, interest on the lease liability and the amortization of the ROU asset results in front-loaded expense over the lease term.  Variable lease expenses are recorded when incurred. ROU assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.

 

As most of the Company's leases do not provide an implicit rate, the Company uses its incremental borrowing rate based on the information available at the commencement date in determining the present value of lease payments. The incremental borrowing rate is the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term and amount equal to the lease payments in a similar economic environment.

 

In calculating the ROU asset and lease liability, the Company elects to combine lease and non-lease components. Additionally, the Company excludes short-term leases having an initial term of 12 months or less in accordance with the new guidance as an accounting policy election, and recognizes rent expense on a straight-line basis over the lease term.

 

Operating Leases. In August 2020, the Company entered into a new lease in Abu Dhabi for land upon which the Company built a facility. The initial annual payments were approximately 1.2 million U.A.E. Dirhams (approximately $0.3 million at April 30, 2024), inclusive of rent, escalation clauses, and other common charges contained in the agreement. Rent payments previously deferred until August 2022 have commenced, and the lease expires in August 2050. 

 

In March and December 2022, the Company served Notices of Termination to its lessor for the Company's lease of land and buildings in Fujairah in the U.A.E. The Company served the Notices of Termination in connection with the Company's intended relocation to a different facility in Abu Dhabi. The Company vacated portions of the leased space in December 2022 and expects to vacate the remaining space in December 2024. The first Notice of Termination required that the Company pay an additional amount equal to three months' rent after that termination to enable the lessor to prepare the assets for lease by another party. As a result of the termination, the Company has recognized adjustments to the amounts recorded in the consolidated financial statements as of April 30, 2024. The termination resulted in decreases of $0.4 million, $6.0 million and $5.5 million to operating lease liability short-term, operating lease liability long-term and operating lease right-of-use asset, respectively, in the consolidated balance sheets as of April 30, 2024. The termination also resulted in a decrease in rent expense of $1.1 million in the consolidated statement of operations for the year ended January 31, 2023. There were no other adjustments in connection with these terminations for the year ended January 31, 2024, or during the three months ended April 30, 2024

 

At April 30, 2024, the Company had total operating lease liabilities of $6.9 million and operating ROU assets of $6.2 million, which are reflected in the consolidated balance sheets. At April 30, 2024, the Company also had total finance lease liabilities of $0.1 million included in current maturities of long-term debt, and total finance ROU assets of $0.4 million which were included in property plant and equipment, net of accumulated depreciation in the consolidated balance sheets.

 

Finance Leases. The Company has several significant operating lease agreements, with lease terms of one to thirty years, which consist of real estate, vehicles and office equipment leases. These leases do not require any contingent rental payments, impose any financial restrictions or contain any residual value guarantees.  Certain of the Company’s leases include renewal options and escalation clauses; renewal options have not been included in the calculation of the lease liabilities and ROU assets as the Company is not reasonably certain to exercise the options.  The Company does not have any arrangements where it acts as a lessor. 

 

At  April 30, 2024, the Company also had finance lease liabilities of $0.1 million included in current maturities of long-term debt and long-term debt less current maturities, and financial ROU assets of $0.4 million which were included in property plant and equipment, net of accumulated depreciation in the consolidated balance sheets. 

 

15

 

Supplemental balance sheet information related to leases is as follows: 

 

Operating and Finance leases:

 

April 30, 2024

  

January 31, 2024

 

Finance leases assets:

        

Property and Equipment - gross

 $949  $970 

Accumulated depreciation and amortization

  (562)  (536)

Property and Equipment - net

 $387  $434 
         

Finance lease liabilities:

        

Finance lease liability short-term

 $32  $113 

Finance lease liability long-term

  71   - 

Total finance lease liabilities

 $103  $113 
         

Operating lease assets:

        

Operating lease ROU assets

 $6,165  $6,467 
         

Operating lease liabilities:

        

Operating lease liability short-term

 $845  $914 

Operating lease liability long-term

  6,032   6,270 

Total operating lease liabilities

 $6,877  $7,184 

 

Total lease costs consist of the following: 

 

   

Three Months Ended April 30,

 

Lease costs

Consolidated Statements of Operations Classification

 

2024

  

2023

 

Finance Lease Costs

         

Amortization of ROU assets

Cost of sales

 $38  $53 

Interest on lease liabilities

Interest expense

  2   3 

Operating lease costs

Cost of sales, SG&A expenses

  455   456 

Short-term lease costs (1)

Cost of sales, SG&A expenses

  143   179 

Sub-lease income

SG&A expenses

  -   (20)

Total Lease costs

 $638  $671 

 

(1) Includes variable lease costs, which are not material.

 

16

 

Supplemental cash flow information related to leases is as follows:

 

  Three Months Ended April 30,
  

2024

  

2023

 

Cash paid for amounts included in the measurement of lease liabilities:

        

Financing cash outflows from finance leases

 $8  $83 

Operating cash outflows from finance leases

  2   3 

Operating cash outflows from operating leases

  454   468 
         

ROU assets obtained in exchange for new lease obligations:

        

Operating leases liabilities

 $-  $129 

 

Weighted-average lease terms and discount rates are as follows: 

 

  

April 30, 2024

 

Weighted-average remaining lease terms (in years):

    

Finance leases

  3.0 

Operating leases

  13.8 
     

Weighted-average discount rates:

    

Finance leases

  6.9%

Operating leases

  9.8%

 

Maturities of lease liabilities as of April 30, 2024, is as follows:

 

  

Operating Leases

  

Finance Leases

 

For the nine months ending January 31, 2024

 $1,416  $28 

For the year ended January 31, 2026

  1,714   38 

For the year ended January 31, 2027

  1,701   38 

For the year ended January 31, 2028

  1,656   9 

For the year ended January 31, 2029

  1,286   - 

For the year ended January 31, 2030

  499   - 

Thereafter

  6,982   - 

Total lease payments

 $15,254  $113 

Less: amount representing interest

  (8,377)  (10)

Total lease liabilities at April 30, 2024

 $6,877  $103 

 

Rent expense on operating leases, which is recorded on straight-line basis, was $0.6 million for the three months ended  April 30, 2024 and 2023, respectively.

 

Note 11 - Restricted cash

 

Restricted cash held by foreign subsidiaries is related to fixed deposits that also serve as security deposits and guarantees: 
 
  

April 30, 2024

  

January 31, 2024

 

Cash and cash equivalents

 $7,674  $5,845 

Restricted cash

  1,390   1,395 

Cash, cash equivalents and restricted cash shown in the statement of cash flows

 $9,064  $7,240 

 

17

 

 

Note 12 - Fair value

 

The carrying values of cash and cash equivalents, accounts receivable and accounts payable are considered reasonable estimates of fair value due to their short-term nature. The carrying amount of the Company's short-term debt, revolving lines of credit and long-term debt approximate fair value because the majority of the amounts outstanding accrue interest at variable market rates.

 

Note 13 - Recent accounting pronouncements

 

The Company evaluated recent accounting pronouncements and does not expect any to have a material impact on its consolidated financial statements or related disclosures.

 

Note 14 - Treasury stock

 

The repurchase program approved on October 4, 2021 authorized the Company to use up to $3.0 million for the purchase of its outstanding shares of common stock. Stock repurchases were permitted to be executed through open market or privately negotiated transactions, depending upon current market conditions and other factors. On December 7, 2022 the Board of Directors authorized the use of $1.0 million remaining under the share repurchase program previously approved on October 4, 2021 that expired on October 3, 2022. During the twelve months ended  January 31, 2024, the Company used the remaining $1.0 million authorized to repurchase its outstanding shares of common stock. Accordingly, there was no repurchase activity with respect to the Company's shares of common stock during the three months ended  April 30, 2024.

 

Note 15 - Noncontrolling interest

 

On June 1, 2023, the Company closed on its formation of a joint venture ("the JV", and the agreement governing the JV, "the JV Agreement") with Gulf Insulation Group ("GIG"), a leading provider of pre-insulated piping systems and pipe fabrication, in which the Company acquired a 60% controlling financial interest and contributed assets consisting of a building and equipment. The JV is a limited liability company named Perma Pipe Gulf Arabia Industry and is a closed joint stock company established under the laws of the Kingdom of Saudi Arabia. The JV's capital is comprised of ordinary shares with 60% owned by the Company and remaining 40% owned by GIG. The Company expects this collaborative business arrangement to result in expanding its market presence in Saudi Arabia, Kuwait, and Bahrain. The primary business activities of the JV include the manufacture and sale of the pre-insulated piping systems and pipe coating services. The other party to this business arrangement acquired a 40% non-controlling interest by contributing assets to the JV of approximately $6.8 million in fair value, mainly consisting of an idle building and equipment. The fair value of the net assets contributed was determined through the use of a third-party appraiser using the indirect cost method.

 

Pursuant to the applicable guidance in ASC 805, Business Combinations and Noncontrolling Interests, the Company determined that the transaction did not meet the necessary conditions to be considered a business as the set of assets acquired did not contain an organized workforce and therefore was recorded as an asset acquisition. The assets transferred by the Company to the JV were recorded at historical cost, and no gain was recognized as a result of this exchange since the Company has a controlling interest in the JV. The Company’s measurement of the acquired assets is comprised of the fair value of the contributed net assets given up by the Company and the fair value of the non-controlling interest excluding the contributed assets. The non-controlling interest attributable to the other party was recorded as of the investment date and was measured as part of the carrying amount of the ownership interest in the net assets given up by the Company plus the fair value of the non-controlling interest excluding the contributed assets. No gain or loss was recognized as a result of this exchange. The Company also assumed a promissory note payable to GIG issued as part of the formation of the JV in the principal amount of $2.8 million. The principal amount is presented within the Long-term debt, less current maturities caption in the Company's consolidated balance sheets. The Company also has a promissory note due from the JV that was issued as part of the formation of the JV in the amount of approximately $4.2 million and eliminates in consolidation.

 

The Company has a 60% controlling financial interest in the JV which is not considered a wholly owned subsidiary. Accordingly, there remains a minority portion of the equity interest that is owned by a third party, GIG. Pursuant to the applicable guidance contained in ASC 810, Consolidations, the balance sheets and operating activities of this investment are included in the Company's consolidated financial statements. The carrying amount of the assets and liabilities of the JV that are consolidated by the Company totaled $26.3 million and $17.7 million, respectively, as of  April 30, 2024.

 

The Company adjusts net income in the consolidated statements of operations to exclude the proportionate share of results that is attributable to the non-controlling interest. Additionally, the Company presents the proportionate share that is attributable to the redeemable non-controlling interest as temporary equity within the consolidated balance sheets. This mezzanine presentation is the result of the non-controlling interest being subject to a put option that is not solely within the Company's control and in connection with the equity shares of the business arrangement that is redeemable at any time after five years following the date of formation. The redemption amount per the JV Agreement is at fair value of the non-controlling interest which represents the fair value of ordinary shares of the JV that is owned by GIG. Further, neither the call option or put option contained in the JV Agreement met the definition of a derivative as a result of not containing a net settlement provision and the shares not being readily convertible to cash, thereby being considered embedded with respect to non-controlling interest and not a freestanding instrument.

 

As a result of the non-controlling interest being subject to redemption rights that are not entirely within the Company's control, it was concluded that the necessary conditions were met to be accounted for in accordance with ASC 480, Distinguishing Liabilities from Equity. Pursuant to this accounting standard, the Company determined that the only criteria for the security to become redeemable is the passage of time and, therefore, is considered probable of redemption. The Company made a policy election to measure changes in the non-controlling interest immediately as they occur and adjust the carrying amount of non-controlling interest equal to its redemption amount as the non-controlling interest has no stated fixed price or fixed date. As such, at each subsequent balance sheet date following the formation of the JV, the Company must determine whether further adjustment is required to increase the carrying value of the redeemable non-controlling interest. If the Company determines that the fair value of the redeemable non-controlling interest exceeds its carrying value, an adjustment is made to reflect this change. However, if the value is determined to be less than its carrying value, such adjustment is limited to its original carrying value at the formation of the business arrangement. Additionally, adjustments made to reflect the change in the value of the redeemable non-controlling interest are offset against permanent equity within the Company's consolidated balance sheets.

 

Net income attributable to GIG was $0.3 million and $0.0 million for the three months ended  April 30, 2024 and 2023, respectively. The proportionate share of net income was accounted for as a reduction in deriving net income attributable to common stock in the Company's consolidated statements of operations.

 

The Company is the ultimate parent of the JV through its 60% controlling financial interest and as part of the JV Agreement majority control of the operational activities of the JV and no joint control exists. The JV Agreement has no veto or kickout rights and board voting is proportional to the ownership interest. Certain activities do include a two-thirds majority affirmative vote of shareholders of the JV and include acquiring another company, establishing new subsidiaries, entering another partnership or joint venture, engaging in any merger or materially changing the business of the JV. These are considered protective rights. The 60% equity ownership of the JV by the Company allows it to receive its proportionate share of losses and residual returns.

 

The non-controlling interest as measured at fair value was $7.0 million and $6.3 million, and was recorded within temporary equity at  April 30, 2024 and  January 31, 2024, respectively. The change in non-controlling interest consists of $0.3 million in current year net income attributable to non-controlling interest, and approximately $0.4 million as an adjustment in the carrying value of the redeemable non-controlling interest pertaining to the business arrangement. In addition, there were no dividends or any other form of distributions from non-controlling interest for the period ended  April 30, 2024 and  January 31, 2024, respectively. 

 

18

  
 

Item 2.

Management's Discussion and Analysis of Financial Condition and Results of Operations ("MD&A")

 

The statements contained in this MD&A and other information contained elsewhere in this quarterly report, which can be identified by the use of forward-looking terminology such as "may," "will," "expect," "continue," "remains," "intend," "aim," "should," "prospects," "could," "future," "potential," "believes," "plans," "likely" and "probable" or the negative thereof or other variations thereon or comparable terminology, constitute "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, and are subject to the safe harbors created thereby. These statements should be considered as subject to the many risks and uncertainties that exist in the Company's operations and business environment. Such risks and uncertainties could cause actual results to differ materially from those projected as a result of many factors, including, but not limited to, those under the heading Item 1A. Risk Factors included in the Company's latest Annual Report on Form 10-K. The Company's fiscal year ends on January 31. Years and balances described as 2024 and 2023 are for the fiscal year ending January 31, 2025 and the fiscal year ended January 31, 2024, respectively.

 

This MD&A should be read in conjunction with the Company’s consolidated financial statements, including the notes thereto, contained elsewhere in this report. Percentages set forth below in this MD&A have been rounded to the nearest percentage point. 

 

 

 CONSOLIDATED RESULTS OF OPERATIONS

(In thousands, except per share data, or unless otherwise specified)

(Unaudited)

 

The Company is engaged in the manufacture and sale of products in one reportable segment. Since the Company focuses on discrete projects, operating results can be significantly impacted as a result of large variations in the level of project activity in reporting periods.

 

   

Three Months Ended April 30,

         
   

2024

   

2023

   

Change favorable (unfavorable)

 
   

Amount

   

Percent of Net Sales

   

Amount

   

Percent of Net Sales

   

Amount

 

Net sales

  $ 34,321             $ 29,657             $ 4,664  
                                         

Gross profit

    10,517       31 %     6,774       23 %     3,743  
                                         

General and administrative expenses

    6,148       18 %     5,460       18 %     (688 )
                                         

Selling expense

    1,235       4 %     1,239       4 %     4  
                                         

Interest expense

    507               512               5  
                                         

Other (expense) income

    (67 )             72               (139 )
                                         

Loss before income taxes

    2,560               (365 )             2,925  
                                         

Income tax expense

    770               758               (12 )
                                         

Net income (loss)

    1,790               (1,123 )             2,913  
                                         

Less: Net income attributable to non-controlling interest

    347               -               (347 )
                                         

Net income (loss) attributable to common stock

    1,443               (1,123 )             2,566  

 

 

 

 

Three months ended April 30, 2024 vs. Three months ended April 30, 2023

 

Net sales:

 

Net sales were $ 34.3 million and $ 29.7 million in the three months ended April 30, 2024 and 2023, respectively.  The  increase o f $4.6  million, or 15% , was a result of increased sales volumes in the Middle East and India. 

 

Gross profit:

 

Gross profit was $10.5 million, or 31% of net sales, and $6.8 million, or 23% of net sales, in the three months ended April 30, 2024 and 2023, respectively. The increase of $3.7 million was primarily driven by increased sales volumes in the Middle East and India.

 

General and administrative expenses:

 

General and administrative expenses were $6.1 million and $5.5 million in the three months ended April 30, 2024 and 2023, respectively. The increase of $0.6 million, or 11%, was due to higher professional service fees in the quarter.  

 

Selling expenses:

 

Selling expenses remained consistent and were $ 1.2 million in the  three months ended April 30, 2024 and 2023, respectively.                                                                                               
 

Interest expense:

 

Net interest expense remained consistent and was $0.5 million in the three months ended April 30, 2024 and 2023, respectively.  

 

Other (expense) income:

 

Other (expense) income was $(0.1) million and $0.1 million for the three months ended April 30, 2024 and 2023, respectively. The change was primarily due to exchange rate fluctuations in foreign currency transactions. 

 

Income tax expense:

 

The Company's worldwide effective tax rate ("ETR") was 30% and (208%) in the three months ended April 30, 2024 and 2023, respectively. The change in the ETR is due to the inability to recognize tax benefits and losses in the United States due to a partial valuation allowance in the prior period and changes in the mix of income and loss in various jurisdictions. 

 

For further information, see Note 5 - Income taxes, in the Notes to Consolidated Financial Statements.

 

Net income (loss) attributable to common stock:

 

Net income (loss) attributable to common stock was $1.4 million and $(1.1) million in the three months ended April 30, 2024 and 2023, respectively. The increase of $2.5 million was mainly due to increased sales activity in the quarter, and better project execution. 

 

 

Liquidity and capital resources

 

Cash and cash equivalents as of April 30, 2024 were $7.7 million compared to $5.8 million on January 31, 2024. On April 30, 2024, $0.3 million was held in the United States, and $7.4 million was held at the Company's foreign subsidiaries. The Company's working capital was $39.6 million on April 30, 2024 compared to $41.1 million on January 31, 2024. Of the working capital components, accounts receivable decreased by $2.3 million and cash and cash equivalents increased by $1.9 million as the result of the movements discussed below. As of April 30, 2024, the Company had $5.0 million of borrowing capacity under the Renewed Senior Credit Facility in North America and $13.0 million of borrowing capacity under its foreign revolving credit agreements. The Company had $5.3 million borrowed under the Renewed Senior Credit Facility and $8.4 million borrowed under its foreign revolving credit agreements at April 30, 2024.

 

Net cash from operating activities was $1.4 million and $3.8 million in the three months ended April 30, 2024 and 2023, respectively. The decrease of $2.5 million was due primarily attributable to increases in prepaid expenses and other current assets and inventory, partially offset by changes to accounts receivable and costs and estimated earnings in excess of billings on uncompleted contracts. 

 

Net cash from investing activities in the three months ended April 30, 2024 and 2023 was $2.0 million and $3.2 million, respectively. The decrease of $1.2 million was due primarily to fewer investments in the United States and Canada.

 

Net cash from financing activities in the three months ended April 30, 2024 and 2023 was $2.6 million and $2.5 million, respectively. The main source of cash from financing activities during the three months ended April 30, 2024 consisted of net proceeds from borrowings of approximately $1.9 million under the Company's credit facilities, an increase in drafts payable of $0.9 million, and approximately $0.1 million attributable to fewer payments on finance lease obligations, as compared to net proceeds of approximately $2.8 million during the three months ended April 30, 2023. Debt totaled $27.3 million and $25.7 million as of April 30, 2024 and January 31, 2024, respectively. See Note 9 - Debt, in the Notes to Consolidated Financial Statements for further discussion relating to this topic.

 

Treasury stock. On December 7, 2022 the Board of Directors authorized the use of $1.0 million remaining under the share repurchase program previously approved on October 4, 2021 that expired on October 3, 2022. See Note 14 - Treasury stock, for further discussion relating to this topic.

 

Revolving lines - North America On September 20, 2018, the Company and certain of its U.S. and Canadian subsidiaries (collectively, together with the Company, the “North American Loan Parties”) entered into a Revolving Credit and Security Agreement (the “Credit Agreement”) with PNC Bank, National Association ("PNC"), as administrative agent and lender, providing for a three-year $18 million senior secured revolving credit facility, subject to a borrowing base including various reserves (the “Senior Credit Facility”).

 

On September 17, 2021, the North American Loan Parties executed an extension of the Credit Agreement with PNC, providing for a new five-year $18 million senior secured revolving credit facility, subject to a borrowing base including various reserves (the “Renewed Senior Credit Facility”). The Company's obligations under the Renewed Senior Credit Facility are currently guaranteed by Perma-Pipe Canada, Inc. Each of the North American Loan Parties other than Perma-Pipe Canada, Inc. (collectively, the "Borrowers") is a borrower under the Renewed Senior Credit Facility.

 

The Borrowers have used and will continue to use borrowings under the Renewed Senior Credit Facility (i) to fund future capital expenditures; (ii) to fund ongoing working capital needs; and (iii) for other corporate purposes, including potentially additional stock repurchases. Borrowings under the Renewed Senior Credit Facility bear interest at a rate equal to an alternate base rate, SOFR rate index, plus, in each case, an applicable margin. The applicable margin is based on a fixed charge coverage ratio ("FCCR") range. Interest on alternate base rate borrowings is the alternate base rate (as defined in the Renewed Senior Credit Facility) plus an applicable margin ranging from 1.00% to 1.50%, based on the FCCR in the most recently reported period. Interest on SOFR rate borrowings is the SOFR rate (as defined in the Renewed Senior Credit Facility) plus an applicable margin ranging from 2.00% to 2.50%, based on the FCCR in the most recently reported period, as well as an additional SOFR adjustment ranging from 0.10% to 0.25%, based on the term of the interest period. Additionally, the Borrowers pay a 0.25% per annum facility fee on the unused portion of the Renewed Senior Credit Facility.

 

Subject to certain exceptions, borrowings under the Renewed Senior Credit Facility are secured by substantially all of the North American Loan Parties’ assets. The Renewed Senior Credit Facility matures on September 20, 2026. Subject to certain qualifications and exceptions, the Renewed Senior Credit Facility contains covenants that, among other things, restrict the North American Loan Parties’ ability to create liens, merge or consolidate, consummate acquisitions, make investments, dispose of assets, incur debt, and pay dividends and other distributions. In addition, the North American Loan Parties may not make capital expenditures in excess of $5.0 million annually, plus a limited carryover of unused amounts. Further, the North American Loan Parties may not make repurchases of the Company's common stock in excess of $3.0 million.
 
The Renewed Senior Credit Facility also contains financial covenants requiring the North American Loan Parties to achieve a ratio of its EBITDA (as defined in the Renewed Senior Credit Facility) to the sum of scheduled cash principal payments on indebtedness for borrowed money and interest payments on the advances under the Renewed Senior Credit Facility to be not less than 1.10 to 1.00 for any five consecutive days in which the undrawn availability is less than $3.0 million or any day in which the undrawn availability is less than $2.0 million. In order to cure any future breach of these covenants by the North American Loan Parties, the Company may repatriate cash from any of its foreign subsidiaries that are otherwise not a party to the Renewed Senior Credit Facility in an amount which, when added to the amount of the Company’s Consolidated EBITDA, would result in compliance on a pro forma basis. The Company was in compliance with respect to these covenants as of  April 30, 2024.
 

The Renewed Senior Credit Facility contains customary events of default. If an event of default occurs and is continuing, then PNC may terminate all commitments to extend further credit and declare all amounts outstanding under the Renewed Senior Credit Facility due and payable immediately. In addition, if any of the North American Loan Parties or certain of their subsidiaries become the subject of voluntary or involuntary proceedings under any bankruptcy, insolvency or similar law, then any outstanding obligations under the Renewed Senior Credit Facility will automatically become immediately due and payable. Loans outstanding under the Renewed Senior Credit Facility will bear interest at a rate of 2.00% per annum in excess of the otherwise applicable rate (i) while a bankruptcy event of default exists or (ii) upon the lender's request, during the continuance of any other event of default.

 

As of April 30, 2024, the Company had borrowed an aggregate of $5.3  million at a rate of 10.0%  and had $5.0  million available under the Renewed Senior Credit Facility. As of January 31, 2024, the Company had borrowed an aggregate of $5.5 million and had $4.0 million available under the Renewed Senior Credit Facility.  

 

 
Revolving lines - foreign The Company also has credit arrangements used by its Middle Eastern subsidiaries in the U.A.E., Egypt, and Saudi Arabia as discussed further below.
 
United Arab Emirates

 

The Company has a revolving line for 8.0 million U.A.E. Dirhams (approximately $2.2 million at April 30, 2024) from a bank in the U.A.E. As of April 30, 2024 the facility has an interest rate of approximately 8.8%, and is set to expire in July 2024, with intentions to be subsequently renewed and extended thereafter. The Company had borrowed an aggregate of $0.2 million as of April 30, 2024 and January 31, 2024, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. The Company had unused borrowing availability of approximately $1.9 million as of April 30, 2024 and January 31, 2024, respectively. 

 

The Company has a revolving line for 20.5 million U.A.E. Dirhams (approximately $5.6 million at April 30, 2024) from a bank in the U.A.E. As of April 30, 2024 the facility has an interest rate of approximately 8.7%, and is set to expire in August 2024, with intentions to be subsequently renewed and extended thereafter. The Company had borrowed an aggregate of $0.1 million as of April 30, 2024 and January 31, 2024, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. As of April 30, 2024 and January 31, 2024, the Company had unused borrowing availability of approximately $1.6 million and $1.0 million, respectively.

 

Egypt
 
In June 2021, and as renewed or amended subsequently thereafter, the Company's Egyptian subsidiary entered into a credit arrangement with a bank in Egypt for a revolving line of 100.0 million Egyptian Pounds (approximately $2.1  million at April 30, 2024). This credit arrangement is in the form of project financing at rates competitive in Egypt. The line is secured by certain assets (such as accounts receivable) of the Company's Egyptian subsidiary. Among other covenants, the credit arrangement established a maximum leverage ratio allowable and restricted the Company's Egyptian subsidiary's ability to undertake any additional debt. As of April 30, 2024 the facility has an interest rate of approximately 9.5%  and expired in June 2022. This credit arrangement was subsequently renewed in August 2023 with substantially the same terms and conditions, except for the facility interest rate which increased to 20.8%, and expires in August 2024. This credit arrangement was subsequently renewed in November 2023 with substantially the same terms and conditions and expires in November 2024. As of April 30, 2024, the Company had substantially nothing outstanding with respect to this credit arrangement, and approximately $1.4 million outstanding at January 31, 2024, which is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. Further, as of  April 30, 2024 and  January 31, 2024, the Company had unused borrowing capacity of $2.1 million and $3.2 million, respectively. 

 

In December 2021, the Company entered into a credit arrangement for project financing with a bank in Egypt for 28.2 million Egyptian Pounds. As this project has progressed and the Company has made collections, the facility has decreased to a current amount of  2.1 million Egyptian Pounds (approximatel y $0.1  million at April 30, 2024). This credit arrangement is in the form of project financing at rates competitive in Egypt. The line is secured by the contract for a project being financed by the Company's Egyptian subsidiary. The facility has an interest rate of approximately 11.0%  and, as of November 2022, is no longer available for borrowings by the Company. The facility will expire in connection with final customer balance collections and the completion of the project. The Company had approximately $0.1 million outstanding  as of April 30, 2024 and January 31, 2024, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets.                      

 

Saudi Arabia

 

In March 2022, the Company's Saudi Arabian subsidiary entered into a credit arrangement with a bank in Saudi Arabia for a revolving line of  37.0 million Saudi Riyals (approximately $ 9.9 million at  April 30, 2024). This credit arrangement is in the form of project financing at rates competitive in Saudi Arabia. The line is secured by certain assets (such as accounts receivable) of the Company's Saudi Arabian subsidiary. The facility was renewed in May 2024 with substantially the same terms and conditions and expires in May 2025. As of April 30, 2024, the facility has an interest rate of approximately  9.5%. The Company had borrowed an aggregate of $4.1 million and $3.2 million  as of April 30, 2024 and January 31, 2024, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. The unused borrowing availability attributable to this credit arrangement at  April 30, 2024 and  January 31, 2024, was $5.4 million and $6.1 million, respectively. 

 

These credit arrangements are in the form of overdraft facilities and project financing at rates competitive in the countries in which the Company operates. The lines are secured by certain equipment, certain assets (such as accounts receivable and inventory), and a guarantee by the Company. Some credit arrangement covenants require a minimum tangible net worth to be maintained, including maintaining certain levels of intercompany subordinated debt. In addition, some of the revolving credit facilities restrict payment of dividends or undertaking of additional debt. The Company guarantees only a portion of the subsidiaries' debt, including foreign debt. The amount of foreign subsidiary debt guaranteed by the Company was approxim ately $0.3 million and $0.1 million at April 30, 2024 and January 31, 2024, respectively. 

 

The Company was in compliance with the covenants under the credit arrangements in the U.A.E., Egypt and Saudi Arabia as of April 30, 2024, with the exception of those arrangements that have expired or are set to expire and have not yet been renewed. Although certain of the arrangements have expired and the borrowings could be required to be repaid immediately by the banks, the Company is in regular communication with the respective banks throughout the renewal process and all of the arrangements have continued without interruption or penalty. On April 30, 2024, interest rates were based on (i) the Emirates Inter Bank Offered Rate plus 3.0% to 3.5% per annum for the U.A.E. credit arrangements, two of which have a minimum interest rate of 4.5% per annum; (ii) either the Central Bank of Egypt corporate loan rate plus 1.5% to 3.5% per annum or the stated interest rate in the agreements for the Egypt credit arrangements; and (iii) the Saudi Inter Bank Offered Rate plus 3.5% for the Saudi Arabia credit arrangement. Based on these base rates, as of April 30, 2024, the Company's interest rates ranged from 8.7% to 20.8%, with a weighted average rate of 11.5%, and the Company had facility limits totaling $24.7 million under these credit arrangements. As of April 30, 2024$6.7 million of availability was used to support letters of credit to guarantee amounts committed for inventory purchases and for performance guarantees. Additionally, as of April 30, 2024, the Company had borrowed $8.4 million and had an additional $13.0 million of borrowing remaining available under the foreign revolving credit arrangements. The foreign revolving lines balances were included as a component of current maturities of long-term debt in the Company's consolidated balance sheets as of April 30, 2024 and January 31, 2024.

 

In June 2023, the Company assumed a promissory note of approximately $2.8 million in connection with the formation of the joint venture with Gulf Insulation Group (see Note 15). In accordance with the promissory note, all principal is due and payable on the maturity date of April 9, 2026, with the option to prepay, in whole or in part, at any time prior to the maturity date, without premium or penalty.

 

Finance obligation - buildings and land. On April 14, 2021, the Company entered into a purchase and sale agreement (the "Purchase and Sale Agreement"). Pursuant to the terms of the Purchase and Sale Agreement, the Company sold its land and buildings in Lebanon, Tennessee (the "Property") for $10.4 million. The transaction generated net cash proceeds of $9.1 million. Concurrently with the sale, the Company paid off the approximately $0.9 million mortgage note on the Property to its lender.  The Company used the remaining proceeds to repay its borrowings under the Senior Credit Facility, for strategic investments, and for general corporate needs. Concurrent with the sale of the Property, the Company entered into a fifteen-year lease agreement (the “Lease Agreement”), whereby the Company leases back the Property at an annual rental rate of approximately $0.8 million, subject to annual rent increases of 2.0%. Under the Lease Agreement, the Company has four consecutive options to extend the term of the lease by five years for each such option.  
 
In accordance with ASC 842, Leases, this transaction was recorded as a failed sale and leaseback as the present value of lease payments exceeded substantially the fair value of the underlying assets. The Company utilized an incremental borrowing rate of 8.0% to determine the finance obligation to record for the amounts received and will continue to depreciate the assets. The current portion of the finance obligation of $0.2 million is recognized in current maturities of long-term debt and the long-term portion of $9.0 million is recognized in long-term finance obligation on the Company's consolidated balance sheets as of April 30, 2024 . The net carrying amount of the financial liability and remaining assets will be zero at the end of the lease term.

 

 

Accounts receivable: 

 

In 2015, the Company completed a project in the Middle East with billings in the aggregate amount of approximately $41.9 million. The system has not yet been commissioned by the customer. Nevertheless, the Company has settled approximately $ 40.1 million as of April 30, 2024, with a remaining balance due in the amount of $ 1.8 million, all of which pertains to retention clauses within the agreements with the Company's customer, and which become payable by the customer when this project is fully tested and commissioned. Of this amount, $ 1.0 million is classified in other  long-term assets on the Company's consolidated balance sheets.
 
The Company has been actively involved in ongoing efforts to collect this outstanding balance. The Company continues to engage with the customer to ensure full payment of the open balances, and during the three months ended April 30, 2024, and at various times throughout 2023, the Company received partial payments to settle $ 0.3 million and $ 0.6 million, respectively, of the customer's outstanding balances. Further, the Company has been engaged by the customer to perform additional work in 2024 under customary trade terms that supports the continued cooperation between the Company and the customer. As a result, the Company did not reserve any allowance against the remaining outstanding balances as of  April 30, 2024. However, if the Company's efforts to collect on this account are not successful, the Company may recognize an allowance for all, or substantially all, of any such then uncollected amounts. 

 

CRITICAL ACCOUNTING POLICIES AND ESTIMATES

 

Critical accounting policies are described in Item 7. MD&A and in the Notes to the Consolidated Financial Statements for the year ended January 31, 2024 contained in the Company's latest Annual Report on Form 10-K. Any new accounting policies or updates to existing accounting policies as a result of new accounting pronouncements have been discussed in the Notes to Consolidated Financial Statements in this Quarterly Report on Form 10-Q. The application of critical accounting policies may require management to make assumptions, judgments and estimates about the amounts reflected in the Consolidated Financial Statements. Management uses historical experience and all available information to make these estimates and judgments, and different amounts could be reported using different assumptions and estimates.

 

 

Item 4.

Controls and Procedures

 

Evaluation of Disclosure Controls and Procedures

 

The Chief Executive Officer and Chief Financial Officer have evaluated the effectiveness of the Company's disclosure controls and procedures (as defined in Rule 13a-15(e) and 15d-15(e) under the Securities Exchange Act of 1934, as amended) as of April 30, 2024. This evaluation included consideration of the controls, processes and procedures that are designed to ensure that information required to be disclosed by the Company in the reports the Company files or submits under the Exchange Act is recorded, processed, summarized and reported within the time periods specified in the SEC’s rules and forms, and to provide reasonable assurance that such information is accumulated and communicated to the Company’s management, including its Chief Executive Officer and Chief Financial Officer, as appropriate to allow timely decisions regarding required disclosure. Based on this evaluation, the certifying officers have concluded that, as of the end of the period covered by this Quarterly Report on Form 10-Q, our disclosure controls and procedures were not effective because of the material weakness described below. 

 

Management has previously reported on material weaknesses in the Company's internal control over information technology general controls ("ITGC"), financial reporting relating to the review and approval of manual journal entries, timely review of the financial close process, and timely review of certain financial policies and procedures and respective HR policies. The Company also did not maintain effective controls at certain operating locations in the Middle East and North Africa ("MENA"), specifically the Company did not maintain sufficient documentation to support an evaluation that controls over business processes were operating effectively. These deficiencies led management to conclude that a material weakness existed with respect to the Company's internal control over financial reporting. The material weakness did not result in any material misstatements to the Company’s consolidated financial statements. As a result, at January 31, 2024 and April 30, 2024, and on the date of this Quarterly Report on Form 10-Q, the Company's internal control over financial reporting is not effective. 

 

A material weakness is a deficiency, or a combination of deficiencies, in internal control over financial reporting, such that there is a reasonable possibility that a material misstatement of the Company's annual or interim financial statements will not be prevented or detected on a timely basis. 

 

As a result of the material weaknesses identified, the Company has begun updating its internal control over financial reporting as discussed in its remediation plan as further described below. 

 

Remediation Plan for the Material Weaknesses in Internal Control over Financial Reporting. To address these matters, the Company has begun implementing its remediation plan. Specifically, the Company is executing on the following:

 

The remediation plans related to ITGCs include: (i) addressing the identified issues with control owners, including Company leadership and IT personnel; (ii) engaging outside consultants with expertise relating to ITGCs to document processes, assist in addressing the design and operating business process controls, monitoring and testing reviews focusing on systems supporting our financial reporting process (iii) developing and maintaining documentation underlying ITGCs for knowledge transfer and function changes, including access control and change management; (iv) outsourcing certain functions to third-party providers, specifically relating to servers and firewalls, and managed detection and response.

 

The remediation plans related to the entity level controls and business process controls over MENA locations include: (i) addressing issues with control owners, including company leadership; (ii) evaluating and updating the Company's evidence of internal control policies and procedures as needed and providing necessary guidance to applicable locations; (iii) assessing the adequacy and determine whether enhancements are needed to the design of corporate and / or operating locations business process controls; and (iv) augmenting our internal audit function by hiring an additional resource to assist in overseeing the remediation process, including updating policies and procedures, and implementing internal controls; (v) engaging outside consultants to conduct training sessions. 

 

The Company anticipates the actions described above and resulting improvements in controls will strengthen the Company's processes, procedures and will address the related material weaknesses described above. However, the material weaknesses cannot be considered fully remediated until the remediation processes have been in operation for a period of time and successfully tested.

 

Change in Internal Control over Financial Reporting. While the Company continues to implement design enhancements to our internal control procedures, we believe that, other than the changes described above regarding the ongoing remediation efforts, there were no changes to our internal control over financial reporting which were identified in connection with the evaluation required by Rules 13a-15(d) or 15d-15(d) under the Exchange Act during the fiscal quarter ended April 30, 2024, that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.

 

 

 

PART II OTHER INFORMATION

 

 

 

 

Item 6.

Exhibits

 

31.1

Rule 13a - 14(a)/15d - 14(a) Certifications

(1) Chief Executive Officer certification pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

31.2

Rule 13a - 14(a)/15d - 14(a) Certifications

(2) Chief Financial Officer certification pursuant to Section 302 of the Sarbanes-Oxley Act of 2002

32

Section 1350 Certifications (Chief Executive Officer and Chief Financial Officer certification pursuant to Section 906 of the Sarbanes-Oxley Act of 2002)

101.INS

Inline XBRL Instance Document (the Instance Document does not appear in the Interactive Data File because its XBRL tags are embedded within the Inline XBRL document)

101.SCH

Inline XBRL Taxonomy Extension Schema

101.CAL

Inline XBRL Taxonomy Extension Calculation

101.DEF

Inline XBRL Taxonomy Extension Definition

101.LAB

Inline XBRL Taxonomy Extension Labels

101.PRE

Inline XBRL Taxonomy Extension Presentation

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

 

 

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.

 

 

    Perma-Pipe International Holdings, Inc.
     
     

Date:

June 13, 2024

By: /s/ David J. Mansfield

 

 

David J. Mansfield

 

 

President and Chief Executive Officer

 

 

(Principal Executive Officer)

 

 

 

Date:

June 13, 2024

By: /s/ Matthew E. Lewicki

 

 

Matthew E. Lewicki

 

 

Vice President and Chief Financial Officer

 

 

(Principal Financial and Accounting Officer)

 

27
EX-31.1 2 ex_662666.htm EXHIBIT 31.1 ex_662666.htm

Exhibit 31.1

 

I, David J. Mansfield, certify that:

 

1.

I have reviewed this quarterly report on Form 10-Q of Perma-Pipe International Holdings, 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 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 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:

June 13, 2024

 

/s/ David J. Mansfield

David J. Mansfield

President and Chief Executive Officer

(Principal Executive Officer)

 

 
EX-31.2 3 ex_662667.htm EXHIBIT 31.2 ex_662667.htm

Exhibit 31.2

 

I, Matthew E. Lewicki, certify that:

 

1.

I have reviewed this quarterly report on Form 10-Q of Perma-Pipe International Holdings, 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 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 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:

June 13, 2024

 

/s/ Matthew E. Lewicki

Matthew E. Lewicki

Vice President and Chief Financial Officer

(Principal Financial and Accounting Officer)

 

 
EX-32 4 ex_662668.htm EXHIBIT 32 ex_662668.htm

Exhibit 32

 

Certification of Principal Executive Officers

Pursuant to 18 U.S.C. 1350

(Section 906 of the Sarbanes-Oxley Act of 2002)

 

The undersigned, in their capacities as Chief Executive Officer and Chief Financial Officer of Perma-Pipe International Holdings, Inc. (the “Registrant") certify that, to the best of their knowledge, based upon a review of the Quarterly Report on Form 10-Q for the period ended April 30, 2024 of the Registrant, (the “Report”):

 

 

(1)

The Report fully complies with the requirements of Section 13(a) of the Securities Exchange Act of 1934, as amended; and

 

 

(2)

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

 

/s/ David J. Mansfield

David J. Mansfield

President and Chief Executive Officer

(Principal Executive Officer)

 

/s/ Matthew E. Lewicki

Matthew E. Lewicki

Vice President and Chief Financial Officer

(Principal Financial and Accounting Officer)

 

June 13, 2024

 

 

 

A signed original of this written statement required by Section 906 has been provided by Perma-Pipe International Holdings, Inc. and will be retained by Perma-Pipe International Holdings, Inc. and furnished to the Securities and Exchange Commission or its staff upon request.

 

 

 
EX-101.SCH 5 ppih-20240430.xsd XBRL TAXONOMY EXTENSION SCHEMA 000 - Document - Document And Entity Information link:calculationLink link:definitionLink link:presentationLink 001 - Statement - Consolidated Statements of Operations (Unaudited) link:calculationLink link:definitionLink link:presentationLink 002 - Statement - Consolidated Statements of Comprehensive Income (Loss) (Unaudited) link:calculationLink link:definitionLink link:presentationLink 003 - Statement - Consolidated Balance Sheets (Current Period Unaudited) link:calculationLink link:definitionLink link:presentationLink 004 - Statement - Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) link:calculationLink link:definitionLink link:presentationLink 005 - Statement - Consolidated Statements of Stockholders' Equity (Unaudited) link:calculationLink link:definitionLink link:presentationLink 006 - Statement - Consolidated Statements of Cash Flows (Unaudited) link:calculationLink link:definitionLink link:presentationLink 007 - Disclosure - Note 1 - Basis of Presentation link:calculationLink link:definitionLink link:presentationLink 008 - Disclosure - Note 2 - Business Segment Reporting link:calculationLink link:definitionLink link:presentationLink 009 - Disclosure - Note 3 - Accounts Receivable link:calculationLink link:definitionLink link:presentationLink 010 - Disclosure - Note 4 - Revenue Recognition link:calculationLink link:definitionLink link:presentationLink 011 - Disclosure - Note 5 - Income Taxes link:calculationLink link:definitionLink link:presentationLink 012 - Disclosure - Note 6 - Impairment of Long-lived Assets link:calculationLink link:definitionLink link:presentationLink 013 - Disclosure - Note 7 - Stock-based Compensation link:calculationLink link:definitionLink link:presentationLink 014 - Disclosure - Note 8 - Earnings Per Share link:calculationLink link:definitionLink link:presentationLink 015 - Disclosure - Note 9 - Debt link:calculationLink link:definitionLink link:presentationLink 016 - Disclosure - Note 10 - Leases link:calculationLink link:definitionLink link:presentationLink 017 - Disclosure - Note 11 - Restricted Cash link:calculationLink link:definitionLink link:presentationLink 018 - Disclosure - Note 12 - Fair Value link:calculationLink link:definitionLink link:presentationLink 019 - Disclosure - Note 13 - Recent Accounting Pronouncements link:calculationLink link:definitionLink link:presentationLink 020 - Disclosure - Note 14 - Treasury Stock link:calculationLink link:definitionLink link:presentationLink 021 - Disclosure - Note 15 - Noncontrolling Interests link:calculationLink link:definitionLink link:presentationLink 995468 - Disclosure - Significant Accounting Policies (Policies) link:calculationLink link:definitionLink link:presentationLink 995469 - Disclosure - Note 4 - Revenue Recognition (Tables) link:calculationLink link:definitionLink link:presentationLink 995470 - Disclosure - Note 6 - Impairment of Long-lived Assets (Tables) link:calculationLink link:definitionLink link:presentationLink 995471 - Disclosure - Note 7 - Stock-based Compensation (Tables) link:calculationLink link:definitionLink link:presentationLink 995472 - Disclosure - Note 8 - Earnings Per Share (Tables) link:calculationLink link:definitionLink link:presentationLink 995473 - Disclosure - Note 10 - Leases (Tables) link:calculationLink link:definitionLink link:presentationLink 995474 - Disclosure - Note 11 - Restricted Cash (Tables) link:calculationLink link:definitionLink link:presentationLink 995475 - Disclosure - Note 2 - Business Segment Reporting (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995476 - Disclosure - Note 3 - Accounts Receivable (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995477 - Disclosure - Note 4 - Revenue Recognition (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995478 - Disclosure - Note 4 - Revenue Recognition - Revenues by Revenue Class (Details) link:calculationLink link:definitionLink link:presentationLink 995479 - Disclosure - Note 4 - Revenue Recognition - Reconciliation of the Cost in Excess of Billings (Details) link:calculationLink link:definitionLink link:presentationLink 995480 - Disclosure - Note 5 - Income Taxes (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995481 - Disclosure - Note 6 - Impairment of Long-lived Assets (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995482 - Disclosure - Note 6 - Impairment of Long-lived Assets - Goodwill (Details) link:calculationLink link:definitionLink link:presentationLink 995483 - Disclosure - Note 7 - Stock-based Compensation (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995484 - Disclosure - Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details) link:calculationLink link:definitionLink link:presentationLink 995485 - Disclosure - Note 7 - Stock-based Compensation - Stock Option Activity (Details) link:calculationLink link:definitionLink link:presentationLink 995486 - Disclosure - Note 7 - Stock-based Compensation - Restricted Stock Activity (Details) link:calculationLink link:definitionLink link:presentationLink 995487 - Disclosure - Note 8 - Earnings Per Share (Details) link:calculationLink link:definitionLink link:presentationLink 995488 - Disclosure - Note 9 - Debt (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995489 - Disclosure - Note 10 - Leases (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995490 - Disclosure - Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details) link:calculationLink link:definitionLink link:presentationLink 995491 - Disclosure - Note 10 - Leases - Lease Costs (Details) link:calculationLink link:definitionLink link:presentationLink 995492 - Disclosure - Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details) link:calculationLink link:definitionLink link:presentationLink 995493 - Disclosure - Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details) link:calculationLink link:definitionLink link:presentationLink 995494 - Disclosure - Note 10 - Leases - Maturities of Lease Liabilities (Details) link:calculationLink link:definitionLink link:presentationLink 995495 - Disclosure - Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details) link:calculationLink link:definitionLink link:presentationLink 995496 - Disclosure - Note 14 - Treasury Stock (Details Textual) link:calculationLink link:definitionLink link:presentationLink 995497 - Disclosure - Note 15 - Noncontrolling Interests (Details Textual) link:calculationLink link:definitionLink link:presentationLink EX-101.CAL 6 ppih-20240430_cal.xml XBRL TAXONOMY EXTENSION CALCULATION LINKBASE EX-101.DEF 7 ppih-20240430_def.xml XBRL TAXONOMY EXTENSION DEFINITION LINKBASE EX-101.LAB 8 ppih-20240430_lab.xml XBRL TAXONOMY EXTENSION LABEL LINKBASE Document And Entity Information Note To Financial Statement Details Textual Significant Accounting Policies Note 4 - Revenue Recognition Note 6 - Impairment of Long-lived Assets Note 7 - Stock-based Compensation Note 8 - Earnings Per Share Note 10 - Leases Liabilities, Noncurrent [Abstract] Note 11 - Restricted Cash Note 4 - Revenue Recognition - Revenues by Revenue Class (Details) Note 4 - Revenue Recognition - Reconciliation of the Cost in Excess of Billings (Details) Income Tax Disclosure [Text Block] Note 6 - Impairment of Long-lived Assets - Goodwill (Details) Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details) Note 7 - Stock-based Compensation - Stock Option Activity (Details) Note 7 - Stock-based Compensation - Restricted Stock Activity (Details) Note 8 - Earnings Per Share (Details) us-gaap_LiabilitiesCurrent Total current liabilities Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details) Note 10 - Leases - Lease Costs (Details) Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details) Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details) Note 10 - Leases - Maturities of Lease Liabilities (Details) Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details) Notes To Financial Statements Notes To Financial Statements [Abstract] us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding Outstanding, aggregate intrinsic value Share-Based Payment Arrangement, Option, Activity [Table Text Block] Granted, weighted average price (in dollars per share) Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block] us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue Outstanding, weighted average price (in dollars per share) Outstanding, weighted average price (in dollars per share) Foreign currency translation adjustment us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent Long-Term Debt and Lease Obligation, Current us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod Granted (in shares) Outstanding, weighted average remaining contractual term (Year) us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber Outstanding, options (in shares) Outstanding, options (in shares) Exercised, aggregate intrinsic value Revolving line - North America Line of Credit, Current Outstanding, aggregate intrinsic value us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested, Number of Shares (in shares) us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Nonvested, Number of Shares (in shares) Billings in excess of costs and estimated earnings on uncompleted contracts Expired or forfeited, weighted average exercise price (in dollars per share) us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber Outstanding (in shares) Outstanding (in shares) Schedule of Goodwill [Table Text Block] Exercised, weighted average exercise price (in dollars per share) Other accrued liabilities Accrued compensation and payroll taxes Income taxes payable Trade accounts payable Loans, Notes, Trade and Other Receivables Disclosure [Text Block] us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period (in shares) Expired or forfeited, options (in shares) Credit Facility [Axis] us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment Proceeds from Sale of Property, Plant, and Equipment, Total Credit Facility [Domain] us-gaap_PolicyTextBlockAbstract Accounting Policies Commissions and management incentives payable us-gaap_PaymentsToAcquirePropertyPlantAndEquipment Capital expenditures Stock options and restricted stock with exercise prices or grant date prices below the average market prices (in shares) Cash income taxes paid Liabilities, Current [Abstract] Weighted average common shares outstanding Treasury Stock [Text Block] Product [Member] Asset Impairment Charges [Text Block] us-gaap_Assets Assets Total assets Supplemental cash flow information us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount us-gaap_OperatingLeaseExpense Operating Lease, Expense us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year) us-gaap_SubleaseIncome Sub-lease income Deferred tax assets us-gaap_DeferredIncomeTaxAssetsNet Share-Based Payment Arrangement [Text Block] Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block] us-gaap_ContractWithCustomerAssetNet Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts Award Type [Domain] us-gaap_RestrictedCashAndCashEquivalents Restricted cash Award Type [Axis] Net income Net income (loss) attributable to common stock Net income (loss) attributable to common stock Proceeds from insurance recovery for property and equipment Restricted Stock [Member] Less: Net income attributable to non-controlling interest Net Income (Loss) Attributable to Noncontrolling Interest Share-Based Payment Arrangement, Option [Member] Goodwill, foreign exchange change effect Financial Asset, Equal to or Greater than 90 Days Past Due [Member] Financial Asset, Aging [Axis] Financial Asset, Aging [Domain] Less: Comprehensive income attributable to non-controlling interests us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment Accumulated depreciation and amortization Property, Plant and Equipment, Net Property and Equipment - net Goodwill Goodwill Goodwill us-gaap_NoncontrollingInterestIncreaseFromBusinessCombination Noncontrolling Interest, Increase from Business Combination Property and Equipment - gross Long-Term Debt, Type [Axis] Long-Term Debt, Type [Domain] Net income (loss) Net income (loss) us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest Comprehensive income (loss) Investing activities us-gaap_IncreaseDecreaseInIncomeTaxesPayableNetOfIncomeTaxesReceivable Income taxes payable us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet Other assets and liabilities Gulf Insulation Group [Member] Represents Gulf Insulation Group. Vested and issued, weighted average price (in dollars per share) 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. Earnings per share attributable to common stock Earnings Per Share [Text Block] ppih_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedAndIssuedInPeriod Vested and issued (in shares) The number of equity-based payment instruments, excluding stock (or unit) options, that vested and issued during the reporting period. us-gaap_IncreaseDecreaseInEmployeeRelatedLiabilities Accrued compensation and payroll taxes Income tax expense Amount attributable to non-controlling interest Amount of other increase (decrease) in additional paid in capital (APIC) resulting from reclassification to non-controlling interest. us-gaap_IncreaseDecreaseInAccountsPayable Accounts payable Long-term finance obligation ppih_LongtermDebtAndLeaseObligationNoncurrent Long-Term Debt and Lease Obligation, Noncurrent Amount of long-term debt and lease obligation, classified as noncurrent. Forfeited or retired for taxes (in dollars per share) 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, or retired for taxes. ppih_StockRepurchaseProgramAuthorizedRepurchaseAmountUsed Stock Repurchase Program, Authorized Repurchase Amount Used Amount used of the stock repurchase plan authorized. us-gaap_OperatingExpenses Total operating expenses us-gaap_DebtInstrumentTerm Debt Instrument, Term (Year) ppih_StockIssuedDuringPeriodSharesRestrictedStockAwardForfeitedOrRetiredForTaxes Forfeited or retired for taxes (in shares) Number of shares related to Restricted Stock Award forfeited or retired for taxes during the period. ppih_DecreaseInOperatingLeaseRightofuseAsset Decrease in Operating Lease Right-of-use Asset The amount of decrease in the operating lease right-of-use asset as of the reporting period. ppih_DecreaseInOperatingLeaseExpense Decrease in Operating Lease Expense The amount of decrease in operating lease expense during the reporting period. General and administrative expenses ppih_DecreaseInOperatingLeaseLiabilityCurrent Decrease in Operating Lease Liability, Current The amount of decrease in the current portion of operating lease liability during the reporting period. ppih_DecreaseInOperatingLeaseLiabilityNoncurrent Decrease in Operating Lease Liability, Noncurrent Amount of decrease in the non-current portion of the operating lease liability as of the reporting period. Cash and cash equivalents Cash and cash equivalents Stock-based compensation expense us-gaap_AllocatedShareBasedCompensationExpense Amendment Flag us-gaap_ComprehensiveIncomeNetOfTax Total comprehensive income (loss) attributable to common stock City Area Code us-gaap_DebtInstrumentMaturityDate Debt Instrument, Maturity Date us-gaap_TreasuryStockSharesRetired Treasury stock retired (in shares) New Accounting Pronouncements, Policy [Policy Text Block] us-gaap_SharesOutstanding Balances (in shares) Balances (in shares) Common stock, outstanding (in shares) Revolving Credit Lines Used by Egypt Subsidiaries [Member] Represents information related to revolving credit lines used by Egypt subsidiaries. Current Fiscal Year End Date us-gaap_DebtInstrumentBasisSpreadOnVariableRate1 Debt Instrument, Basis Spread on Variable Rate Revolving Credit Lines Used by Egypt Subsidiaries 2 [Member] Represents second revolving credit lines used by Egypt subsidiaries. us-gaap_DebtInstrumentInterestRateStatedPercentage Debt Instrument, Interest Rate, Stated Percentage us-gaap_NotesReceivableNet Financing Receivable, after Allowance for Credit Loss us-gaap_LeaseCost Total Lease costs us-gaap_DebtInstrumentInterestRateEffectivePercentage Debt Instrument, Interest Rate, Effective Percentage us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets Prepaid expenses and other current assets Operating leases Perma-Pipe Canada, Ltd [Member] Information by business combination or series of individually immaterial business combinations. Document Fiscal Period Focus Operating lease costs Document Fiscal Year Focus Short-term lease costs (1) Lease, Cost [Table Text Block] Document Period End Date Operating leases liabilities Operating leases (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] Additional SOFR Adjustment Based on Interest Period [Member] Information pertaining to SOFR adjustment based on the term of the interest period. Variable Rate [Domain] us-gaap_AccountsReceivableNet Accounts Receivable, after Allowance for Credit Loss Secured Overnight Financing Rate (SOFR) [Member] Represents the Secured Overnight Financing Rate (SOFR). Variable Rate [Axis] us-gaap_IncreaseDecreaseInAccountsReceivable Increase (Decrease) in Accounts Receivable Accounts receivable us-gaap_ConcentrationRiskPercentage1 Concentration Risk, Percentage Stock-based compensation expense us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables Unbilled accounts receivable Statement of Comprehensive Income [Abstract] Entity Tax Identification Number Entity Central Index Key Entity Registrant Name Entity [Domain] Customer Concentration Risk [Member] Legal Entity [Axis] Entity Address, Address Line One ecd_NonRule10b51ArrTrmntdFlag Non-Rule 10b5-1 Arrangement Terminated [Flag] Entity Address, City or Town ecd_Rule10b51ArrTrmntdFlag Rule 10b5-1 Arrangement Terminated [Flag] ecd_Rule10b51ArrAdoptedFlag Rule 10b5-1 Arrangement Adopted [Flag] Entity Address, Postal Zip Code us-gaap_TreasuryStockCommonValue Treasury stock, 112 shares at April 30, 2024 and January 31, 2024 Entity Address, State or Province Concentration Risk Type [Axis] ecd_NonRule10b51ArrAdoptedFlag Non-Rule 10b5-1 Arrangement Adopted [Flag] us-gaap_AllowanceForDoubtfulAccountsReceivable Accounts Receivable, Allowance for Credit Loss Concentration Risk Type [Domain] Material Terms of Trading Arrangement [Text Block] us-gaap_StockRepurchasedDuringPeriodShares Stock Repurchased During Period, Shares (in shares) Entity Common Stock, Shares Outstanding Revenue Benchmark [Member] Accounts Receivable [Member] Renewal of Revolving Credit Lines Used by Saudi Arabian Subsidiary [Member] Represents revolving credit lines used by Saudi Arabian subsidiary. us-gaap_IncreaseDecreaseInInventories Inventories Trading Symbol Concentration Risk Benchmark [Axis] Concentration Risk Benchmark [Domain] Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block] us-gaap_LineOfCreditFacilityInterestRateAtPeriodEnd Line of Credit Facility, Interest Rate at Period End Local Phone Number us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity Line of Credit Facility, Remaining Borrowing Capacity us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised Exercised, options (in shares) us-gaap_GainLossOnDispositionOfAssets Gain (loss) from disposal of fixed assets us-gaap_TableTextBlock Notes Tables us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity Line of Credit Facility, Maximum Borrowing Capacity us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity Line of Credit Facility, Current Borrowing Capacity us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage Line of Credit Facility, Unused Capacity, Commitment Fee Percentage Related and Nonrelated Parties [Axis] Related and Nonrelated Parties [Domain] Shares issued, net of shares used for tax withholding (in shares) Provision on uncollectible accounts us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross (in shares) Selling expenses us-gaap_LiabilitiesAndStockholdersEquity Total liabilities and stockholders' equity Retained earnings us-gaap_AssetsNoncurrent Total long-term assets Accumulated other comprehensive loss Promissory Note [Member] Promissory note. Debt Disclosure [Text Block] Changes in operating assets and liabilities us-gaap_DisclosureTextBlockAbstract Notes to Financial Statements Operating lease liability long-term Restrictions on Cash and Cash Equivalents [Table Text Block] Total lease liabilities, operating leases Operating Lease, Liability Total operating lease liabilities Deferred tax (benefit) expense Operating lease liability short-term Cash and Cash Equivalents Disclosure [Text Block] Finance lease liability short-term us-gaap_FinanceLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList Finance Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration] Finance lease liability long-term us-gaap_FinanceLeaseLiabilityNoncurrentStatementOfFinancialPositionExtensibleList Finance Lease, Liability, Noncurrent, Statement of Financial Position [Extensible Enumeration] Operating lease right-of-use asset Operating Lease, Right-of-Use Asset us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue Total lease payments, operating leases Total lease liabilities, finance leases Finance Lease, Liability Total finance lease liabilities us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount Less: amount representing interest, operating leases Financing cash outflows from finance leases Payments on finance lease obligations For the year ended January 31, 2028, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree Joint Venture [Member] Relating to the Joint Venture. For the year ended January 31, 2029, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour us-gaap_FinanceLeaseRightOfUseAsset Finance Lease, Right-of-Use Asset, after Accumulated Amortization For the year ended January 31, 2030, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive us-gaap_FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList Finance Lease, Right-of-Use Asset, Statement of Financial Position [Extensible Enumeration] Thereafter, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive Net Investment in Lease, before Allowance for Credit Loss For the year ended January 31, 2026, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths For the year ended January 31, 2027, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo Subsequent Events, Policy [Policy Text Block] us-gaap_ShareBasedCompensation Stock-based compensation expense Other long-term assets For the nine months ending January 31, 2024, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear Operating expenses ppih_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. One Customer [Member] Represents information pertaining to one customer. us-gaap_PropertyPlantAndEquipmentFairValueDisclosure Property, Plant, and Equipment, Fair Value Disclosure us-gaap_DepreciationDepletionAndAmortization Depreciation and amortization Transferred at Point in Time Using Input Method [Member] Represents information pertaining to transfers at a point in time using an input method. Specialty Piping Systems And Coating [Member] Represents information pertaining to Specialty Piping Systems and Coating. Sales by product, percent Represents the percentage of revenue from contracts with customers that is attributable to a specified product or service. Transferred at Point in Time Using Output Method [Member] Represents information pertaining to transfers at a point in time using an output method. us-gaap_AssetsCurrent Total current assets Long-term assets us-gaap_LesseeFinanceLeaseDiscountRate Lessee, Finance Lease, Discount Rate us-gaap_LesseeFinanceLeaseTermOfContract1 Lessee, Finance Lease, Term of Contract (Year) Treasury stock (in shares) us-gaap_LesseeFinanceLeaseRenewalTerm1 Lessee, Finance Lease, Renewal Term (Year) Common stock, $.01 par value, authorized 50,000 shares; 8,018 issued and outstanding at April 30, 2024 and 8,017 at January 31, 2024 Adjustments to reconcile net income (loss) to net cash provided by operating activities Common stock, authorized (in shares) Common stock, issued (in shares) Common stock, par value (in dollars per share) Revision of Prior Period [Axis] Revision of Prior Period [Domain] us-gaap_CommonStockCapitalSharesReservedForFutureIssuance Common Stock, Capital Shares Reserved for Future Issuance (in shares) Revision of Prior Period, Adjustment [Member] Statistical Measurement [Domain] Operating cash outflows from operating leases Maximum [Member] Minimum [Member] Weighted Average [Member] Ownership [Domain] Product and Service [Axis] Product and Service [Domain] Statistical Measurement [Axis] Operating cash outflows from finance leases Ownership [Axis] Costs and estimated earnings in excess of billings on uncompleted contracts Cash interest paid Geographical [Axis] Geographical [Domain] Inventories Central Bank of Eqypt (CBE) Rate [Member] Represents CBE rate. Sales by product Net sales Customer [Axis] Customer [Domain] us-gaap_InterestIncomeExpenseNet Interest expense Unbilled accounts receivable Unbilled Receivables, Current Operating activities Statement [Line Items] Allowance for doubtful accounts Trade accounts receivable, less allowance for credit losses of $644 at April 30, 2024 and $699 at January 31, 2024 us-gaap_NumberOfReportableSegments Number of Reportable Segments Costs incurred on uncompleted contracts Costs incurred on uncompleted contracts related to percentage of completion Additional paid-in capital Costs in excess of billings, net Costs in excess of billings, net Costs in excess of billings, net related to percentage of completion Less billings to date Billings to date related to percentage of completion ppih_EarnedRevenue Earned revenue Amount of earned revenue. AOCI Attributable to Parent [Member] Estimated earnings Estimated earnings related to percentage of completion Stockholders' equity Other (expense) income Long-Lived Tangible Asset [Axis] Segment Reporting Disclosure [Text Block] Long-Lived Tangible Asset [Domain] Restricted cash Land and Buildings in Lebanon, Tennessee [Member] Represents the sale leaseback transaction in connection with the land and buildings in Lebanon, Tennessee. Current assets Finance Lease Obligations [Member] Represents finance lease obligation. Fair Value Disclosures [Text Block] Non-controlling interest Redeemable Noncontrolling Interest, Equity, Carrying Amount us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents Cash, cash equivalents and restricted cash shown in the statement of cash flows us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations Cash, cash equivalents and restricted cash - beginning of period Cash, cash equivalents and restricted cash - end of period Assets [Abstract] us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect Net increase in cash, cash equivalents and restricted cash us-gaap_Liabilities Liabilities us-gaap_NetCashProvidedByUsedInFinancingActivities Net cash provided by financing activities Commitments and contingencies Effect of exchange rate changes on cash, cash equivalents and restricted cash Revolving Lines, North America [Member] Represents information pertaining to revolving lines in North America. us-gaap_OperatingIncomeLoss Income from operations us-gaap_NetCashProvidedByUsedInOperatingActivities Net cash provided by operating activities us-gaap_NetCashProvidedByUsedInInvestingActivities Net cash used in investing activities Prepaid expenses and other current assets Cost of sales us-gaap_GrossProfit Gross profit Base Rate [Member] Deferred tax liabilities us-gaap_ContractWithCustomerLiability Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts Canadian Mortgage Note [Member] Represents information pertaining to a mortgage note from a bank in Canada, secured by a Canadian manufacturing facility. EIBOR [Member] Represents information pertaining to the Emirates Inter Bank Offered Rate. Foreign Revolving Lines [Member] Represents information pertaining to foreign revolving credit facilities. Consolidated Entities [Axis] Consolidated Entities [Domain] Mortgage Note Secured by Tennessee Manufacturing Facility [Member] Represents information pertaining to a mortgage note secured by a manufacturing facility in Lebanon, Tennessee. us-gaap_LettersOfCreditOutstandingAmount Letters of Credit Outstanding, Amount us-gaap_UndistributedEarningsOfForeignSubsidiaries Undistributed Earnings of Foreign Subsidiaries Scenario [Domain] Retained Earnings [Member] ppih_SaleLeasebackTransactionAnnualRentalPaymentsAmount Sale Leaseback Transaction, Annual Rental Payments, Amount Amount of cash outflow from leaseback transactions. Scenario [Axis] Treasury Stock, Common [Member] Additional Paid-in Capital [Member] Common Stock [Member] us-gaap_DebtAndCapitalLeaseObligations Debt and Lease Obligation Equity Components [Axis] Equity Component [Domain] Other Noncurrent Assets [Member] us-gaap_NotesPayable Notes Payable us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest Income (loss) before income taxes ppih_LineOfCreditFacilityCapitalExpendituresRestrictions Line of Credit Facility, Capital Expenditures Restrictions Maximum amount of capital expenditures allowed under a credit agreement. Other comprehensive income (loss) us-gaap_RepaymentsOfOtherDebt Payments of other debt Timing of Transfer of Good or Service [Domain] us-gaap_DeferredFinanceCostsNet Debt Issuance Costs, Net ppih_IncreaseDecreaseInCustomerDeposits1 Customers' deposits The increase (decrease) during the period in customer deposits. Transferred at Point in Time [Member] ppih_IncreaseDecreaseInContractWithCustomerAssetAndLiability Costs and estimated earnings in excess of billings on uncompleted contracts Amount of increase (decrease) in contract assets and liabilities. Stock options exercised and taxes paid related to restricted shares vested Represents the cash inflow (outflow) related to stock options exercised and taxes related to restricted shares vested. us-gaap_SecuredDebt Secured Debt Customers' deposits The current portion of customer deposits. Disaggregation of Revenue [Table Text Block] Timing of Transfer of Good or Service [Axis] Revenue from Contract with Customer [Text Block] Middle East [Member] Statement of Financial Position Location, Balance [Axis] ppih_LineOfCreditFacilityCommonStockRepurchaseRestrictions Line of Credit Facility, Common Stock Repurchase Restrictions Maximum amount of common stock repurchase allowed under credit agreement. Statement of Financial Position Location, Balance [Domain] ppih_LineOfCreditFacilityGuaranteedAmount Line of Credit Facility, Guaranteed Amount Amount of debt guaranteed under credit facility. Document Quarterly Report Entity Incorporation, State or Country Code Accounting Policies [Abstract] Document Transition Report Entity Interactive Data Current Related Party [Member] Current maturities of long-term debt Long-term Debt, Current Maturities, Excluding North American Revolving Line Long-term Debt, Current Maturities, Excluding North American Revolving Line Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current, excluding north american revolving lines of credit. us-gaap_RepaymentsOfSecuredDebt Repayments of Secured Debt Security Exchange Name Title of 12(b) Security Billing Status, Type [Axis] Receivables Billing Status [Domain] Unbilled Revenues [Member] ppih_CostsIncurredForUncompletedContractsAnticipatedCollectionPeriod Costs Incurred for Uncompleted Contracts, Anticipated Collection Period (Year) Represents the duration of time within which costs incurred for uncompleted contracts are anticipated to be collected. Revolving Credit Lines Used by Saudi Arabian Subsidiary [Member] Represents revolving credit lines used by Saudi Arabian subsidiary. SIBOR [Member] Represents Saudi Inter Bank Offered Rate. Dilutive effect of equity compensation plans (in shares) Lessee, Operating and Finance Leases [Text Block] The entire disclosure for operating and finance leases of lessee. Finance Leases Assets [Member] Represents information pertaining to finance leases assets. Supplemental Balance Sheet Information Related to Leases [Table Text Block] Tabular disclosure of supplemental balance sheet information related to leases. Stock options and restricted stock not included in the computation of diluted earnings per share of common stock because the option exercise prices or grant date prices exceeded the average market prices of the common shares (in shares) us-gaap_RepaymentsOfLinesOfCredit Payments of debt on revolving credit lines us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding Diluted (in shares) Weighted average common shares outstanding assuming full dilution (in shares) Finance and Operating Lease, Liability, Maturity [Table Text Block] Tabular disclosure of finance and operating lease liability maturity. Weighted-average Lease Terms and Discount Rates [Table Text Block] Tabular disclosure of weighted-average lease terms and discount rates. Supplemental Cash Flow Information Related Leases [Table Text Block] Tabular disclosure of supplemental cash flow information related leases. Proceeds from revolving credit lines Statement [Table] us-gaap_MinorityInterestOwnershipPercentageByParent Subsidiary, Ownership Percentage, Parent Statement of Financial Position [Abstract] Diluted (in dollars per share) us-gaap_EarningsPerShareDiluted us-gaap_WeightedAverageNumberOfSharesOutstandingBasic Basic (in shares) us-gaap_EffectiveIncomeTaxRateContinuingOperations Effective Income Tax Rate Reconciliation, Percent Noncontrolling Interest Disclosure [Text Block] Business Acquisition [Axis] Increase (decrease) in drafts payable Basic (in dollars per share) us-gaap_EarningsPerShareBasic Business Acquisition, Acquiree [Domain] ppih_LesseeFinanceLeaseAnnualRentIncreasePercentage Lessee, Finance Lease, Annual Rent Increase, Percentage The percentage of annual rent increase on the finance lease of the lessee. Statement of Cash Flows [Abstract] ppih_LesseeFinanceLeaseNumberOfOptionsToExtend Lessee, Finance Lease, Number of Options to Extend The number of options to extend the finance lease of the lessee. Lease Contractual Term [Domain] Statement of Stockholders' Equity [Abstract] us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration Disposal Group, Including Discontinued Operation, Consideration Lease Contractual Term [Axis] Income Statement [Abstract] Disposal Group Name [Axis] Disposal Group Name [Domain] us-gaap_ProceedsFromIssuanceOfDebt Proceeds from Issuance of Debt us-gaap_RepaymentsOfDebtAndCapitalLeaseObligations Payments of principal on finance obligation Interest on lease liabilities us-gaap_FinanceLeaseLiabilityPaymentsDue Total lease payments, finance leases Amortization of ROU assets ppih_LineOfCreditFacilityCovenantTermsEBITDARatioMinimumUndrawnAvailabilityForFiveConsecutiveDays Line of Credit Facility, Covenant Terms, EBITDA Ratio, Minimum Undrawn Availability for Five Consecutive Days The minimum amount of undrawn availability for five consecutive days that will trigger the EBITDA ratio covenant of the line of credit facility. For the year ended January 31, 2030, finance leases ppih_LineOfCreditFacilityCovenantTermsEBITDARatioMinimumUndrawnAvailability Line of Credit Facility, Covenant Terms, EBITDA Ratio, Minimum Undrawn Availability The minimum amount of undrawn availability that triggers the EDITDA ratio covenant under the debt instrument. Thereafter, finance leases ppih_LineOfCreditFacilityDefaultAdditionalInterestRate Line of Credit Facility, Default, Additional Interest Rate The amount of additional interest in the event of default of the line of credit facility. us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount Less: amount representing interest, finance leases For the year ended January 31, 2026, finance leases For the year ended January 31, 2027, finance leases For the year ended January 31, 2028, finance leases For the year ended January 31, 2029, finance leases us-gaap_BusinessCombinationStepAcquisitionEquityInterestInAcquireeIncludingSubsequentAcquisitionPercentage Business Combination, Step Acquisition, Equity Interest in Acquiree, Including Subsequent Acquisition, Percentage Accounting Standards Update and Change in Accounting Principle [Text Block] srt_StockRepurchaseProgramAuthorizedAmount1 Share Repurchase Program, Authorized, Amount Finance leases For the nine months ending January 31, 2024, finance leases Liabilities, Noncurrent Total long-term liabilities Asset Acquisition, Contingent Consideration, Liability, Current Finance leases (Year) Financing activities Other long-term liabilities Revolving Credit Lines Used by Middle Eastern Subsidiaries, 1 [Member] Represents the first revolving credit line used by the Company's Middle Eastern subsidiaries. Revolving Credit Lines Used by Middle Eastern Subsidiaries, 2 [Member] Represents the second revolving credit line used by the Company's Middle Eastern subsidiaries. Deferred compensation liabilities ppih_LesseeOperatingLeaseAnnualPayment Lessee, Operating Lease, Annual Payment Represents the amount of payment expected to be made per year under operating lease of lessee. Abu Dhabi Land Lease [Member] Represents information regarding land leased in Abu Dhabi. ppih_LineOfCreditFacilityFixedChargeCoverageRatioRequired Line of Credit Facility, Fixed Charge Coverage Ratio Required Represents the fixed charge coverage ratio required under a line of credit facility. us-gaap_StockholdersEquity Total stockholders' equity Balance Balance North American Loan Parties [Member] Represents information regarding certain U.S. and Canadian subsidiaries collectively referred to as the North American Loan Parties. Schedule of Assumptions for Long-Duration Contracts by Product and Guarantee [Table Text Block] Class of Stock [Axis] Long-Term Debt, Excluding Current Maturities Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] Loan payable to GIG us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1 Outstanding, weighted average exercise price (in dollars per share) Outstanding, weighted average exercise price (in dollars per share) EX-101.PRE 9 ppih-20240430_pre.xml XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE GRAPHIC 10 logo.jpg begin 644 logo.jpg M_]C_X 02D9)1@ ! 0$ 8 !@ #_X0!:17AI9@ 34T *@ @ !0,! 4 M ! 2@,# $ ! %$0 $ ! 0 %$1 0 ! .Q%$2 M 0 ! .Q 8:@ "QC__; $, @$! @$! @(" @(" @(#!0,# M P,#!@0$ P4'!@<'!P8'!P@)"PD(" H(!P<*#0H*"PP,# P'"0X/#0P."PP, M#/_; $,! @(" P,#!@,#!@P(!P@,# P,# P,# P,# P,# P,# P,# P,# P, M# P,# P,# P,# P,# P,# P,# P,# P,#/_ !$( "4 UP,!(@ "$0$#$0'_ MQ ? !!0$! 0$! 0 0(#! 4&!P@)"@O_Q "U$ " 0,# @0# M!04$! 7T! @, !!$%$B$Q008346$'(G$4,H&1H0@C0K'!%5+1\"0S8G*" M"0H6%Q@9&B4F)R@I*C0U-C+CY.7FY^CIZO'R\_3U]O?X^?K_Q ? 0 # 0$! M 0$! 0$! 0(#! 4&!P@)"@O_Q "U$0 " 0($! ,$!P4$! ! G< M 0(#$00%(3$&$D%1!V%Q$R(R@0@40I&AL<$)(S-2\!5B7J" M@X2%AH>(B8J2DY25EI>8F9JBHZ2EIJ>HJ:JRL[2UMK>XN;K"P\3%QL?(RKR\_3U]O?X^?K_V@ , P$ A$#$0 _ /VN_:^_ M:^\"?L-? G5OB)\1-6_LO0=+Q''%$OF7>IW+9\JUMHL@R32$'"Y #.S(B.Z M_@7^V[_P^"?!JN1:V6JZ):^(;Z:/C_CXDO$>#YL9 MVQPKMSC>^ Q^E/\ @JQ;)^WY^VA?7WCF]U9?@G\)+ZX\,^&/#VFW/V6X\9:M M P35KQYBK?9[6&X4V32JKO(]I)'#Y;?:)H?I3_@DU^S%8^(Q_;VE_#'X2^!O MA_I+?8XAIWA6&74=;F0[[Z66UU9GC8C%.K6^KP?W?F_+^NQ^.GP,_;;M?BAXTM=/UK4;3X->)M M2E6'3?'_ (&NI_#MC97+$!/[4L;:06ZVI.%:>R2WD@!,C)<*ICK[J_9"_P"" MXOQB_8A^.MW\+OVEH]1\1Z/H=\=*U6[NXE?7?#C@C$WF1C%]!M(?)W2.CB2. M1QMC?].?VCO^"5/[._[5F@75CXR^$?@NXFND*_VE8:>FFZG%Z;;NW"3#'7;N M*GN".*_+3_@X=_8LTW]FRW^!VN:5?:EK!'A]O!>H:GJ)C:]U$:X=%5 M9;AH'E1Y-J[O(3@# 'M93FF"S6JL!B:=U).U]7%I7]V6ZT3TVVLMSR\RPE;! MP^MX>5G&U[;-/35;?T_(_;;P9X\T?XAZ6U]H>I6>J68\LB>UE66)UDACGC97 M4E65X9HI%()!6137R]_P5+_X*H1_\$U'\"Q_\(+)XTF\;+J+H/[8&FI9BT^R M@Y/DREMWVH8P!C8?6OFG_@@G^T)K"^+/ _P[U:XEF35_@['JT:2MS;FQ\3:O M;6P ]7T^YM,'_GG;PCH *Y?_ (.G1G4O@3_U[>)?YZ37GY1PW17$5/+<6N>F M^9[M72C)IZ-/==^AIF.@7VLBPDD^QW!EM(G>2SF)5S#(&0J3M8JEE5"1_%"PZ@UZ.(R7+ M<3@UC*6'=%QJQA;FDU--I.U]4]>G9_+BHYEC*.)>&J554O3:]J]O=V,<&D7=\)8T@V,288W"X;C#$&OU8_97_;;^'/[;W@[7-8^'&L7 M6LZ?H=S]AO))].N+(QRF,2 !9D0M\K Y (J.+LLP>"56CA\OE%)JU7FFX]'L M[QUUCO\ B5P_CL1B73J5L6I-WO3Y8I]>JU\]C\^=$_X.:M:\<3;?#?[.^I:O MMC$[)!XFDGE2,XPS)%8-MZ@9R1GO7NG["'_!>7P#^V#\5+'P+K_AO4OASXKU MB1H-,6ZO4OM/OIQ_R["<)&R3MAMJR1JK%=H8NRHWPO\ \&YOQZ\$? 'XR>.= M0\=>,?"_@VPOO"]K#;3ZWJD%A'8\2!2QD3=[V8<, MY3];Q&!CAG3C3AS*KS2:3LG9J3<>O>^C]5Y.#SS,/84<4ZZFYRY73Y8WM?=6 MU_X?[_T:_P""I7_!4]?^":DW@./_ (04^-9/&XU%@/[9_LT68M/LN>?(EW[O MM0_NXV=\\>A?\$Z?VX]/_P""@O[.$7CRST7_ (1R[AU*YTK4-*^V_;?L,\3! ME'F^7'NWPR0R?<7'F8YQN/P#_P '&TD/C']JW]GWPO<9>"2.X$J ]4NKZSA/ MYB$C\*O?\&]GC&Z^!W[5'QX^ ^J3.\VF7U/TBS7 MSU3AO!RX8ACJ-H\.JWMR-?&GK9-+)*J0%?L M\I9MD8Q_;O_ &8M&^(EGI*Z!-J%Q=6EYI7VS[8VGS03O'L, MNQ-VY D@^0<2BORGDT;1?^"D_P#P62^-4FO:QI.F^&]+T77-(TZXU"YC2V4P M6G]C6SQLYP29YFNTQG!!88P*](_X-J?VH=-\$Z%\3?AWXGU?3]#C6XMO$=@M M]<) ID=?LUVNYB!E?*M.!_>8UT9KPKA*62\]&#^L4XTY3=V[J=]+7MII>RV7 MJ98'/<1/,N6K+]S-SC%67V;:WWU\WU/UXK\_OV_?^"YTG[$_[3NI?#*Q^%,W MC"\T^WM)1>?\)!]C\][B-9%18EM96)&X#KDGH*^T_P#A?W@/_H=O"/\ X.+? M_P"+K\:?V]?%VDZQ_P ' /@?5K/5-.NM*3Q5X.D:]AN4DMU5)K3>3(#M 7!R M<\8KQ># _#NEZUX>USX@Z?KYO1]@ MN(KFXTS3OLLRSB5TR8UEE:V(1B-YBW#/EFN!_;?\.:UX4_X-Y/V>K/7EF2^. MO6-Q&DN=\=M+;ZG+;*0>1BW>(8[ 8XQ7T%+A_+<4L%C(T'256IR2IN4FFK/W MDW:5M/Q^;\BIFV-H/$X=U5-TX\RFDE9Z:-+3K^'W??W@K_@H_'XJ_P""9,W[ M1TW@Z2UC@TR]U%O#Z:H)6/V>[EMM@N3$H^;R]V?+XW8P<9/QO;?\'-FMZE:7 M%]:?L\W5QI=B,W5S'XJDDCM^,_.ZZ>53C!^8UT_PG_Y5BM0_[%G6?_3O=5!_ MP;E_%WPK\+/V,?B-<>*/%'A_P[:P>,Y;B235-2ALTCC_ +/L1YA,C !DI-\ ML7K;7=?E8^H/^"=O_!6/X?\ _!1#[?I>CV>I>&/&6DVPO+S0]19)&D@W*IGM MY4.V:)6=%8D(ZEER@#*6^<_VH_\ @XG/[-?[1/C3P"?@\-9'@_59=,^WGQ9] MF^U[,?/Y?V-]F<]-S8]:^8_^"7O]F?$K_@NY?:]\-+-H? <&J>)-5C6U@,%O M%I4D-Q%$XCP/+A:>>V*1D+M#HNT;<#*'QW\,_LQ_\'!/B/QYXROIM-\,>'?% M^M-?7,5K+=/$)M,NK>/$<2L[9EFC'R@XSD\ FO1I\)Y;3S&M#V+J15%5(TW* M2DI7?N7B[W=K*]]^IQ3S_&SP=.7M%!NIR.=DTUI[UGI;7RVZ'U3^SC_P<;K^ MT#\;-!\&_P#"GETG^VVG7[7_ ,);]H\GRK>6?[GV-=V?*V_>&-V><8)7T]^S M[_P5_P#@+^U!\8-'\!^"_%6I:EXFU[SOL5M+H%_:I)Y,$D\F9)851<1Q.>2, MXP.2!17Q.KU]Y)VZ=M#Z?+57J4W)8I5==U&.FBTT? MS^9\(_\ !1'PFWPS_:3U304+/::#I=G%:NR[3/OA%Q/,?5I;J:YE=OXI)7)R M2:_27]CWQKX1L]"UKX7>&YE:^^#SVFA:HF #-+):QSFX&.SRO.I)ZR0R]L$^ M!?\ !8;]E"^\>>&K7XE:#:R75WH-FUEK<,2[G-D"SI< #J(F:3?P?D?<<+&: M^&_$G[5'BK]E+]O;5OBGX8VR6WC7;KYLYV/V76+"]Q++;,P[Q3K+#O7)CFM6 M^\ RM[M'!+.,NITJ,K2C%Z?WERK7U5[>M^AYU;%/+\7*I47NR:U_NN^WH[?= M8_<2OS__ ."]7P%T7XS>"_AKJ7CSQ-;^#_A1X+U"]U3Q)?PNKZOJ$ABC2VTW M38#_ *RZN 9P&;Y(A&9&#!=IQOC+_P %:?'GQH\"6%]^SS??"Y-K8&1':VQ4,0"Y@9CRQKJ?^#I ME_*U7X#M_=MO$A_72*^O?^".?[%6D_L=?LW2K;++)8K_5]:N;1[,ZDZ MJ1'';P2JLR6D09A&9@DDC/-)Y<:R(#5_X*N?\$J[K_@IA<> I+?QY!X)_P"$ M)BU.-A)H9U/[;]L^R=,7$.S9]E_VMV_MCGHCQ!@8\50QVIC_ &1BI9#+#I&?"^DV.@^']%^'VKVUE86<0CAMT%E,< #N2223R2222237LWP ME\#-\,/A5X9\--="^;P[I-KIAN1%Y0N##"D>_9EMN[;G&3C.,GK6/^TQ\'F_ M:%_9V\=> X]271W\9:#>Z*M\UO\ :!9FX@>+S#'N3?MW9V[ESC&1UKY/$<08 MK%XZG4QE9RA&::OLDGO9>7E<]ZCE%##X:4,/3492BT^[=MK^OR/R?_X($_L0 M_"K]K+X4?$6_^(O@K3/%5UH^M6UM9373RJ8(VM]S*-CJ,%N>:_5+X!_LH_#S M]D[POJVF?#OPO8^%K'5IOM=Y#:O(RSRA @<[V8YV@#CTK\T[?_@U\UJT4K%\ M?;>$-R1'X-D7/Y:A7U-_P2__ ."3^H_\$Z_%?C34K[XD#QROBRQMK-(O[%>P M^QF%Y6+9:YFW;O,QC"XV]37TG%F-P.-=7$X?,').S5+EJ):66[M'N]OQ/'X? MPV*PRIT:V$46KWGS0OU>RU\MS\P?^"'7[#G@']NSXD>+M!^(%KJEQ9:+XTB'2Q!'X?.FFW\N0/OW&YFW9Z8P/KVJG^WO_P $9;O]KO\ :YT? MXO\ ACXE6_@#6M*MK M"_ATZEYUY9SM)#<[Q=0X.WRDVX/$(.><#V,=Q;@,7 MF6)P]:M?"U*=E=2:4[*S2M=:WZ;V9YN%X?Q6'P=&M2IVKPG=V:NXW=TW>STM MUVNCYE_X+5%O%7_!9?\ 9]T/[T;0^&TV@\@SZ_<*W_CJ+7#_ /!3+7M1_P"" M=W_!8+Q%X^T6.:"'QSX6N]3M%M_E43WFFW-@23WVWT,=RPZ\CU%?=O[4'_!) MF^_:1_X*&>!OCHWQ"MM)M_!<^CRC0CH)N&N5L+MKDJ+C[2H3S&8C/E-MZ_-T MK9_X*A_\$IM/_P""E#^#KIO&$G@G4_"*7D*W4>DK?_;(KCR3L8&6,C8T(*G) M^^_'.:X\MXERZB\)0K3O2]E*%326CE9[6UU25U?H^-?$>G^(VWIATMAJEI8VRY[H8 MD\X?]?!]<5]/?\$U?VC(_P!G+_@@2_C96A2Y\$V7B)[42?=EO&U*[:VC/^_- M-$O_ *OIS]J#]A>Q^._[ MS\!]#UA?"NFKI>EZ387\EE]M%G#8S6TD>8A)' MNRML%^^N-V><8/@H_P"",_B"U_X)KG]GBU^+=K;PW7B7^V[W6?\ A&&*W-L) M//%I]G^U\$7"Q2;_ #"/DQMYR.6IGV S#".GC:G*Y8GVC34G:GRVZ)K1:6W- MH93BL)74\-"_+0Y$[I>_>_5KKK?8^&?^"1?_ 1W\+_\%#/@MXH\7>-O$7BS M1[?2=;&CZ>-*DM@;ET@CEGDD\Z&0MS/& 1CD/G/;R[Q]^P3X1^%'_!5^V^ ? MBK6/$2^"[W7K32K7583 -1>.^MD:S?[NKS54LOL7V^6>XDEW&+S)-NU&2,?.BC))+FULWJNNIPU^%>7 472I M)U8N+DKK5=4W>W_#:'GO_$,!\&/^A\^*'_?W3?\ Y$KX#_:@_8"\)? W_@J) MX=^ ^D:MXBN/"VM:UH&ES7UY);MJ")J#P),RE(EBROFL5S&0,#.[G/\ 1%:B M5;:,3-&\P4"1D4JK-CD@$D@9[$GZFOB']HC_ ((Z7GQW_P""CF@_'Q/B-;Z5 M;Z+K&B:J=!;P^9WF&G/"YC^T_:5"^9Y6,^4=N[HV.?+X-AU4UA_\'*PQ^P;X9_['JR_](;^ MOT,KYT_X*#E?$-:KF]#%YG6+O$GC#1; MK0/$;Z.D.C/:(DL0M;:8,3-!(0^Z9AD<8 XSDG]+_"/_ 3?N/"__!+BX_9P M;QI#<7%QI=[IW_"1#2"J*;B\EN=_V7SR?E\S;CS>=NDG31 #;00>7L,TN[_4[MVX?>QCC)^@_UJI8; M!XWZE6Y:M2M*4;)ZQ;6NJLM.CL_(\O\ L&=;$8;ZS3O"%)1E=K226VCN_EH= MI^QQ^P3\,_V$O"%UI?P_T-K6XU0HVI:K>3&YU'4V0$+YLI_A7)(C0+&I9B%! M9B?R.\/_ A\-_'S_@XBUSP?XPTFWUWPUK7B_7%OK"3)DJ0?EDB MC;@]5%?NK7YC_M0?\&\.I?M$_M)^-/B%;_&:VT'_ (2W5IM32R_X1-[A[,28 M^3S1>INQZ[5SGI7G\*9Y2A7Q53,<0X2JTW%3:E)J3T3TN]-UMMHT=6?974E2 MH0P=)2C3FFXZ)673737KON?8GP=_X)H? K]G_P")&F^+_!WPXT70?$FC^;]C MOX)9VD@\R)X7P&D(^:.1UY'1C17P)_Q##:]_T<$O_A(2_P#RQHJ<1EV48B7/ MB,U5*HW;MJ_,JCC,PHQY:6 45V4X+\D?K?7R'^U+_P $V?AKXGTB*&>Q MN+70=2U9!!8V3"";0;JYD1'GT^;!$,;XS);2)+ Q5&1(F!9BBOE_BL/3JTVJB3]3Q>[_X-VM)FU1C'\5M273BW$,N@1O-M]#()@N??9^% M?0O[+7_!(GX-_LLZY:ZY::1<^*O$UFPEM]4UUDN&M'&"&AB1$B1@1E7V&1>S MT45V8KB;,\13]E5K.WE97];)7^9R4 XML 12 R1.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Document And Entity Information - shares
3 Months Ended
Apr. 30, 2024
Jun. 13, 2024
Document Information [Line Items]    
Entity Central Index Key 0000914122  
Entity Registrant Name Perma-Pipe International Holdings, Inc.  
Amendment Flag false  
Current Fiscal Year End Date --01-31  
Document Fiscal Period Focus Q1  
Document Fiscal Year Focus 2024  
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Apr. 30, 2024  
Document Transition Report false  
Entity File Number 001-32530  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 36-3922969  
Entity Address, Address Line One 24900 Pitkin Road, Suite 309  
Entity Address, City or Town Spring  
Entity Address, State or Province TX  
Entity Address, Postal Zip Code 77386  
City Area Code 847  
Local Phone Number 966-1000  
Title of 12(b) Security Common Stock, $.01 par value per share  
Trading Symbol PPIH  
Security Exchange Name NASDAQ  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Filer Category Non-accelerated Filer  
Entity Small Business true  
Entity Emerging Growth Company false  
Entity Shell Company false  
Entity Common Stock, Shares Outstanding   8,017,981
XML 13 R2.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Consolidated Statements of Operations (Unaudited) - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended
Apr. 30, 2024
Apr. 30, 2023
Net sales $ 34,321 $ 29,657
Cost of sales 23,804 22,883
Gross profit 10,517 6,774
Operating expenses    
General and administrative expenses 6,148 5,460
Selling expenses 1,235 1,239
Total operating expenses 7,383 6,699
Income from operations 3,134 75
Interest expense 507 512
Other (expense) income (67) 72
Income (loss) before income taxes 2,560 (365)
Income tax expense 770 758
Net income (loss) 1,790 (1,123)
Less: Net income attributable to non-controlling interest 347 0
Net income (loss) attributable to common stock $ 1,443 $ (1,123)
Weighted average common shares outstanding    
Basic (in shares) 7,906 8,004
Diluted (in shares) 8,056 8,004
Earnings per share attributable to common stock    
Basic (in dollars per share) $ 0.18 $ (0.14)
Diluted (in dollars per share) $ 0.18 $ (0.14)
XML 14 R3.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Consolidated Statements of Comprehensive Income (Loss) (Unaudited) - USD ($)
$ in Thousands
3 Months Ended
Apr. 30, 2024
Apr. 30, 2023
Net income (loss) $ 1,790 $ (1,123)
Other comprehensive income (loss)    
Foreign currency translation adjustment (1,415) (437)
Comprehensive income (loss) 375 (1,560)
Less: Comprehensive income attributable to non-controlling interests 347 0
Total comprehensive income (loss) attributable to common stock $ 28 $ (1,560)
XML 15 R4.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Consolidated Balance Sheets (Current Period Unaudited) - USD ($)
$ in Thousands
Apr. 30, 2024
Jan. 31, 2024
Current assets    
Cash and cash equivalents $ 7,674 $ 5,845
Restricted cash 1,390 1,395
Trade accounts receivable, less allowance for credit losses of $644 at April 30, 2024 and $699 at January 31, 2024 44,276 46,646
Inventories 15,408 15,541
Prepaid expenses and other current assets 12,223 9,697
Unbilled accounts receivable 15,718 16,597
Costs and estimated earnings in excess of billings on uncompleted contracts 2,302 3,097
Total current assets 98,991 98,818
Long-term assets    
Property, Plant and Equipment, Net 38,211 37,620
Operating lease right-of-use asset 6,165 6,467
Deferred tax assets 8,160 7,919
Goodwill 2,172 2,222
Other long-term assets 3,464 2,665
Total long-term assets 58,172 56,893
Total assets 157,163 155,711
Liabilities, Current [Abstract]    
Trade accounts payable 24,672 25,323
Accrued compensation and payroll taxes 1,752 1,214
Commissions and management incentives payable 4,967 4,523
Revolving line - North America 5,312 5,519
Current maturities of long-term debt 6,099 4,071
Customers' deposits 5,285 4,264
Operating lease liability short-term 845 914
Other accrued liabilities 7,628 9,039
Billings in excess of costs and estimated earnings on uncompleted contracts 891 495
Income taxes payable 1,959 2,380
Total current liabilities 59,410 57,742
Liabilities, Noncurrent [Abstract]    
Long-Term Debt, Excluding Current Maturities 4,069 4,229
Long-term finance obligation 8,982 9,035
Deferred compensation liabilities 1,031 1,212
Deferred tax liabilities 993 1,217
Operating lease liability long-term 6,032 6,270
Other long-term liabilities 1,313 1,275
Total long-term liabilities 25,173 25,991
Non-controlling interest 7,033 6,266
Commitments and contingencies
Stockholders' equity    
Common stock, $.01 par value, authorized 50,000 shares; 8,018 issued and outstanding at April 30, 2024 and 8,017 at January 31, 2024 80 80
Additional paid-in capital 59,870 60,063
Treasury stock, 112 shares at April 30, 2024 and January 31, 2024 (968) (968)
Retained earnings 13,531 12,088
Accumulated other comprehensive loss (6,966) (5,551)
Total stockholders' equity 65,547 65,712
Total liabilities and stockholders' equity 157,163 155,711
Related Party [Member]    
Long-term assets    
Total assets 26,300  
Liabilities, Noncurrent [Abstract]    
Loan payable to GIG $ 2,753 $ 2,753
XML 16 R5.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) - USD ($)
shares in Thousands, $ in Thousands
Apr. 30, 2024
Jan. 31, 2024
Allowance for doubtful accounts $ 644 $ 699
Common stock, par value (in dollars per share) $ 0.01 $ 0.01
Common stock, authorized (in shares) 50,000 50,000
Common stock, issued (in shares) 8,018 8,017
Common stock, outstanding (in shares) 8,018 8,017
Treasury stock (in shares) 112 112
XML 17 R6.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($)
$ in Thousands
Common Stock [Member]
Revision of Prior Period, Adjustment [Member]
Common Stock [Member]
Additional Paid-in Capital [Member]
Retained Earnings [Member]
Treasury Stock, Common [Member]
AOCI Attributable to Parent [Member]
Total
Balance at Jan. 31, 2023   $ 80 $ 62,562 $ 1,617 $ (26) $ (6,449) $ 57,784
Net income   0 0 (1,123) 0 0 (1,123)
Stock-based compensation expense   0 229 0 0 0 229
Foreign currency translation adjustment   0 0 0 0 (437) (437)
Balance at Apr. 30, 2023   $ 80 62,791 494 $ (26) (6,886) 56,453
Balances (in shares) at Jan. 31, 2023 (56,947) 8,007,002          
Treasury stock retired (in shares)         0    
Shares issued, net of shares used for tax withholding (in shares)   66,726          
Balances (in shares) at Apr. 30, 2023   8,016,781          
Balance at Jan. 31, 2024   $ 80 60,063 12,088 $ (968) (5,551) 65,712
Net income   0 0 1,443 0 0 1,443
Stock-based compensation expense   0 228 0 0 0 228
Amount attributable to non-controlling interest   0 (421) 0 0 0 (421)
Foreign currency translation adjustment   0 0 0 0 (1,415) (1,415)
Balance at Apr. 30, 2024   $ 80 $ 59,870 $ 13,531 $ (968) $ (6,966) $ 65,547
Balances (in shares) at Jan. 31, 2024 0 8,016,781          
Treasury stock retired (in shares)         0    
Shares issued, net of shares used for tax withholding (in shares)   1,200          
Balances (in shares) at Apr. 30, 2024   8,017,981          
XML 18 R7.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Consolidated Statements of Cash Flows (Unaudited) - USD ($)
$ in Thousands
3 Months Ended
Apr. 30, 2024
Apr. 30, 2023
Operating activities    
Net income (loss) $ 1,790 $ (1,123)
Adjustments to reconcile net income (loss) to net cash provided by operating activities    
Depreciation and amortization 829 915
Deferred tax (benefit) expense (269) 77
Stock-based compensation expense 228 229
Provision on uncollectible accounts (26) 26
Gain (loss) from disposal of fixed assets 14 (5)
Changes in operating assets and liabilities    
Accounts receivable 1,854 1,862
Inventories (359) 1,813
Costs and estimated earnings in excess of billings on uncompleted contracts 1,191 1,858
Accounts payable (268) (227)
Accrued compensation and payroll taxes 1,000 1,279
Customers' deposits 1,143 (371)
Income taxes payable (694) (318)
Prepaid expenses and other current assets (2,552) (570)
Other assets and liabilities (2,826) (1,275)
Net cash provided by operating activities 1,350 3,811
Investing activities    
Capital expenditures (2,012) (3,227)
Proceeds from insurance recovery for property and equipment 0 5
Net cash used in investing activities (2,012) (3,222)
Financing activities    
Proceeds from revolving credit lines 18,268 28,333
Payments of debt on revolving credit lines (16,405) (25,527)
Payments of other debt (58) (61)
Increase (decrease) in drafts payable 794 (176)
Payments on finance lease obligations (8) (83)
Stock options exercised and taxes paid related to restricted shares vested 8 0
Net cash provided by financing activities 2,557 2,459
Effect of exchange rate changes on cash, cash equivalents and restricted cash (71) (56)
Net increase in cash, cash equivalents and restricted cash 1,824 2,992
Cash, cash equivalents and restricted cash - beginning of period 7,240 6,793
Cash, cash equivalents and restricted cash - end of period 9,064 9,785
Supplemental cash flow information    
Cash interest paid 248 521
Cash income taxes paid 1,575 939
Finance Lease Obligations [Member]    
Financing activities    
Payments on finance lease obligations (8) (83)
Land and Buildings in Lebanon, Tennessee [Member]    
Financing activities    
Payments of principal on finance obligation (42) (27)
Unbilled Revenues [Member]    
Changes in operating assets and liabilities    
Unbilled accounts receivable $ 295 $ (359)
XML 19 R8.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 1 - Basis of Presentation
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]

Note 1 - Basis of presentation

 

The interim consolidated financial statements of Perma-Pipe International Holdings, Inc., and subsidiaries (collectively, "PPIH", "Company", or "Registrant") are unaudited, but include all adjustments that the Company's management considers necessary to present fairly the financial position and results of operations for the periods presented. These adjustments consist of normal recurring adjustments. Certain information and footnote disclosures have been omitted pursuant to Securities and Exchange Commission ("SEC") rules and regulations. The consolidated balance sheet as of  January 31, 2024 is derived from the audited consolidated balance sheet as of that date. The results of operations for any interim period are not necessarily indicative of future or annual results. Interim financial statements should be read in conjunction with the financial statements and the notes thereto included in the Company's latest Annual Report on Form 10-K. The Company's fiscal year ends on January 31. Years and balances described as 2024 and 2023 are for the fiscal year ending January 31, 2025 and for the fiscal year ended  January 31, 2024, respectively.

 

Significant New Accounting Policies

 

Refer to the Company's Annual Report on Form 10-K for the year ended January 31, 2024 as filed with the SEC on April 26, 2024 for discussion of the Company's significant accounting policies.

 

Subsequent Events

 

The Company has evaluated subsequent events through June 13, 2024, the date the financial statements were issued. Any material subsequent events that occurred during this time have been properly recognized and/or disclosed in these consolidated financial statements.

 

XML 20 R9.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 2 - Business Segment Reporting
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Segment Reporting Disclosure [Text Block]

Note 2 - Business segment reporting

 

The Company is engaged in the manufacture and sale of products in one reportable segment: Piping Systems. The Company engineers, manufactures and sells pre-insulated specialty piping systems, and leak detection systems. Pre-insulated specialty piping systems include: (i) insulated and jacketed district heating and cooling piping systems for efficient energy distribution from central energy plants to multiple locations, (ii) primary and secondary containment piping systems for transporting chemicals, hazardous fluids and petroleum products, (iii) the coating and/or insulation of oil and gas gathering and transmission pipelines, and (iv) liquid and powder based anti-corrosion coatings applied both to the external and internal surfaces of steel pipe, including shapes like bends, reducers, tees, and other spools/fittings used in pipelines for the transportation of oil and gas products and potable water. The Company's leak detection systems are sold with its piping systems or on a stand-alone basis to monitor areas where fluid intrusion may contaminate the environment, endanger personal safety, cause a fire hazard, impair essential services or damage equipment or property.

XML 21 R10.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 3 - Accounts Receivable
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Loans, Notes, Trade and Other Receivables Disclosure [Text Block]

Note 3 - Accounts receivable

 

The majority of the Company's accounts receivable are due from geographically dispersed contractors and manufacturing companies. Credit is extended based on an evaluation of a customer's financial condition. In the United States, collateral is not generally required. In the United Arab Emirates ("U.A.E."), Saudi Arabia, Egypt and India letters of credit are usually obtained for significant orders. Accounts receivable are due within various time periods specified in the terms applicable to the specific customer and are stated as amounts due from customers net of an allowance for claims and doubtful accounts. Standard payment terms are generally net 30 to 60 days. The allowance for doubtful accounts is based on specifically identified amounts in customers' accounts, where future collectability is deemed uncertain. Management may exercise its judgment in adjusting the provision as a consequence of known items, such as current economic factors and credit trends. Past due trade accounts receivable balances are written off when the Company's collection efforts have been unsuccessful in collecting the amount due and the amount is deemed uncollectible. The write off is recorded against the allowance for doubtful accounts.

 

In 2015, the Company completed a project in the Middle East with billings in the aggregate amount of approximately $41.9 million. The system has not yet been commissioned by the customer. Nevertheless, the Company has settled approximately $40.1 million as of April 30, 2024, with a remaining balance due in the amount of $1.8 million, all of which pertains to retention clauses within the agreements with the Company's customer, and which become payable by the customer when this project is fully tested and commissioned. Of this amount, $1.0 million is classified in other long-term assets on the Company's consolidated balance sheets.

 

The Company has been actively involved in ongoing efforts to collect this outstanding balance. The Company continues to engage with the customer to ensure full payment of the open balances, and during the three months ended April 30, 2024, and at various times throughout 2023, the Company received partial payments to settle $0.3 million and $0.6 million, respectively, of the customer's outstanding balances. Further, the Company has been engaged by the customer to perform additional work in 2024 under customary trade terms that supports the continued cooperation between the Company and the customer. As a result, the Company did not reserve any allowance against the remaining outstanding balances as of  April 30, 2024. However, if the Company's efforts to collect on this account are not successful, the Company may recognize an allowance for all, or substantially all, of any such then uncollected amounts. 

 

For the three months ended April 30, 2024 and 2023, respectively, no one customer accounted for greater than 10% of the Company's consolidated net sales. 

 

As of  April 30, 2024 and January 31, 2024one customer accounted for 11% of the Company's accounts receivable, and one customer accounted for 12% of the Company's accounts receivable, respectively.

XML 22 R11.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 4 - Revenue Recognition
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Revenue from Contract with Customer [Text Block]

Note 4 - Revenue recognition 

 

The Company accounts for its revenues under Accounting Standards Codification ("ASC") 606, Revenue from Contracts with Customers.

 

Revenue from contracts with customers

 

The Company defines a contract as an agreement that has approval and commitment from both parties, defined rights and identifiable payment terms, which ensures the contract has commercial substance and that collectability is reasonably assured.

 

The Company’s standard revenue transactions are classified into two main categories:

 

 

1)

Systems and Coating - which include all bundled products in which Perma-Pipe engineers, and manufactures pre-insulated specialty piping systems mainly relating to the district heating and cooling and oil & gas markets.

 

 

2)

Products - which include cables, leak detection products, heat trace products, material/goods not bundled with piping or flowline systems, and field services not bundled into a project contract.

 

In accordance with ASC 606-10-25-27 through 29, the Company recognizes specialty piping and coating systems revenue over time as the manufacturing process progresses because one of the following conditions exist:

 

 

1)

the customer owns the material that is being coated, so the customer controls the asset and thus the work-in-process; or

 

 

2)

the customer controls the work-in-process due to the custom nature of the pre-insulated, fabricated system being manufactured, which has no alternative future use, and there is a right to payment for work performed to date plus profit margin.

 

 Products revenue is recognized when goods are shipped or services are performed (ASC 606-10-25-30).

 

A breakdown of the Company's revenues by revenue class for the three months ended April 30, 2024 are as follows:

 

  

Three Months Ended April 30,

 
  

2024

  

2023

 
  

Sales

  

% of Total

  

Sales

  

% of Total

 

Products

 $3,253   9% $2,842   9%
                 

Specialty Piping Systems and Coating

                

Revenue recognized under input method

  10,140   30%  10,338   35%

Revenue recognized under output method

  20,928   61%  16,477   56%

Total

 $34,321   100% $29,657   100%

 

The input method as noted in ASC 606-10-55-20 is used by certain operating entities to measure revenue by the costs incurred to date relative to the estimated costs to satisfy the contract over time. Generally, these contracts are considered a single performance obligation satisfied over time and due to the custom nature of the goods and services, the "over time" method is the most faithful depiction of the Company’s performance as it measures the value of the goods and services transferred to the customer. Costs include all material, labor, and direct costs incurred to satisfy the performance obligations of the contract. Revenue recognition begins when projects costs are incurred.  

 

The output method as noted in ASC 606-10-55-17 is used by all other operating entities to measure revenue by the direct measurement of the outputs produced relative to the remaining goods promised under the contract. Due to the types of end customers, generally these contracts require formal inspection protocols or specific export documentation for units produced, or produced and shipped, therefore, the output method is the most faithful depiction of the Company’s performance. Depending on the conditions of the contract, revenue may be recognized based on units produced, inspected and held by the Company prior to shipment or on units produced, inspected and shipped. 

 

Some of the Company’s operating entities invoice and collect milestones or other contractual obligations prior to the transfer of goods and services, but do not recognize revenue until the performance obligations are satisfied under the methods discussed above.

 

Contract modifications that occur prior to the start of the manufacturing process will supersede the original contract and revenue is recognized using the modified contract value. Contract modifications that occur during the manufacturing process (changes in scope of work, job performance, material costs, and/or final contract settlements) are recognized in the period in which the revisions are known. Provisions are made for estimated losses on uncompleted contracts in the contract liabilities account in the period in which such losses are determined.

 

The transaction price associated with the Company's contracts with customers are generally determined based on the fixed amount of consideration as specified in a contract. This  may also include variable consideration in certain instances where it is considered probable that a significant reversal of cumulative revenue recognized will not occur. As a result, the amount of consideration ultimately received from the customer can fluctuate due to the variability of future events stated in a contract. Therefore, the aggregate amount of the transaction price includes the fixed consideration contained in a contract that is generally not subject to change and excludes sales and value added taxes, or amounts collected on behalf of third parties, along with any variable consideration. The total transaction price is then allocated to the performance obligations which is eventually recognized as revenue based on the project type and the method that is used to measure the transfer of promised goods and services to customers. Additionally, transaction prices relating to cost-plus contracts are determined by applying the applicable profit margin to costs incurred on contracts, whereas transaction prices relating to fixed price contracts are determined on a lump-sum basis. Further, standard payment terms are generally net 30 to 60 days, which is customer specific.

 

Contract assets and liabilities

 

Contract assets represent revenue recognized in excess of amounts billed for work in progress for which the Company has a valid contract and an enforceable right to payment for work completed. Contract liabilities represent billings in excess of costs for work in progress for which the Company has a valid contract and an enforceable right to payment for work completed. Both customer billings and the satisfaction (or partial satisfaction) of the performance obligation(s) occur throughout the manufacturing process and impact the period end balances in these accounts. In addition, contract assets include receivables or amounts that are billable beyond the passage of time. For additional information, see Note 3 in the Notes to Consolidated Financial Statements included in the Company's Annual Report on Form 10-K for the year ended January 31, 2024 as filed with the SEC on April 26, 2024, and Unbilled accounts receivable, as further described below. 

 

The following table shows the reconciliation of costs in excess of billings and billings in excess of costs: 

 

  

April 30, 2024

  

January 31, 2024

 

Costs incurred on uncompleted contracts

 $15,980  $21,912 

Estimated earnings

  10,441   11,270 

Earned revenue

  26,421   33,182 

Less billings to date

  25,010   30,580 

Costs in excess of billings, net

 $1,411  $2,602 

Balance sheet classification

        

Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts

 $2,302  $3,097 

Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts

  (891)  (495)

Costs in excess of billings, net

 $1,411  $2,602 

 

The Company anticipates that substantially all costs incurred on uncompleted contracts as of  April 30, 2024 will be billed and collected within one year

 

Unbilled accounts receivable

 

The Company has recorded $15.7 million and $16.6 million of unbilled accounts receivable on the consolidated balance sheets as of April 30, 2024 and January 31, 2024, from revenues generated by certain of its subsidiaries. The Company has fulfilled all performance obligations and has recorded revenue under the respective contracts. The deliverables under these contracts have been accepted by the customer and billings will be made once the customer takes possession of or arranges shipping for the products. The Company anticipates that substantially all of the amounts included in unbilled accounts receivable as of  April 30, 2024 will be billed within one year.

 

Practical expedients

 

Costs to obtain a contract are not considered to be incremental or material, and project duration generally does not span more than one year. Accordingly, the Company applies the practical expedient for these types of costs and as such, are expensed in the period incurred.

 

As a result of the Company's contracts having a duration of less than one year, a practical expedient was applied regarding disclosure of the aggregate amount and future timing of performance obligations that are unsatisfied or partially satisfied as of the end of the reporting period. 

 

XML 23 R12.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 5 - Income Taxes
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Income Tax Disclosure [Text Block]

Note 5 - Income taxes 

 

The determination of the consolidated provision for income taxes, deferred tax assets and liabilities and related valuation allowances requires management to make judgments and estimates. As a company with subsidiaries in foreign jurisdictions, the process of calculating income taxes involves estimating current tax obligations and exposures in each jurisdiction as well as making judgments regarding the future recoverability of deferred tax assets. The relative proportion of taxable income earned domestically versus internationally can fluctuate significantly from period to period. Changes in the estimated level of annual pre-tax income, tax laws and the results of tax audits can affect the overall effective income tax rate, which impacts the level of income tax expense and net income. Judgments and estimates related to the Company's projections and assumptions are inherently uncertain; therefore, actual results could differ materially from projections.

 

The Company's worldwide effective tax rates ("ETR") for the three months ended April 30, 2024 and 2023 were 30% and (208%), respectively. The change in the ETR is due to the inability to recognize tax benefits on losses in the United States due to a partial valuation allowance in the prior period and changes in the mix of income and loss in various jurisdictions.

 

The Company expects that future distributions from foreign subsidiaries will not be subject to incremental U.S. federal tax as they will either be remittances of previously taxed earnings and profits or eligible for a full dividends received deduction. Current and future earnings in the Company's subsidiaries in Canada and Egypt are not permanently reinvested. The earnings from these subsidiaries are subject to tax in their local jurisdiction, and withholding taxes in these jurisdictions are considered. As such, the Company has accrued a liability of $0.7 million as of April 30, 2024 related to these taxes.

 

XML 24 R13.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 6 - Impairment of Long-lived Assets
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Asset Impairment Charges [Text Block]

Note 6 - Impairment of long-lived assets

 

The Company's assessment of long-lived assets, and other identifiable intangibles is based upon factors that market participants would use in accordance with the accounting guidance for the fair value measurement of assets. At  April 30, 2024, the Company performed an assessment to determine whether there were any triggering events that may have occurred which could indicate that the carrying value of the Company's long-lived assets are not recoverable, and an impairment may exist. Based on this assessment, the Company did not identify any triggering events that would indicate that the carrying amounts may not be recoverable with respect to long-lived assets at  April 30, 2024.  The Company will continue testing for potential impairment at least annually or as otherwise required by applicable accounting standards.

 

Goodwill. The purchase price of an acquired company is allocated between intangible assets and the net tangible assets of the acquired business with the residual of the purchase price recorded as goodwill. All identifiable goodwill as of April 30, 2024 and January 31, 2024 is attributable to the purchase of the remaining 50% interest in Perma-Pipe Canada, Ltd., which occurred in 2016.

 

The following table provides a reconciliation of changes in the carrying amount of goodwill:

 

  

January 31, 2024

  

Foreign exchange change effect

  

April 30, 2024

 

Goodwill

 $2,222  $(50) $2,172 

 

The Company performs an impairment assessment of goodwill annually as of January 31, or more frequently if triggering events occur, based on the estimated fair value of the related reporting unit or intangible asset. Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants. During the period ended  April 30, 2024, the Company performed a periodic assessment to determine whether there were any triggering events that may have occurred which could indicate that more likely than not that the fair value of the reporting unit did not exceed its carrying value, resulting in an impairment. Based on this assessment, the Company did not identify any triggering events that would indicate that the fair value is less than the carrying value of the reporting unit at  April 30, 2024 and 2023. Accordingly, the Company did not proceed with performing an impairment test as a result of this periodic assessment. the Company will continue testing for impairment at least annually as of January 31, or as otherwise required by applicable accounting standards.

 

XML 25 R14.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 7 - Stock-based Compensation
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Share-Based Payment Arrangement [Text Block]

Note 7 - Stock-based compensation 

 

The Company’s 2017 Omnibus Stock Incentive Plan dated June 13, 2017, as amended, which the Company's stockholders approved in June 2017 ("2017 Plan"), expired in June 2020.

 

The Company has prior incentive plans under which previously granted awards remain outstanding, including the 2017 Plan, but under which no new awards may be granted. At April 30, 2024 the Company had reserved a total of 245,150 shares for grants and issuances under these incentive stock plans, which includes a reserve for issuances pursuant to unvested or unexercised prior awards.

 

While the 2017 Plan provided for the grant of deferred shares, non-qualified stock options, incentive stock options, restricted shares, restricted stock units, and performance-based restricted stock units intended to qualify under section 422 of the Internal Revenue Code, the Company issued only restricted shares and restricted stock units under the 2017 Plan. The 2017 Plan authorized awards to officers, employees, consultants, and independent directors.

 

The Company's 2021 Omnibus Stock Incentive Plan, dated May 26, 2021, was approved by the Company's stockholders in  May 2021 ("2021 Plan"). The 2021 Plan will expire in  May 2024. The 2021 Plan authorizes awards to officers, employees, consultants and independent directors. Grants were made to the Company's employees, officers, and independent directors under the 2021 Plan, as described below.

 

Stock-based compensation expense

 

The Company has granted stock-based compensation awards to eligible employees, officers or independent directors. The Company recognized the following stock-based compensation expense for the periods presented:

 

  

Three Months Ended April 30,

 
  

2024

  

2023

 

Restricted stock-based compensation expense

 $228  $229 

 

Stock options

 

The Company did not grant any stock options during the three months ended April 30, 2024. The following table summarizes the Company's stock option activity:

 

  

Options

  

Weighted Average Exercise Price (Per share)

  

Weighted Average Remaining Contractual Term (In years)

  

Aggregate Intrinsic Value

 

Outstanding at January 31, 2024

  22  $11.15   0.7  $6 

Exercised

  (1)  6.85   -   2 

Expired or forfeited

  -   11.39   -   - 

Outstanding and exercisable at April 30, 2024

  21  $11.39   0.4  $7 

 

There was no vesting, expiration or forfeiture of previously unvested stock options during the three months ended April 30, 2024. In addition, there were no remaining unvested stock options outstanding, and therefore no unrecognized compensation expense related to unvested stock options.

 

Restricted stock

 

The following table summarizes the Company's restricted stock activity for the three months ended  April 30, 2024:

 

  

Restricted Shares

  

Weighted Average Price (Per share)

  

Aggregate Intrinsic Value

 

Outstanding at January 31, 2024

  223  $9.33  $2,079 

Granted

  -   -     

Vested and issued

  -   -     

Forfeited or retired for taxes

  -   -     

Outstanding at April 30, 2024

  223  $9.33  $2,079 

 

As of April 30, 2024, there was $0.8 million of unrecognized compensation expense related to unvested restricted stock granted under the plans. These costs are expected to be recognized over a weighted average period of 1.7 years.

XML 26 R15.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 8 - Earnings Per Share
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Earnings Per Share [Text Block]

Note 8 - Earnings per share

 

  

Three Months Ended April 30,

 
  

2024

  

2023

 

Basic weighted average common shares outstanding at April 30, 2024

  7,906   8,004 

Dilutive effect of equity compensation plans

  150   - 

Weighted average common shares outstanding assuming full dilution

  8,056   8,004 
         

Stock options and restricted stock not included in the computation of diluted earnings per share of common stock because the option exercise prices or grant date prices exceeded the average market prices of the common shares

  32   35 

Stock options and restricted stock with exercise prices or grant date prices below the average market prices

  150   210 
         

Net income (loss) attributable to common stock

 $1,443  $(1,123)
         

Earnings per share attributable to common stock

        

Basic

 $0.18  $(0.14)

Diluted

 $0.18  $(0.14)

 

XML 27 R16.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 9 - Debt
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Debt Disclosure [Text Block]

Note 9 - Debt

 

Debt totaled $27.3 million and $25.7 million at April 30, 2024 and January 31, 2024, respectively.

 

Revolving lines - North AmericaOn September 20, 2018, the Company and certain of its U.S. and Canadian subsidiaries (collectively, together with the Company, the “North American Loan Parties”) entered into a Revolving Credit and Security Agreement (the “Credit Agreement”) with PNC Bank, National Association ("PNC"), as administrative agent and lender, providing for a three-year $18 million senior secured revolving credit facility, subject to a borrowing base including various reserves (the “Senior Credit Facility”).

 

On September 17, 2021, the North American Loan Parties executed an extension of the Credit Agreement with PNC, providing for a new five-year $18 million senior secured revolving credit facility, subject to a borrowing base including various reserves (the “Renewed Senior Credit Facility”). The Company's obligations under the Renewed Senior Credit Facility are currently guaranteed by Perma-Pipe Canada, Inc. Each of the North American Loan Parties other than Perma-Pipe Canada, Inc. (collectively, the "Borrowers") is a borrower under the Renewed Senior Credit Facility.

 

The Borrowers have used and will continue to use borrowings under the Renewed Senior Credit Facility (i) to fund future capital expenditures; (ii) to fund ongoing working capital needs; and (iii) for other corporate purposes, including potentially additional stock repurchases. Borrowings under the Renewed Senior Credit Facility bear interest at a rate equal to an alternate base rate, SOFR rate index, plus, in each case, an applicable margin. The applicable margin is based on a fixed charge coverage ratio ("FCCR") range. Interest on alternate base rate borrowings is the alternate base rate (as defined in the Renewed Senior Credit Facility) plus an applicable margin ranging from 1.00% to 1.50%, based on the FCCR in the most recently reported period. Interest on SOFR rate borrowings is the SOFR rate (as defined in the Renewed Senior Credit Facility) plus an applicable margin ranging from 2.00% to 2.50%, based on the FCCR in the most recently reported period, as well as an additional SOFR adjustment ranging from 0.10% to 0.25%, based on the term of the interest period. Additionally, the Borrowers pay a 0.25% per annum facility fee on the unused portion of the Renewed Senior Credit Facility.

 

Subject to certain exceptions, borrowings under the Renewed Senior Credit Facility are secured by substantially all of the North American Loan Parties’ assets. The Renewed Senior Credit Facility matures on September 20, 2026. Subject to certain qualifications and exceptions, the Renewed Senior Credit Facility contains covenants that, among other things, restrict the North American Loan Parties’ ability to create liens, merge or consolidate, consummate acquisitions, make investments, dispose of assets, incur debt, and pay dividends and other distributions. In addition, the North American Loan Parties may not make capital expenditures in excess of $5.0 million annually, plus a limited carryover of unused amounts. Further, the North American Loan Parties may not make repurchases of the Company's common stock in excess of $3.0 million.

 

The Renewed Senior Credit Facility also contains financial covenants requiring the North American Loan Parties to achieve a ratio of its EBITDA (as defined in the Renewed Senior Credit Facility) to the sum of scheduled cash principal payments on indebtedness for borrowed money and interest payments on the advances under the Renewed Senior Credit Facility to be not less than 1.10 to 1.00 for any five consecutive days in which the undrawn availability is less than $3.0 million or any day in which the undrawn availability is less than $2.0 million. In order to cure any future breach of these covenants by the North American Loan Parties, the Company may repatriate cash from any of its foreign subsidiaries that are otherwise not a party to the Renewed Senior Credit Facility in an amount which, when added to the amount of the Company’s Consolidated EBITDA, would result in compliance on a pro forma basis. The Company was in compliance with respect to these covenants as of  April 30, 2024.

 

The Renewed Senior Credit Facility contains customary events of default. If an event of default occurs and is continuing, then PNC may terminate all commitments to extend further credit and declare all amounts outstanding under the Renewed Senior Credit Facility due and payable immediately. In addition, if any of the North American Loan Parties or certain of their subsidiaries become the subject of voluntary or involuntary proceedings under any bankruptcy, insolvency or similar law, then any outstanding obligations under the Renewed Senior Credit Facility will automatically become immediately due and payable. Loans outstanding under the Renewed Senior Credit Facility will bear interest at a rate of 2.00% per annum in excess of the otherwise applicable rate (i) while a bankruptcy event of default exists or (ii) upon the lender's request, during the continuance of any other event of default.

 

As of April 30, 2024, the Company had borrowed an aggregate of $5.3 million at a rate of 10.0% and had $5.0 million available under the Renewed Senior Credit Facility. As of January 31, 2024, the Company had borrowed an aggregate of $5.5 million and had $4.0 million available under the Renewed Senior Credit Facility.  

 

Finance obligation - buildings and land. On April 14, 2021, the Company entered into a purchase and sale agreement (the "Purchase and Sale Agreement"). Pursuant to the terms of the Purchase and Sale Agreement, the Company sold its land and buildings in Lebanon, Tennessee (the "Property") for $10.4 million. The transaction generated net cash proceeds of $9.1 million. Concurrently with the sale, the Company paid off the approximately $0.9 million mortgage note on the Property to its lender.  The Company used the remaining proceeds to repay its borrowings under the Senior Credit Facility, for strategic investments, and for general corporate needs. Concurrent with the sale of the Property, the Company entered into a fifteen-year lease agreement (the “Lease Agreement”), whereby the Company leases back the Property at an annual rental rate of approximately $0.8 million, subject to annual rent increases of 2.0%. Under the Lease Agreement, the Company has four consecutive options to extend the term of the lease by five years for each such option.  

 

In accordance with ASC 842, Leases, this transaction was recorded as a failed sale and leaseback as the present value of lease payments exceeded substantially the fair value of the underlying assets. The Company utilized an incremental borrowing rate of 8.0% to determine the finance obligation to record for the amounts received and will continue to depreciate the assets. The current portion of the finance obligation of $0.2 million is recognized in current maturities of long-term debt and the long-term portion of $9.0 million is recognized in long-term finance obligation on the Company's consolidated balance sheets as of April 30, 2024. The net carrying amount of the financial liability and remaining assets will be zero at the end of the lease term.

 

Revolving lines - foreign. The Company also has credit arrangements used by its Middle Eastern subsidiaries in the U.A.E., Egypt and Saudi Arabia as discussed further below.

 

United Arab Emirates

 

The Company has a revolving line for 8.0 million U.A.E. Dirhams (approximately $2.2 million at April 30, 2024) from a bank in the U.A.E. As of April 30, 2024 the facility has an interest rate of approximately 8.8%, and is set to expire in July 2024, with intentions to be subsequently renewed and extended thereafter. The Company had borrowed an aggregate of $0.2 million as of April 30, 2024 and January 31, 2024, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. The Company had unused borrowing availability of approximately $1.9 million as of  April 30, 2024 and January 31, 2024, respectively. 

 

The Company has a revolving line for 20.5 million U.A.E. Dirhams (approximately $5.6 million at April 30, 2024) from a bank in the U.A.E. As of April 30, 2024 the facility has an interest rate of approximately 8.7%, and is set to expire in August 2024, with intentions to be subsequently renewed and extended thereafter. The Company had borrowed an aggregate of $0.1 million as of April 30, 2024 and January 31, 2024, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. As of  April 30, 2024 and January 31, 2024, the Company had unused borrowing availability of approximately $1.6 million and $1.0 million, respectively.

 

Egypt

 

In June 2021, and as renewed or amended subsequently thereafter, the Company's Egyptian subsidiary entered into a credit arrangement with a bank in Egypt for a revolving line of 100.0 million Egyptian Pounds (approximately $2.1  million at April 30, 2024). This credit arrangement is in the form of project financing at rates competitive in Egypt. The line is secured by certain assets (such as accounts receivable) of the Company's Egyptian subsidiary. Among other covenants, the credit arrangement established a maximum leverage ratio allowable and restricted the Company's Egyptian subsidiary's ability to undertake any additional debt. As of April 30, 2024 the facility has an interest rate of approximately 9.5%  and expired in June 2022. This credit arrangement was subsequently renewed in August 2023 with substantially the same terms and conditions, except for the facility interest rate which increased to 20.8%, and expires in August 2024. This credit arrangement was subsequently renewed in November 2023 with substantially the same terms and conditions and expires in November 2024. As of  April 30, 2024, the Company had substantially nothing outstanding with respect to this credit arrangement, and approximately $1.4 million outstanding at  January 31, 2024, which is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. Further, as of  April 30, 2024 and  January 31, 2024, the Company had unused borrowing capacity of $2.1 million and $3.2 million, respectively. 
 
In December 2021, the Company entered into a credit arrangement for project financing with a bank in Egypt for 28.2 million Egyptian Pounds. As this project has progressed and the Company has made collections, the facility has decreased to a current amount of  2.1 million Egyptian Pounds (approximatel y $0.1  million at April 30, 2024). This credit arrangement is in the form of project financing at rates competitive in Egypt. The line is secured by the contract for a project being financed by the Company's Egyptian subsidiary. The facility has an interest rate of approximately 11.0%  and, as of  November 2022, is no longer available for borrowings by the Company. The facility will expire in connection with final customer balance collections and the completion of the project. The Company had approximately $0.1 million outstanding  as of April 30, 2024 and January 31, 2024, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets.

 

Saudi Arabia

 

In March 2022, the Company's Saudi Arabian subsidiary entered into a credit arrangement with a bank in Saudi Arabia for a revolving line of 37.0 million Saudi Riyals (approximately $9.9 million at  April 30, 2024). This credit arrangement is in the form of project financing at rates competitive in Saudi Arabia. The line is secured by certain assets (such as accounts receivable) of the Company's Saudi Arabian subsidiary. The facility was renewed in May 2024 with substantially the same terms and conditions and expires in May 2025. As of April 30, 2024, the facility has an interest rate of approximately 9.5%. The Company had borrowed an aggregate of $4.1 million and $3.2 million as of April 30, 2024 and January 31, 2024, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. The unused borrowing availability attributable to this credit arrangement at  April 30, 2024 and  January 31, 2024, was $5.4 million and $6.1 million, respectively. 

 

These credit arrangements are in the form of overdraft facilities and project financing at rates competitive in the countries in which the Company operates. The lines are secured by certain equipment, certain assets (such as accounts receivable and inventory), and a guarantee by the Company. Some credit arrangement covenants require a minimum tangible net worth to be maintained, including maintaining certain levels of intercompany subordinated debt. In addition, some of the revolving credit facilities restrict payment of dividends or undertaking of additional debt. The Company guarantees only a portion of the subsidiaries' debt, including foreign debt. The amount of foreign subsidiary debt guaranteed by the Company was approximately $0.3 million and $0.1 million at  April 30, 2024 and  January 31, 2024, respectively. 

 

The Company was in compliance with the covenants under the credit arrangements in the U.A.E., Egypt and Saudi Arabia as of April 30, 2024, with the exception of those arrangements that have expired or are set to expire and have not yet been renewed. Although certain of the arrangements have expired and the borrowings could be required to be repaid immediately by the banks, the Company is in regular communication with the respective banks throughout the renewal process and all of the arrangements have continued without interruption or penalty. On April 30, 2024, interest rates were based on (i) the Emirates Inter Bank Offered Rate plus 3.0% to 3.5% per annum for the U.A.E. credit arrangements, two of which have a minimum interest rate of 4.5% per annum; (ii) either the Central Bank of Egypt corporate loan rate plus 1.5% to 3.5% per annum or the stated interest rate in the agreements for the Egypt credit arrangements; and (iii) the Saudi Inter-Bank Offered Rate plus 3.5% for the Saudi Arabia credit arrangement. Based on these base rates, as of April 30, 2024, the Company's interest rates ranged from 8.7% to 20.8%, with a weighted average rate of 11.5%, and the Company had facility limits totaling $24.7 million under these credit arrangements. As of April 30, 2024$6.7 million of availability was used to support letters of credit to guarantee amounts committed for inventory purchases and for performance guarantees. Additionally, as of April 30, 2024, the Company had borrowed $8.4 million and had an additional $13.0 million of borrowing remaining available under the foreign revolving credit arrangements. The foreign revolving lines balances were included as a component of current maturities of long-term debt in the Company's consolidated balance sheets as of April 30, 2024 and January 31, 2024.

 

In June 2023, the Company assumed a promissory note of approximately $2.8 million in connection with the formation of the joint venture with Gulf Insulation Group (see Note 15). In accordance with the promissory note, all principal is due and payable on the maturity date of April 9, 2026, with the option to prepay, in whole or in part, at any time prior to the maturity date, without premium or penalty.

 

Mortgages. On July 28, 2016, the Company entered into a mortgage agreement secured by the Company's manufacturing facility located in Alberta, Canada that matures on December 23, 2042. As of April 30, 2024, the remaining balance on the mortgage in Canada is approximately CAD 6.00 million (approximately $4.4 million at April 30, 2024). The interest rate is variable, and was 9.1% at April 30, 2024. The principal balance is included as a component of long-term debt, less current maturities in the Company's consolidated balance sheets and is presented net of issuance costs of $0.1 million as of April 30, 2024 and January 31, 2024, respectively.

XML 28 R17.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 10 - Leases - USD ($)
$ in Thousands
3 Months Ended
Apr. 30, 2024
Jan. 31, 2024
Liabilities, Current [Abstract]    
Long-term Debt, Current Maturities, Excluding North American Revolving Line $ 6,099 $ 4,071
Assets [Abstract]    
Property, Plant and Equipment, Net 38,211 37,620
Liabilities, Noncurrent [Abstract]    
Liabilities, Noncurrent 25,173 25,991
Long-Term Debt, Excluding Current Maturities $ 4,069 $ 4,229
Notes to Financial Statements    
Lessee, Operating and Finance Leases [Text Block]

Note 10 - Leases

 

The Company accounts for its leases under ASC 842, Leases. Under this guidance, arrangements meeting the definition of a lease are classified as operating or financing leases, and are recorded on the consolidated balance sheets. Operating leases are included in operating lease right-of-use (“ROU”) assets, operating lease liabilities short-term, and operating lease liabilities long-term in the Company's consolidated balance sheets. Finance leases are included in property, plant and equipment, current maturities of long-term debt, and long-term debt less current maturities in the Company's consolidated balance sheets. 

 

ROU assets represent the Company's right to use an underlying asset for the lease term and lease liabilities represent the Company's obligation to make lease payments arising from the lease calculated by discounting fixed lease payments over the lease term at the rate implicit in the lease or the Company’s incremental borrowing rate.  Lease liabilities are increased by interest and reduced by payments each period, and the ROU asset is amortized over the lease term.  For operating leases, interest on the lease liability and the amortization of the ROU asset result in straight-line rent expense over the lease term.  For finance leases, interest on the lease liability and the amortization of the ROU asset results in front-loaded expense over the lease term.  Variable lease expenses are recorded when incurred. ROU assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.

 

As most of the Company's leases do not provide an implicit rate, the Company uses its incremental borrowing rate based on the information available at the commencement date in determining the present value of lease payments. The incremental borrowing rate is the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term and amount equal to the lease payments in a similar economic environment.

 

In calculating the ROU asset and lease liability, the Company elects to combine lease and non-lease components. Additionally, the Company excludes short-term leases having an initial term of 12 months or less in accordance with the new guidance as an accounting policy election, and recognizes rent expense on a straight-line basis over the lease term.

 

Operating Leases. In August 2020, the Company entered into a new lease in Abu Dhabi for land upon which the Company built a facility. The initial annual payments were approximately 1.2 million U.A.E. Dirhams (approximately $0.3 million at April 30, 2024), inclusive of rent, escalation clauses, and other common charges contained in the agreement. Rent payments previously deferred until August 2022 have commenced, and the lease expires in August 2050. 

 

In March and December 2022, the Company served Notices of Termination to its lessor for the Company's lease of land and buildings in Fujairah in the U.A.E. The Company served the Notices of Termination in connection with the Company's intended relocation to a different facility in Abu Dhabi. The Company vacated portions of the leased space in December 2022 and expects to vacate the remaining space in December 2024. The first Notice of Termination required that the Company pay an additional amount equal to three months' rent after that termination to enable the lessor to prepare the assets for lease by another party. As a result of the termination, the Company has recognized adjustments to the amounts recorded in the consolidated financial statements as of April 30, 2024. The termination resulted in decreases of $0.4 million, $6.0 million and $5.5 million to operating lease liability short-term, operating lease liability long-term and operating lease right-of-use asset, respectively, in the consolidated balance sheets as of April 30, 2024. The termination also resulted in a decrease in rent expense of $1.1 million in the consolidated statement of operations for the year ended January 31, 2023. There were no other adjustments in connection with these terminations for the year ended January 31, 2024, or during the three months ended April 30, 2024

 

At April 30, 2024, the Company had total operating lease liabilities of $6.9 million and operating ROU assets of $6.2 million, which are reflected in the consolidated balance sheets. At April 30, 2024, the Company also had total finance lease liabilities of $0.1 million included in current maturities of long-term debt, and total finance ROU assets of $0.4 million which were included in property plant and equipment, net of accumulated depreciation in the consolidated balance sheets.

 

Finance Leases. The Company has several significant operating lease agreements, with lease terms of one to thirty years, which consist of real estate, vehicles and office equipment leases. These leases do not require any contingent rental payments, impose any financial restrictions or contain any residual value guarantees.  Certain of the Company’s leases include renewal options and escalation clauses; renewal options have not been included in the calculation of the lease liabilities and ROU assets as the Company is not reasonably certain to exercise the options.  The Company does not have any arrangements where it acts as a lessor. 

 

At  April 30, 2024, the Company also had finance lease liabilities of $0.1 million included in current maturities of long-term debt and long-term debt less current maturities, and financial ROU assets of $0.4 million which were included in property plant and equipment, net of accumulated depreciation in the consolidated balance sheets. 

 

Supplemental balance sheet information related to leases is as follows: 

 

Operating and Finance leases:

 

April 30, 2024

  

January 31, 2024

 

Finance leases assets:

        

Property and Equipment - gross

 $949  $970 

Accumulated depreciation and amortization

  (562)  (536)

Property and Equipment - net

 $387  $434 
         

Finance lease liabilities:

        

Finance lease liability short-term

 $32  $113 

Finance lease liability long-term

  71   - 

Total finance lease liabilities

 $103  $113 
         

Operating lease assets:

        

Operating lease ROU assets

 $6,165  $6,467 
         

Operating lease liabilities:

        

Operating lease liability short-term

 $845  $914 

Operating lease liability long-term

  6,032   6,270 

Total operating lease liabilities

 $6,877  $7,184 

 

Total lease costs consist of the following: 

 

   

Three Months Ended April 30,

 

Lease costs

Consolidated Statements of Operations Classification

 

2024

  

2023

 

Finance Lease Costs

         

Amortization of ROU assets

Cost of sales

 $38  $53 

Interest on lease liabilities

Interest expense

  2   3 

Operating lease costs

Cost of sales, SG&A expenses

  455   456 

Short-term lease costs (1)

Cost of sales, SG&A expenses

  143   179 

Sub-lease income

SG&A expenses

  -   (20)

Total Lease costs

 $638  $671 

 

(1) Includes variable lease costs, which are not material.

 

Supplemental cash flow information related to leases is as follows:

 

  Three Months Ended April 30,
  

2024

  

2023

 

Cash paid for amounts included in the measurement of lease liabilities:

        

Financing cash outflows from finance leases

 $8  $83 

Operating cash outflows from finance leases

  2   3 

Operating cash outflows from operating leases

  454   468 
         

ROU assets obtained in exchange for new lease obligations:

        

Operating leases liabilities

 $-  $129 

 

Weighted-average lease terms and discount rates are as follows: 

 

  

April 30, 2024

 

Weighted-average remaining lease terms (in years):

    

Finance leases

  3.0 

Operating leases

  13.8 
     

Weighted-average discount rates:

    

Finance leases

  6.9%

Operating leases

  9.8%

 

Maturities of lease liabilities as of April 30, 2024, is as follows:

 

  

Operating Leases

  

Finance Leases

 

For the nine months ending January 31, 2024

 $1,416  $28 

For the year ended January 31, 2026

  1,714   38 

For the year ended January 31, 2027

  1,701   38 

For the year ended January 31, 2028

  1,656   9 

For the year ended January 31, 2029

  1,286   - 

For the year ended January 31, 2030

  499   - 

Thereafter

  6,982   - 

Total lease payments

 $15,254  $113 

Less: amount representing interest

  (8,377)  (10)

Total lease liabilities at April 30, 2024

 $6,877  $103 

 

Rent expense on operating leases, which is recorded on straight-line basis, was $0.6 million for the three months ended  April 30, 2024 and 2023, respectively.

 
XML 29 R18.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 11 - Restricted Cash
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Cash and Cash Equivalents Disclosure [Text Block]

Note 11 - Restricted cash

 

Restricted cash held by foreign subsidiaries is related to fixed deposits that also serve as security deposits and guarantees: 
 
  

April 30, 2024

  

January 31, 2024

 

Cash and cash equivalents

 $7,674  $5,845 

Restricted cash

  1,390   1,395 

Cash, cash equivalents and restricted cash shown in the statement of cash flows

 $9,064  $7,240 

 

 

XML 30 R19.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 12 - Fair Value
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Fair Value Disclosures [Text Block]

Note 12 - Fair value

 

The carrying values of cash and cash equivalents, accounts receivable and accounts payable are considered reasonable estimates of fair value due to their short-term nature. The carrying amount of the Company's short-term debt, revolving lines of credit and long-term debt approximate fair value because the majority of the amounts outstanding accrue interest at variable market rates.

XML 31 R20.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 13 - Recent Accounting Pronouncements
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Accounting Standards Update and Change in Accounting Principle [Text Block]

Note 13 - Recent accounting pronouncements

 

The Company evaluated recent accounting pronouncements and does not expect any to have a material impact on its consolidated financial statements or related disclosures.

XML 32 R21.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 14 - Treasury Stock
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Treasury Stock [Text Block]

Note 14 - Treasury stock

 

The repurchase program approved on October 4, 2021 authorized the Company to use up to $3.0 million for the purchase of its outstanding shares of common stock. Stock repurchases were permitted to be executed through open market or privately negotiated transactions, depending upon current market conditions and other factors. On December 7, 2022 the Board of Directors authorized the use of $1.0 million remaining under the share repurchase program previously approved on October 4, 2021 that expired on October 3, 2022. During the twelve months ended  January 31, 2024, the Company used the remaining $1.0 million authorized to repurchase its outstanding shares of common stock. Accordingly, there was no repurchase activity with respect to the Company's shares of common stock during the three months ended  April 30, 2024.

XML 33 R22.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 15 - Noncontrolling Interests
3 Months Ended
Apr. 30, 2024
Notes to Financial Statements  
Noncontrolling Interest Disclosure [Text Block]

Note 15 - Noncontrolling interest

 

On June 1, 2023, the Company closed on its formation of a joint venture ("the JV", and the agreement governing the JV, "the JV Agreement") with Gulf Insulation Group ("GIG"), a leading provider of pre-insulated piping systems and pipe fabrication, in which the Company acquired a 60% controlling financial interest and contributed assets consisting of a building and equipment. The JV is a limited liability company named Perma Pipe Gulf Arabia Industry and is a closed joint stock company established under the laws of the Kingdom of Saudi Arabia. The JV's capital is comprised of ordinary shares with 60% owned by the Company and remaining 40% owned by GIG. The Company expects this collaborative business arrangement to result in expanding its market presence in Saudi Arabia, Kuwait, and Bahrain. The primary business activities of the JV include the manufacture and sale of the pre-insulated piping systems and pipe coating services. The other party to this business arrangement acquired a 40% non-controlling interest by contributing assets to the JV of approximately $6.8 million in fair value, mainly consisting of an idle building and equipment. The fair value of the net assets contributed was determined through the use of a third-party appraiser using the indirect cost method.

 

Pursuant to the applicable guidance in ASC 805, Business Combinations and Noncontrolling Interests, the Company determined that the transaction did not meet the necessary conditions to be considered a business as the set of assets acquired did not contain an organized workforce and therefore was recorded as an asset acquisition. The assets transferred by the Company to the JV were recorded at historical cost, and no gain was recognized as a result of this exchange since the Company has a controlling interest in the JV. The Company’s measurement of the acquired assets is comprised of the fair value of the contributed net assets given up by the Company and the fair value of the non-controlling interest excluding the contributed assets. The non-controlling interest attributable to the other party was recorded as of the investment date and was measured as part of the carrying amount of the ownership interest in the net assets given up by the Company plus the fair value of the non-controlling interest excluding the contributed assets. No gain or loss was recognized as a result of this exchange. The Company also assumed a promissory note payable to GIG issued as part of the formation of the JV in the principal amount of $2.8 million. The principal amount is presented within the Long-term debt, less current maturities caption in the Company's consolidated balance sheets. The Company also has a promissory note due from the JV that was issued as part of the formation of the JV in the amount of approximately $4.2 million and eliminates in consolidation.

 

The Company has a 60% controlling financial interest in the JV which is not considered a wholly owned subsidiary. Accordingly, there remains a minority portion of the equity interest that is owned by a third party, GIG. Pursuant to the applicable guidance contained in ASC 810, Consolidations, the balance sheets and operating activities of this investment are included in the Company's consolidated financial statements. The carrying amount of the assets and liabilities of the JV that are consolidated by the Company totaled $26.3 million and $17.7 million, respectively, as of  April 30, 2024.

 

The Company adjusts net income in the consolidated statements of operations to exclude the proportionate share of results that is attributable to the non-controlling interest. Additionally, the Company presents the proportionate share that is attributable to the redeemable non-controlling interest as temporary equity within the consolidated balance sheets. This mezzanine presentation is the result of the non-controlling interest being subject to a put option that is not solely within the Company's control and in connection with the equity shares of the business arrangement that is redeemable at any time after five years following the date of formation. The redemption amount per the JV Agreement is at fair value of the non-controlling interest which represents the fair value of ordinary shares of the JV that is owned by GIG. Further, neither the call option or put option contained in the JV Agreement met the definition of a derivative as a result of not containing a net settlement provision and the shares not being readily convertible to cash, thereby being considered embedded with respect to non-controlling interest and not a freestanding instrument.

 

As a result of the non-controlling interest being subject to redemption rights that are not entirely within the Company's control, it was concluded that the necessary conditions were met to be accounted for in accordance with ASC 480, Distinguishing Liabilities from Equity. Pursuant to this accounting standard, the Company determined that the only criteria for the security to become redeemable is the passage of time and, therefore, is considered probable of redemption. The Company made a policy election to measure changes in the non-controlling interest immediately as they occur and adjust the carrying amount of non-controlling interest equal to its redemption amount as the non-controlling interest has no stated fixed price or fixed date. As such, at each subsequent balance sheet date following the formation of the JV, the Company must determine whether further adjustment is required to increase the carrying value of the redeemable non-controlling interest. If the Company determines that the fair value of the redeemable non-controlling interest exceeds its carrying value, an adjustment is made to reflect this change. However, if the value is determined to be less than its carrying value, such adjustment is limited to its original carrying value at the formation of the business arrangement. Additionally, adjustments made to reflect the change in the value of the redeemable non-controlling interest are offset against permanent equity within the Company's consolidated balance sheets.

 

Net income attributable to GIG was $0.3 million and $0.0 million for the three months ended  April 30, 2024 and 2023, respectively. The proportionate share of net income was accounted for as a reduction in deriving net income attributable to common stock in the Company's consolidated statements of operations.

 

The Company is the ultimate parent of the JV through its 60% controlling financial interest and as part of the JV Agreement majority control of the operational activities of the JV and no joint control exists. The JV Agreement has no veto or kickout rights and board voting is proportional to the ownership interest. Certain activities do include a two-thirds majority affirmative vote of shareholders of the JV and include acquiring another company, establishing new subsidiaries, entering another partnership or joint venture, engaging in any merger or materially changing the business of the JV. These are considered protective rights. The 60% equity ownership of the JV by the Company allows it to receive its proportionate share of losses and residual returns.

 

The non-controlling interest as measured at fair value was $7.0 million and $6.3 million, and was recorded within temporary equity at  April 30, 2024 and  January 31, 2024, respectively. The change in non-controlling interest consists of $0.3 million in current year net income attributable to non-controlling interest, and approximately $0.4 million as an adjustment in the carrying value of the redeemable non-controlling interest pertaining to the business arrangement. In addition, there were no dividends or any other form of distributions from non-controlling interest for the period ended  April 30, 2024 and  January 31, 2024, respectively. 

 

XML 34 R23.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Insider Trading Arrangements
3 Months Ended
Apr. 30, 2024
Insider Trading Arr Line Items  
Material Terms of Trading Arrangement [Text Block]

PART II OTHER INFORMATION

 

 

Rule 10b5-1 Arrangement Adopted [Flag] false
Non-Rule 10b5-1 Arrangement Adopted [Flag] false
Rule 10b5-1 Arrangement Terminated [Flag] false
Non-Rule 10b5-1 Arrangement Terminated [Flag] false
XML 35 R24.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Significant Accounting Policies (Policies)
3 Months Ended
Apr. 30, 2024
Accounting Policies [Abstract]  
New Accounting Pronouncements, Policy [Policy Text Block]

Significant New Accounting Policies

 

Refer to the Company's Annual Report on Form 10-K for the year ended January 31, 2024 as filed with the SEC on April 26, 2024 for discussion of the Company's significant accounting policies.

Subsequent Events, Policy [Policy Text Block]

Subsequent Events

 

The Company has evaluated subsequent events through June 13, 2024, the date the financial statements were issued. Any material subsequent events that occurred during this time have been properly recognized and/or disclosed in these consolidated financial statements.

XML 36 R25.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 4 - Revenue Recognition (Tables)
3 Months Ended
Apr. 30, 2024
Notes Tables  
Disaggregation of Revenue [Table Text Block]
  

Three Months Ended April 30,

 
  

2024

  

2023

 
  

Sales

  

% of Total

  

Sales

  

% of Total

 

Products

 $3,253   9% $2,842   9%
                 

Specialty Piping Systems and Coating

                

Revenue recognized under input method

  10,140   30%  10,338   35%

Revenue recognized under output method

  20,928   61%  16,477   56%

Total

 $34,321   100% $29,657   100%
Schedule of Assumptions for Long-Duration Contracts by Product and Guarantee [Table Text Block]
  

April 30, 2024

  

January 31, 2024

 

Costs incurred on uncompleted contracts

 $15,980  $21,912 

Estimated earnings

  10,441   11,270 

Earned revenue

  26,421   33,182 

Less billings to date

  25,010   30,580 

Costs in excess of billings, net

 $1,411  $2,602 

Balance sheet classification

        

Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts

 $2,302  $3,097 

Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts

  (891)  (495)

Costs in excess of billings, net

 $1,411  $2,602 
XML 37 R26.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 6 - Impairment of Long-lived Assets (Tables)
3 Months Ended
Apr. 30, 2024
Notes Tables  
Schedule of Goodwill [Table Text Block]
  

January 31, 2024

  

Foreign exchange change effect

  

April 30, 2024

 

Goodwill

 $2,222  $(50) $2,172 
XML 38 R27.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 7 - Stock-based Compensation (Tables)
3 Months Ended
Apr. 30, 2024
Notes Tables  
Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]
  

Three Months Ended April 30,

 
  

2024

  

2023

 

Restricted stock-based compensation expense

 $228  $229 
Share-Based Payment Arrangement, Option, Activity [Table Text Block]
  

Options

  

Weighted Average Exercise Price (Per share)

  

Weighted Average Remaining Contractual Term (In years)

  

Aggregate Intrinsic Value

 

Outstanding at January 31, 2024

  22  $11.15   0.7  $6 

Exercised

  (1)  6.85   -   2 

Expired or forfeited

  -   11.39   -   - 

Outstanding and exercisable at April 30, 2024

  21  $11.39   0.4  $7 
Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]
  

Restricted Shares

  

Weighted Average Price (Per share)

  

Aggregate Intrinsic Value

 

Outstanding at January 31, 2024

  223  $9.33  $2,079 

Granted

  -   -     

Vested and issued

  -   -     

Forfeited or retired for taxes

  -   -     

Outstanding at April 30, 2024

  223  $9.33  $2,079 
XML 39 R28.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 8 - Earnings Per Share (Tables)
3 Months Ended
Apr. 30, 2024
Notes Tables  
Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]
  

Three Months Ended April 30,

 
  

2024

  

2023

 

Basic weighted average common shares outstanding at April 30, 2024

  7,906   8,004 

Dilutive effect of equity compensation plans

  150   - 

Weighted average common shares outstanding assuming full dilution

  8,056   8,004 
         

Stock options and restricted stock not included in the computation of diluted earnings per share of common stock because the option exercise prices or grant date prices exceeded the average market prices of the common shares

  32   35 

Stock options and restricted stock with exercise prices or grant date prices below the average market prices

  150   210 
         

Net income (loss) attributable to common stock

 $1,443  $(1,123)
         

Earnings per share attributable to common stock

        

Basic

 $0.18  $(0.14)

Diluted

 $0.18  $(0.14)
XML 40 R29.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 10 - Leases (Tables)
3 Months Ended
Apr. 30, 2024
Notes Tables  
Supplemental Balance Sheet Information Related to Leases [Table Text Block]

Operating and Finance leases:

 

April 30, 2024

  

January 31, 2024

 

Finance leases assets:

        

Property and Equipment - gross

 $949  $970 

Accumulated depreciation and amortization

  (562)  (536)

Property and Equipment - net

 $387  $434 
         

Finance lease liabilities:

        

Finance lease liability short-term

 $32  $113 

Finance lease liability long-term

  71   - 

Total finance lease liabilities

 $103  $113 
         

Operating lease assets:

        

Operating lease ROU assets

 $6,165  $6,467 
         

Operating lease liabilities:

        

Operating lease liability short-term

 $845  $914 

Operating lease liability long-term

  6,032   6,270 

Total operating lease liabilities

 $6,877  $7,184 
Lease, Cost [Table Text Block]
   

Three Months Ended April 30,

 

Lease costs

Consolidated Statements of Operations Classification

 

2024

  

2023

 

Finance Lease Costs

         

Amortization of ROU assets

Cost of sales

 $38  $53 

Interest on lease liabilities

Interest expense

  2   3 

Operating lease costs

Cost of sales, SG&A expenses

  455   456 

Short-term lease costs (1)

Cost of sales, SG&A expenses

  143   179 

Sub-lease income

SG&A expenses

  -   (20)

Total Lease costs

 $638  $671 
Supplemental Cash Flow Information Related Leases [Table Text Block]
  Three Months Ended April 30,
  

2024

  

2023

 

Cash paid for amounts included in the measurement of lease liabilities:

        

Financing cash outflows from finance leases

 $8  $83 

Operating cash outflows from finance leases

  2   3 

Operating cash outflows from operating leases

  454   468 
         

ROU assets obtained in exchange for new lease obligations:

        

Operating leases liabilities

 $-  $129 
Weighted-average Lease Terms and Discount Rates [Table Text Block]
  

April 30, 2024

 

Weighted-average remaining lease terms (in years):

    

Finance leases

  3.0 

Operating leases

  13.8 
     

Weighted-average discount rates:

    

Finance leases

  6.9%

Operating leases

  9.8%
Finance and Operating Lease, Liability, Maturity [Table Text Block]
  

Operating Leases

  

Finance Leases

 

For the nine months ending January 31, 2024

 $1,416  $28 

For the year ended January 31, 2026

  1,714   38 

For the year ended January 31, 2027

  1,701   38 

For the year ended January 31, 2028

  1,656   9 

For the year ended January 31, 2029

  1,286   - 

For the year ended January 31, 2030

  499   - 

Thereafter

  6,982   - 

Total lease payments

 $15,254  $113 

Less: amount representing interest

  (8,377)  (10)

Total lease liabilities at April 30, 2024

 $6,877  $103 
XML 41 R30.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 11 - Restricted Cash (Tables)
3 Months Ended
Apr. 30, 2024
Notes Tables  
Restrictions on Cash and Cash Equivalents [Table Text Block]
  

April 30, 2024

  

January 31, 2024

 

Cash and cash equivalents

 $7,674  $5,845 

Restricted cash

  1,390   1,395 

Cash, cash equivalents and restricted cash shown in the statement of cash flows

 $9,064  $7,240 
XML 42 R31.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 2 - Business Segment Reporting (Details Textual)
3 Months Ended
Apr. 30, 2024
Number of Reportable Segments 1
XML 43 R32.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 3 - Accounts Receivable (Details Textual)
$ in Thousands
3 Months Ended 100 Months Ended
Apr. 30, 2024
USD ($)
Apr. 30, 2023
USD ($)
Apr. 30, 2024
USD ($)
Dec. 31, 2015
USD ($)
Increase (Decrease) in Accounts Receivable $ (1,854) $ (1,862)    
Revenue Benchmark [Member] | Customer Concentration Risk [Member]        
Number of Major Customers 0 0    
Accounts Receivable [Member] | Customer Concentration Risk [Member]        
Number of Major Customers 1 1    
Accounts Receivable [Member] | Customer Concentration Risk [Member] | One Customer [Member]        
Concentration Risk, Percentage 11.00% 12.00%    
Financial Asset, Equal to or Greater than 90 Days Past Due [Member]        
Accounts Receivable, after Allowance for Credit Loss $ 1,800   $ 1,800 $ 41,900
Increase (Decrease) in Accounts Receivable (300) $ (600) (40,100)  
Accounts Receivable, Allowance for Credit Loss 0   0  
Financial Asset, Equal to or Greater than 90 Days Past Due [Member] | Other Noncurrent Assets [Member]        
Accounts Receivable, after Allowance for Credit Loss $ 1,000   $ 1,000  
XML 44 R33.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 4 - Revenue Recognition (Details Textual) - USD ($)
$ in Thousands
3 Months Ended
Apr. 30, 2024
Jan. 31, 2024
Costs Incurred for Uncompleted Contracts, Anticipated Collection Period (Year) 1 year  
Unbilled Receivables, Current $ 15,718 $ 16,597
Middle East [Member]    
Unbilled Receivables, Current $ 15,700 $ 16,600
XML 45 R34.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 4 - Revenue Recognition - Revenues by Revenue Class (Details) - USD ($)
$ in Thousands
3 Months Ended
Apr. 30, 2024
Apr. 30, 2023
Sales by product $ 34,321 $ 29,657
Sales by product, percent 100.00% 100.00%
Product [Member] | Transferred at Point in Time [Member]    
Sales by product $ 3,253 $ 2,842
Sales by product, percent 9.00% 9.00%
Specialty Piping Systems And Coating [Member] | Transferred at Point in Time Using Input Method [Member]    
Sales by product $ 10,140 $ 10,338
Sales by product, percent 30.00% 35.00%
Specialty Piping Systems And Coating [Member] | Transferred at Point in Time Using Output Method [Member]    
Sales by product $ 20,928 $ 16,477
Sales by product, percent 61.00% 56.00%
XML 46 R35.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 4 - Revenue Recognition - Reconciliation of the Cost in Excess of Billings (Details) - USD ($)
$ in Thousands
Apr. 30, 2024
Jan. 31, 2024
Costs incurred on uncompleted contracts $ 15,980 $ 21,912
Estimated earnings 10,441 11,270
Earned revenue 26,421 33,182
Less billings to date 25,010 30,580
Costs in excess of billings, net 1,411 2,602
Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts 2,302 3,097
Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts (891) (495)
Costs in excess of billings, net $ 1,411 $ 2,602
XML 47 R36.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 5 - Income Taxes (Details Textual) - USD ($)
$ in Millions
3 Months Ended
Apr. 30, 2024
Apr. 30, 2023
Effective Income Tax Rate Reconciliation, Percent 30.00% (208.00%)
Undistributed Earnings of Foreign Subsidiaries $ 0.7  
XML 48 R37.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 6 - Impairment of Long-lived Assets (Details Textual)
Dec. 31, 2016
Perma-Pipe Canada, Ltd [Member]  
Business Combination, Step Acquisition, Equity Interest in Acquiree, Including Subsequent Acquisition, Percentage 50.00%
XML 49 R38.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 6 - Impairment of Long-lived Assets - Goodwill (Details)
$ in Thousands
3 Months Ended
Apr. 30, 2024
USD ($)
Goodwill $ 2,222
Goodwill, foreign exchange change effect (50)
Goodwill $ 2,172
XML 50 R39.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 7 - Stock-based Compensation (Details Textual)
$ in Thousands
3 Months Ended
Apr. 30, 2024
USD ($)
shares
Common Stock, Capital Shares Reserved for Future Issuance (in shares) 245,150
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross (in shares) 0
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested, Number of Shares (in shares) 0
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Nonvested, Number of Shares (in shares) 0
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period (in shares) 0
Share-Based Payment Arrangement, Option [Member]  
Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount | $ $ 0
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period (in shares) (0)
Restricted Stock [Member]  
Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount | $ $ 800
Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year) 1 year 8 months 12 days
XML 51 R40.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details) - USD ($)
$ in Thousands
3 Months Ended
Apr. 30, 2024
Apr. 30, 2023
Restricted Stock [Member]    
Stock-based compensation expense $ 228 $ 229
XML 52 R41.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 7 - Stock-based Compensation - Stock Option Activity (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended 12 Months Ended
Apr. 30, 2024
Jan. 31, 2024
Expired or forfeited, options (in shares) 0  
Share-Based Payment Arrangement, Option [Member]    
Outstanding, options (in shares) 22  
Outstanding, weighted average exercise price (in dollars per share) $ 11.15  
Outstanding, weighted average remaining contractual term (Year) 4 months 24 days 8 months 12 days
Outstanding, aggregate intrinsic value $ 7 $ 6
Exercised, options (in shares) (1)  
Exercised, weighted average exercise price (in dollars per share) $ 6.85  
Exercised, aggregate intrinsic value $ 2  
Expired or forfeited, options (in shares) 0  
Expired or forfeited, weighted average exercise price (in dollars per share) $ 11.39  
Outstanding, options (in shares) 21 22
Outstanding, weighted average exercise price (in dollars per share) $ 11.39 $ 11.15
XML 53 R42.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 7 - Stock-based Compensation - Restricted Stock Activity (Details) - Restricted Stock [Member] - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended
Apr. 30, 2024
Jan. 31, 2024
Outstanding (in shares) 223  
Outstanding, weighted average price (in dollars per share) $ 9.33  
Outstanding, aggregate intrinsic value $ 2,079 $ 2,079
Granted (in shares) 0  
Granted, weighted average price (in dollars per share) $ 0  
Vested and issued (in shares) 0  
Vested and issued, weighted average price (in dollars per share) $ 0  
Forfeited or retired for taxes (in shares) 0  
Forfeited or retired for taxes (in dollars per share) $ 0  
Outstanding (in shares) 223  
Outstanding, weighted average price (in dollars per share) $ 9.33  
XML 54 R43.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 8 - Earnings Per Share (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended
Apr. 30, 2024
Apr. 30, 2023
Basic (in shares) 7,906 8,004
Dilutive effect of equity compensation plans (in shares) 150 0
Weighted average common shares outstanding assuming full dilution (in shares) 8,056 8,004
Stock options and restricted stock not included in the computation of diluted earnings per share of common stock because the option exercise prices or grant date prices exceeded the average market prices of the common shares (in shares) 32 35
Stock options and restricted stock with exercise prices or grant date prices below the average market prices (in shares) 150 210
Net income (loss) attributable to common stock $ 1,443 $ (1,123)
Basic (in dollars per share) $ 0.18 $ (0.14)
Diluted (in dollars per share) $ 0.18 $ (0.14)
XML 55 R44.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 9 - Debt (Details Textual)
$ in Thousands, د.إ in Millions, ج.م. in Millions, $ in Millions
3 Months Ended
Sep. 17, 2021
USD ($)
Apr. 14, 2021
USD ($)
Sep. 20, 2018
USD ($)
Jul. 28, 2016
Apr. 30, 2024
USD ($)
Apr. 30, 2024
AED (د.إ)
Apr. 30, 2024
EGP (ج.م.)
Apr. 30, 2024
CAD ($)
Jan. 31, 2024
USD ($)
Aug. 31, 2023
Nov. 30, 2022
USD ($)
Mar. 31, 2022
USD ($)
Dec. 31, 2021
EGP (ج.م.)
Jun. 30, 2021
EGP (ج.م.)
Debt and Lease Obligation         $ 27,300       $ 25,700          
Line of Credit, Current         5,312       5,519          
Long-Term Debt and Lease Obligation, Noncurrent         8,982       9,035          
Long-term Debt, Current Maturities, Excluding North American Revolving Line         6,099       4,071          
Land and Buildings in Lebanon, Tennessee [Member]                            
Lessee, Finance Lease, Term of Contract (Year)   15 years                        
Sale Leaseback Transaction, Annual Rental Payments, Amount   $ 800                        
Lessee, Finance Lease, Annual Rent Increase, Percentage   2.00%                        
Lessee, Finance Lease, Number of Options to Extend   4                        
Lessee, Finance Lease, Renewal Term (Year)   5 years                        
Lessee, Finance Lease, Discount Rate   8.00%                        
Long-Term Debt and Lease Obligation, Current                 200          
Long-Term Debt and Lease Obligation, Noncurrent                 9,000          
Mortgage Note Secured by Tennessee Manufacturing Facility [Member]                            
Repayments of Secured Debt   $ 900                        
Revolving Credit Lines Used by Middle Eastern Subsidiaries, 1 [Member] | Foreign Revolving Lines [Member]                            
Long-term Debt, Current Maturities, Excluding North American Revolving Line         200       200          
Promissory Note [Member]                            
Debt Instrument, Face Amount         2,800                  
Canadian Mortgage Note [Member]                            
Debt Instrument, Maturity Date       Dec. 23, 2042                    
Secured Debt         $ 4,400     $ 6            
Debt Instrument, Interest Rate, Effective Percentage         9.10% 9.10% 9.10% 9.10%            
Debt Issuance Costs, Net         $ 100       100          
Land and Buildings in Lebanon, Tennessee [Member]                            
Disposal Group, Including Discontinued Operation, Consideration   10,400                        
Proceeds from Sale of Property, Plant, and Equipment, Total   $ 9,100                        
Minimum [Member]                            
Lessee, Finance Lease, Term of Contract (Year)         1 year 1 year 1 year 1 year            
Maximum [Member]                            
Lessee, Finance Lease, Term of Contract (Year)         30 years 30 years 30 years 30 years            
Revolving Lines, North America [Member]                            
Debt Instrument, Term (Year) 5 years   3 years                      
Line of Credit Facility, Maximum Borrowing Capacity $ 18,000   $ 18,000                      
Line of Credit Facility, Unused Capacity, Commitment Fee Percentage 0.25%                          
Line of Credit, Current         $ 5,300       5,500          
Line of Credit Facility, Interest Rate at Period End         10.00% 10.00% 10.00% 10.00%            
Line of Credit Facility, Current Borrowing Capacity         $ 5,000       4,000          
Revolving Lines, North America [Member] | North American Loan Parties [Member]                            
Line of Credit Facility, Capital Expenditures Restrictions $ 5,000                          
Line of Credit Facility, Common Stock Repurchase Restrictions $ 3,000                          
Line of Credit Facility, Fixed Charge Coverage Ratio Required 1.1                          
Line of Credit Facility, Covenant Terms, EBITDA Ratio, Minimum Undrawn Availability for Five Consecutive Days $ 3,000                          
Line of Credit Facility, Covenant Terms, EBITDA Ratio, Minimum Undrawn Availability $ 2,000                          
Line of Credit Facility, Default, Additional Interest Rate 2.00%                          
Revolving Lines, North America [Member] | Base Rate [Member] | Minimum [Member]                            
Debt Instrument, Basis Spread on Variable Rate 1.00%                          
Revolving Lines, North America [Member] | Base Rate [Member] | Maximum [Member]                            
Debt Instrument, Basis Spread on Variable Rate 1.50%                          
Revolving Lines, North America [Member] | Secured Overnight Financing Rate (SOFR) [Member] | Minimum [Member]                            
Debt Instrument, Basis Spread on Variable Rate 2.00%                          
Revolving Lines, North America [Member] | Secured Overnight Financing Rate (SOFR) [Member] | Minimum [Member] | Additional SOFR Adjustment Based on Interest Period [Member]                            
Debt Instrument, Basis Spread on Variable Rate 0.10%                          
Revolving Lines, North America [Member] | Secured Overnight Financing Rate (SOFR) [Member] | Maximum [Member]                            
Debt Instrument, Basis Spread on Variable Rate 2.50%                          
Revolving Lines, North America [Member] | Secured Overnight Financing Rate (SOFR) [Member] | Maximum [Member] | Additional SOFR Adjustment Based on Interest Period [Member]                            
Debt Instrument, Basis Spread on Variable Rate 0.25%                          
Foreign Revolving Lines [Member]                            
Line of Credit Facility, Maximum Borrowing Capacity         24,700                  
Line of Credit Facility, Remaining Borrowing Capacity         13,000                  
Line of Credit Facility, Guaranteed Amount         300       100          
Letters of Credit Outstanding, Amount         6,700                  
Proceeds from Issuance of Debt         8,400                  
Foreign Revolving Lines [Member] | Revolving Credit Lines Used by Middle Eastern Subsidiaries, 1 [Member]                            
Line of Credit Facility, Maximum Borrowing Capacity         $ 2,200 د.إ 8.0                
Line of Credit Facility, Interest Rate at Period End         8.80% 8.80% 8.80% 8.80%            
Line of Credit Facility, Remaining Borrowing Capacity         $ 1,900       1,900          
Foreign Revolving Lines [Member] | Revolving Credit Lines Used by Middle Eastern Subsidiaries, 2 [Member]                            
Line of Credit Facility, Maximum Borrowing Capacity         $ 5,600 د.إ 20.5                
Line of Credit Facility, Interest Rate at Period End         8.70% 8.70% 8.70% 8.70%            
Long-term Debt, Current Maturities, Excluding North American Revolving Line         $ 100                  
Line of Credit Facility, Remaining Borrowing Capacity         $ 1,600       1,000          
Foreign Revolving Lines [Member] | Revolving Credit Lines Used by Egypt Subsidiaries [Member]                            
Line of Credit Facility, Interest Rate at Period End         9.50% 9.50% 9.50% 9.50%   20.80%        
Long-term Debt, Current Maturities, Excluding North American Revolving Line                 1,400          
Line of Credit Facility, Remaining Borrowing Capacity         $ 2,100       3,200         ج.م. 100.0
Foreign Revolving Lines [Member] | Revolving Credit Lines Used by Egypt Subsidiaries 2 [Member]                            
Line of Credit Facility, Maximum Borrowing Capacity         $ 100   ج.م. 2.1       $ 0   ج.م. 28.2  
Line of Credit Facility, Interest Rate at Period End         11.00% 11.00% 11.00% 11.00%            
Long-term Debt, Current Maturities, Excluding North American Revolving Line         $ 100       100          
Foreign Revolving Lines [Member] | Revolving Credit Lines Used by Saudi Arabian Subsidiary [Member]                            
Line of Credit Facility, Maximum Borrowing Capacity         $ 9,900             $ 37,000    
Line of Credit Facility, Interest Rate at Period End         9.50% 9.50% 9.50% 9.50%            
Long-term Debt, Current Maturities, Excluding North American Revolving Line         $ 4,100       3,200          
Foreign Revolving Lines [Member] | Renewal of Revolving Credit Lines Used by Saudi Arabian Subsidiary [Member]                            
Line of Credit Facility, Remaining Borrowing Capacity         $ 5,400       $ 6,100          
Foreign Revolving Lines [Member] | Minimum [Member]                            
Line of Credit Facility, Interest Rate at Period End         8.70% 8.70% 8.70% 8.70%            
Debt Instrument, Interest Rate, Stated Percentage         4.50% 4.50% 4.50% 4.50%            
Foreign Revolving Lines [Member] | Maximum [Member]                            
Line of Credit Facility, Interest Rate at Period End         20.80% 20.80% 20.80% 20.80%            
Foreign Revolving Lines [Member] | Weighted Average [Member]                            
Line of Credit Facility, Interest Rate at Period End         11.50% 11.50% 11.50% 11.50%            
Foreign Revolving Lines [Member] | EIBOR [Member] | Minimum [Member]                            
Debt Instrument, Basis Spread on Variable Rate         3.00%                  
Foreign Revolving Lines [Member] | EIBOR [Member] | Maximum [Member]                            
Debt Instrument, Basis Spread on Variable Rate         3.50%                  
Foreign Revolving Lines [Member] | Central Bank of Eqypt (CBE) Rate [Member] | Minimum [Member]                            
Debt Instrument, Basis Spread on Variable Rate         1.50%                  
Foreign Revolving Lines [Member] | Central Bank of Eqypt (CBE) Rate [Member] | Maximum [Member]                            
Debt Instrument, Basis Spread on Variable Rate         3.50%                  
Foreign Revolving Lines [Member] | SIBOR [Member]                            
Debt Instrument, Basis Spread on Variable Rate         3.50%                  
XML 56 R45.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 10 - Leases (Details Textual)
$ in Thousands, د.إ in Millions
3 Months Ended 12 Months Ended
Apr. 30, 2024
USD ($)
Apr. 30, 2023
USD ($)
Jan. 31, 2024
AED (د.إ)
Jan. 31, 2024
USD ($)
Liabilities, Current [Abstract]        
Long-term Debt, Current Maturities, Excluding North American Revolving Line $ 6,099     $ 4,071
Assets [Abstract]        
Property, Plant and Equipment, Net 38,211     37,620
Liabilities, Noncurrent [Abstract]        
Liabilities, Noncurrent 25,173     25,991
Long-Term Debt, Excluding Current Maturities 4,069     4,229
Operating Lease, Liability 6,877     7,184
Operating Lease, Right-of-Use Asset 6,165     6,467
Finance Lease, Liability 103     $ 113
Finance Lease, Right-of-Use Asset, after Accumulated Amortization 400      
Operating Lease, Expense $ 600 $ 600    
Finance Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration] Long-term Debt, Current Maturities, Excluding North American Revolving Line      
Finance Lease, Right-of-Use Asset, Statement of Financial Position [Extensible Enumeration] Property, Plant and Equipment, Net      
Finance Lease, Liability, Noncurrent, Statement of Financial Position [Extensible Enumeration] Long-Term Debt, Excluding Current Maturities      
Minimum [Member]        
Lessee, Finance Lease, Term of Contract (Year) 1 year      
Maximum [Member]        
Lessee, Finance Lease, Term of Contract (Year) 30 years      
Abu Dhabi Land Lease [Member]        
Lessee, Operating Lease, Annual Payment $ 300   د.إ 1.2  
Decrease in Operating Lease Liability, Current 400      
Decrease in Operating Lease Liability, Noncurrent 6,000      
Decrease in Operating Lease Right-of-use Asset 5,500      
Decrease in Operating Lease Expense $ 1,100      
XML 57 R46.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details) - USD ($)
$ in Thousands
Apr. 30, 2024
Jan. 31, 2024
Property and Equipment - net $ 38,211 $ 37,620
Finance lease liability short-term 32 113
Finance lease liability long-term 71 0
Total finance lease liabilities 103 113
Operating Lease, Right-of-Use Asset 6,165 6,467
Operating lease liability short-term 845 914
Operating lease liability long-term 6,032 6,270
Total operating lease liabilities 6,877 7,184
Finance Leases Assets [Member]    
Property and Equipment - gross 949 970
Accumulated depreciation and amortization (562) (536)
Property and Equipment - net $ 387 $ 434
XML 58 R47.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 10 - Leases - Lease Costs (Details) - USD ($)
$ in Thousands
3 Months Ended
Apr. 30, 2024
Apr. 30, 2023
Amortization of ROU assets $ 38 $ 53
Interest on lease liabilities 2 3
Operating lease costs 455 456
Short-term lease costs (1) [1] 143 179
Sub-lease income 0 (20)
Total Lease costs $ 638 $ 671
[1] Includes variable lease costs, which are not material.
XML 59 R48.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details) - USD ($)
$ in Thousands
3 Months Ended
Apr. 30, 2024
Apr. 30, 2023
Financing cash outflows from finance leases $ 8 $ 83
Operating cash outflows from finance leases 2 3
Operating cash outflows from operating leases 454 468
Operating leases liabilities $ 0 $ 129
XML 60 R49.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details)
Apr. 30, 2024
Finance leases (Year) 3 years
Operating leases (Year) 13 years 9 months 18 days
Finance leases 6.90%
Operating leases 9.80%
XML 61 R50.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 10 - Leases - Maturities of Lease Liabilities (Details) - USD ($)
$ in Thousands
Apr. 30, 2024
Jan. 31, 2024
For the nine months ending January 31, 2024, operating leases $ 1,416  
For the nine months ending January 31, 2024, finance leases 28  
For the year ended January 31, 2026, operating leases 1,714  
For the year ended January 31, 2026, finance leases 38  
For the year ended January 31, 2027, operating leases 1,701  
For the year ended January 31, 2027, finance leases 38  
For the year ended January 31, 2028, operating leases 1,656  
For the year ended January 31, 2028, finance leases 9  
For the year ended January 31, 2029, operating leases 1,286  
For the year ended January 31, 2029, finance leases 0  
For the year ended January 31, 2030, operating leases 499  
For the year ended January 31, 2030, finance leases 0  
Thereafter, operating leases 6,982  
Thereafter, finance leases 0  
Total lease payments, operating leases 15,254  
Total lease payments, finance leases 113  
Less: amount representing interest, operating leases (8,377)  
Less: amount representing interest, finance leases (10)  
Total lease liabilities, operating leases 6,877 $ 7,184
Total lease liabilities, finance leases $ 103 $ 113
XML 62 R51.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details) - USD ($)
$ in Thousands
Apr. 30, 2024
Jan. 31, 2024
Cash and cash equivalents $ 7,674 $ 5,845
Restricted cash 1,390 1,395
Cash, cash equivalents and restricted cash shown in the statement of cash flows $ 9,064 $ 7,240
XML 63 R52.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 14 - Treasury Stock (Details Textual) - USD ($)
shares in Thousands, $ in Millions
3 Months Ended
Apr. 30, 2024
Jan. 31, 2024
Dec. 07, 2022
Oct. 04, 2021
Share Repurchase Program, Authorized, Amount     $ 1 $ 3
Stock Repurchase Program, Authorized Repurchase Amount Used   $ 1    
Stock Repurchased During Period, Shares (in shares) 0      
XML 64 R53.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Note 15 - Noncontrolling Interests (Details Textual) - USD ($)
$ in Thousands
3 Months Ended
Apr. 30, 2024
Apr. 30, 2023
Jan. 31, 2024
Jun. 01, 2023
Assets $ 157,163   $ 155,711  
Net Income (Loss) Attributable to Noncontrolling Interest 347 $ 0    
Redeemable Noncontrolling Interest, Equity, Carrying Amount 7,033   6,266  
Gulf Insulation Group [Member]        
Net Income (Loss) Attributable to Noncontrolling Interest 300 $ 0    
Redeemable Noncontrolling Interest, Equity, Carrying Amount 7,000   $ 6,300  
Noncontrolling Interest, Increase from Business Combination 400      
Related Party [Member]        
Financing Receivable, after Allowance for Credit Loss       $ 4,200
Assets 26,300      
Liabilities $ 17,700      
Gulf Insulation Group [Member] | Related Party [Member]        
Notes Payable       $ 2,800
Joint Venture [Member]        
Subsidiary, Ownership Percentage, Parent       60.00%
Joint Venture [Member] | Gulf Insulation Group [Member]        
Subsidiary, Ownership Percentage, Parent       40.00%
Property, Plant, and Equipment, Fair Value Disclosure       $ 6,800
EXCEL 65 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( -Q#S5@'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 " #<0\U8?Y-5GN\ K @ $0 &1O8U!R;W!S+V-O&ULS9+/ M:L,P#(=?9?B>R(E'&2;-I:.G#@8K;.QF;+4UB_]@:R1]^R59FS*V!]C1TL^? M/H$:':4."9]3B)C(8KX;7.>SU''-3D11 F1]0J=R.2;\V#R$Y!2-SW2$J/2' M.B+4G*_ (2FC2,$$+.)"9&UCM-0)%85TP1N]X.-GZF:8T8 =.O24H2HK8.TT M,9Z'KH$;8((1)I>_"V@6XES]$SMW@%V20[9+JN_[LA=S;MRA@K>GW%W$W;!V(/] MQ\97P;:!7W?1?@%02P,$% @ W$/-6)E&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" #<0\U8X5970N4% ''P & 'AL+W=OU7NE8>B2-UE(]IBLA-'F.PC@];ZVT3MYU.JFW$A%/ M3V4B8KBSD"KB&D[5LI,F2G _#XK"#G.<7B?B0=P:C_)K,S4>R4R'02QFBJ19 M%''U'G24Q%&!HE*,>_ M&]%6^4X3N'N\5;_.S8.9!YZ*J0S_"'R].F\-6L07"YZ%^HM__'E3$;L!3DT VP2P-P&T[@WN)L#-C18E MRVU=7TLN@5329Q#ZYBG6@ M7\AM7*2'J>8V25=@E&51 MV;:H%PP5G"3JE+C."6$.ZUK*,\7#?\GB4T)=6_BKXKAES;FYGKNOYG:KZ^\/ M\!2YU2)*_[%562'9M4N:3_9=FG!/G+?@FTR%>A*M\0_?T9[SL\WO_R3VRGVW M=-_%U,>;5)E"!2@>0AWXXIG\*EYLIG$E!_Z&M$L9LWE$8QMZ/"L]GAWB\8M8 M!BFXA*:^XY&P.<1U9@+2HST+$LB,6 L5Y[D"M78C0S^(E^D)7/=.;?91X8;V M>Z7]'EKL"62WGV?X=M,!7 MP97IH ATGM:6Q=7:;8>V76HSB08V-#DH30[08I5=T\8E)& @?7(-EZT=.:[V MV>H/C6GH;UCZ&WZ3O[P5:]WA6G6#"1K5T!]UJE'9.'=2Y[ MI$K@J24>7*"IUXJ *(H8.UD*HV,:Y 2$M"L@%.0N MBQZ$LIK;!SDP3K SU[$:/ ;DT(IRZ$&8 P@B%;1=#BG;DQA7O[RR6CX&V-"*;"B.)AO+]_R9W/J0P,$B\ J 1UH8EW1[;7?(V+ W MM/H]!O/0"GHHSBD;OQ/?!W7 S:( W*T^CP%&M"(CBN/, M6Y_E9SQ3\BF(/7M3XYKW?UJ-'H.06$5(#">QWW<' M/>NZPC&@B570Q'#0R5-UH@2O-X8+#+I]JZUC@!*K0(GA=/-!YE.3E8RQ<76/ MR+#7:U/'L0ZK>&A3?Q4<,9QG[@,-Q" 7A+(?'WXB<^%E"EK2:A)7FLHH@J%I MKJ7W>$*^/W4H26#"\\3#3)!$J&*)SEH%QT G5J$3PZD'L-"L;Y#Y2_0@0ZMS M7& VN[VQ^CH&,;&*F!C.--NV)%?/WHK'2U&[,+1'Z&XROYQ8)VIX8%.'%2"Q M@P!INUI20'W>E#">V*?9>Q2_6M>0IWA44Y\5&+&#P"A?EBMV%,QDC6^-6WWB MBG4^CX$_K,(?=A#^F$D,$#T@P5(J>U>$Z]S)N,T]3X ,B/B%H-7O,3"(51C$ M#L*@><3#D%QD*=Q.[5F+Z]0M,N!A#>VY%?RX!\'/5234TGR5[T%!KX /HH3' MUG;=(U@[^<;CFAJMV,?%T67;CBL![8C9PV7J[1V#@=R*@5P<7[;=[*L!?IYO MN)%/F0:BC7W[/.,"5_[FK:1"[2Q7,UN_3^.!0_O# 1UUGG8M=G:V&DWVY3NP M*?',(D&QZUA>+7=Y)_G>9J=ZO-@B_LA-\J8D% L(=4[[\'95[+H6)UHF^<;E M@]1:1OGA2G!?*/, W%](J;O^/)@8MGN6%,H95TL%%J>^TX" MT;ATRE*'N&[H9#3)![-)>>]!S"9\I](D9P\"R5V64?'?+4OY83K @^.-[\EZ MHXH;SFRRI6OVR-33]D' E=-$B9.,Y3+A.1)L-1W>S5F:%I& X]\ZZ*!Y9N'8_7V,_GN9/"2S MH)+->?HSB=5F.A@-4,Q6=)>J[_SP)ZL3"HIX2Y[*\A,=:EMW@)8[J7A6.P-! MEN35-WVI"]%Q@#AF!U([D','O\?!JQW*RCD569G6'55T-A'\@$1A#=&*'V5M M2F_()LF+87Q4 OY-P$_-YCR7/$UBJEB,'A5\P1@IB?@*?=LR08M:2W3QE--= MG(#-)1JBI\<[=/'I$LD-%4RB)$<_-GPG:1[+S^C3R?7$40!9/,I9UD"W%1#I M ?+05YZKC41?\IC%I_X.)-=D2(X9WA)KP)NMN$*>^QD1E_@&GOG;W3T+CM<4 MW"OC^3WQ_H:E*6G*C*6I7,/2M5B ^YGG>P1/G'T76+J];)5[T'VJ-W+],S:#%1F-/#-;T+ %5K8_!)<2;05?)GE]9#5:R1?(_8"G56:2Q?:LBL:];7P#P7+(-T6PM!&-H1TE4A7Y[YDU_TBO//9' M9\.C&P5^Z)J'9]3PCJR\CR /KPW.2)\\Q O.X(Q&8S/2.RV N%:,>_S)<\86@F>'6%!$HR-W=4 /.R==PB# M513T0'94#+\"J1A,=W4LHA$/ZS/,/6\2)B-,>O!(BT>L>-_4A@ET4<-=@D06 M-35"$NWYPU"#U(VB/L96E[!=F.IQODBAUUZB!8,M(JM!D:(OYGE9QSSI]T%G MU=:\NM70"_L&O54L;)>L^P;..NRZ)$611F@P"D8]@*UL8;MN%5J?=,MJY#.H M5S36 '6K(<:D1UAQJU_8JA>SOYB4UZ@#2I42R6*GZ"*%TG*4\WRXA!V9X%4K M3>J59DPEU!N KTU>W:BGR^-6EK!=E[1":VG ?QF\-OEL1(^T317V_?,. M:["RC4(K4WADW4;\+-\V8 =.]]!@UZS!K7;8\/HE%6@NU-_(;A7!]^XO/BK: M:2E:4<1V5;RE,EFBB^28O'G-&/1P[(;GHZ5;C5RW9\='6D$D=D&\2])=,5:O M,!)=YT9N<,YHM.IE;/608.N$^D)%#K,%-LV@.R7DNU<$L2KN>V?51T4[K4&O9'7>Q.O M;F7B=3K'"1D3Z_*41<*$V>6J>N]N[C8G.3?E^<79_5M\/:_.8]HPU?'05RK6 M22Y1RE80TKV*8 &(ZL2ENE!\6QY:++A2/"M_;AB-F2@,X/\5Y^IX43R@.?>: M_0]02P,$% @ W$/-6/%I#/0, P O0@ !@ !X;"]W;W)K6U+Y2VTMJ!F+3!M&[PV4VN39AC M%]MMMW_/V4E#7]( $E\2O]P]?IZ[G"^#C9#/*@70Y"5G7 V=5.MEWW55G$). MU:58 L>=N9 YU3B5"ULD6JS8([&BSI J:@GY;W$F=NA9)D.7"5"4XDS(?.E=^? M](R]-?B6P4;MC(E1,A/BV4QNDJ'C&4+ (-8&@>)K#1-@S AC9\EIE,=:1QW MQUOT3U8[:IE1!1/!OF>)3H=.SR$)S.F*Z0>Q^0REGK;!BP53]DDVI:WGD'BE MM,A+9V209[QXTY0[/N[**Q2%VS5C8-&P*NEO"2A]XX$7A#5\)G\ MO7O80">L@AU:O.@$WA>LRJR,(S-QK M1 =&Q$*8&UR._^]X;N.M=WL=&+=\W M'-OO&[W@? MZM+QG\#VU+W&Y."M@#7/L>BD!!Z_$BTI5XP6MTWR VO1E$9=# K@]EXV M(K]]D+,:JRCLUJ>L4Y'N-)*>_%NR.D<4PNXAS6.;EM_N>/4\NQ7/;B//6U"J M3VK94JUE-EMI.F- M"!<\%:,UX 4#%$6:*8!LZUK[Y/NL:"H>R#HV.:$F%XE MIM%M'C_7R>@=E7/0.U!Q;%*7%G>G$^0@%[9!*CQ_ MQ75Q;5:K50^^LJWG8'V,O;EHI;]ABL9^1^4BXXHPF".D=]G%R,JB6183+9:V MW\R$QNYEARG^7X T!K@_%T)O)^: ZH]E] M02P,$% @ W$/-6(HZU [Q M" ;BH !@ !X;"]W;W)KZG[X*4!9%XD)*J M>1'K80']L5SL;Q?DQ1/CW]H5I0(]UU737LY60JS?+A9MOJ(U:=^P-6W@FP?& M:R+@+7]$O[VC% MGBYG_NSU@]OR<27D!XOEQ9H\TCLJOJYO.+Q;[&8IRIHV;S*?WL= M!7) ;_'/DCZU>Z^17,H]8]_DFX_%Y)6_;T-[I=4"3GRUG5 M]O^CIZVM-T-YUPI6;P>#@KILAK_D>>N(O0%^:!F MP/PL0."[8#>I%O!;P;!&"+@*LU?X,";XZPAT/#\&OW\+^3!H;[IN$+<,7.'WCG M#]S/%]C\L5TR:5MP@6DYP_C0/%[NNK?MFN3T<@;;JJ5\0V?+/__)C[U?3(L[ MT62CI0:[I0:NV9?7I%TAN&@HER_H'UVY(16LW;CJ8:JXGTJFALTRB1-P^&9_ M-;I1E(;1SFBD,MRI#)TJ;VDK>)G+\)0Z3=J&":*]G_6#S)MH,QI9M$4[;9%3 MVQ=."@J9*&<=N VR6D[!A_<5G:.*MBTB%63)?D=!OD4YI[![4,4@M%K$'M!9 M'(:(" 1;H*QV>Z"_)&=QELFO(+P[R*Z6"!^6'VDK"T.=1Z*4392:K*/3-RI*=LL2I[(;3-2D+1)\!>-+? MTJM,K"A!6V*%EW0.$$MZ4S6,KF4"?<[D'(,[EDOI/ =M= MD[-Z7=%^/[-&<."X\1IDFF8<>'BR,-TH\&SK\CV%1,^]K9D@U1%ALIUF% %I MEOD3D4:S=.\BC67ND=MWHNH?K'D\%Y37+HG^*6EUJMG&"U9H]ITXA#T-U2L7 M+W-T W6*Z&/O5\#6&LI*,4>?J3"Z .M!DF)?NTH&LR3&GN4J*_I (?8+ M),BS*[9TI*9PK:<:=:LD\S.+1D5>WXW>#XP53Y!7C,)TUF$_F>8.DQ7\LPA3 M1/3=2/RM9TQUS-[4P1>$\;2F,ECA.+84+K["H^_FXY#CCI*IXTF,5I M%EB$*B#Z;B(.0AWRS B,I[0VVH&AI<[P%0;]S)V&2P* *P740'/TVC[\?G7? M]FS[MU&SDZS?G95/--NX7U*TQ =H.2Z"U^3%5JQ@'808TM4TDDQF48 MD805 M+[$33\NK/.==7W;4LB8DPS$", 0D-:OKLI7')D.U59.&/%*)/*BR?H,^-BA:YJ"DT=,M& MF77C*41B-R('DI-MUJA4FC?JU/$'U>.T$3-895Y@BUK%2.QFY+O7!FO4=N6N M!NU[6C&LHS/5NAR#46@[7\$*KMC=9'Z4&NF0F9TY3N\$_2S2]I^IJ4PM)7Z@ M"!A\3[]X(% "G6Y1%OK3LMEDEB2AI3P-% 2# TWC?K7RF37Y405+<-(V\E2S MC5V@@!JX@=KWS5]D-G\/V7R.?GW.JZZ0J>DU^W_:97^C,PRD].)IK)FL,+9L M]6#OS-;-4]7T/Y1-?[3([JORL2]FC&)U3J99.J6IP0KRDF7W!HJFP9&-Y*CD M.K1!#">U7C!--R8K[-NVAT)IX$;IJ/4])%0G999-VPZ#$>BTM.B!PFGPHSC= MU2I&R3HH8R_0HL%@A1-;FE0\#8[AJ:JE#KG7< H;^)I_36>UB2UR%5[K. MX[7J\,.1GVAB36;[!X9CM8J2@9N2D,?/>X*SO@Z ,@!$ _2-4G4&)EZ@*=6M M8AQ;[A:$BI2AFY1]+R-D[S(4)E(T"*9-;G&L>SXS*I").2>8:+QF1=S03=P[ MP?)O*U85?8$N;[.)%^-23\K84\TV7K1B;'BX:854W\JUS]'9&\^'ZHVC#:DZ M.D>D$U#TE_^!/!MY<\_SH D@(.,7E,X]/T70[LJ2N[]ETXE6P L9UN9;97)( M5_J'"KUG*Q+R#)&F8;N-DL3 M3:GA_-?S8DO3'N[= MD>)ZZ.;Z+14$/E(-D%&A@=5!I)4>)C/LI3:-BNFAF^E7>=[57=7W:=L[E5 V M<;J2#\UL:'_CV"A;Q_5YG,73&\ FLRB*+/ )%=;#8TZ2VV.SG,[K.(K"Z6F4 MT2RQU7>AXGIX%-<5S?OP/5K\D6?-1CO[67.H0!^Z07]+A_"X(1Q*O=\_T?J> M!-^>#^E1]=A2H"(O>S5#]VUA"=] &K4\TV=H'"?G2H72?-Z[D5$@Q]^/C! MN&;]R2EH8J9IY9#5H'&Q]S"@?!+S$^&/9=-"H_@ P[PW"40-'QYN'-X(MNZ? M#[QG0K"Z?[FB!'*A-(#O'Q@3KV_D(X>[1TR7_P502P,$% @ W$/-6()? MQ_ZV @ O@< !@ !X;"]W;W)KS,=J#MK]_K)(T"#=!R 79\ MSN%Y'7],=U(]ZY12 R\9%WKFI,;D-ZZKXY1F1 ]D3@6.K*7*B,&NVK@Z5Y0D MI2GC;N!Y$S42YW,\=WWA\\L$UJ[ ,W MFN9D0Y?4/.4+A3VW24E81H5F4H"BZYESZ]_,0ZLO!7\8W>E6&VPE*RF?;>=G M,G,\"T0YC8U-(/BSI7/*N0U"C']UIM/\I36VV^_IW\O:L985T70N^5^6F'3F M7#F0T#4IN'F0NQ^TKF=L\V+)=?D-NUKK.1 7VLBL-B-!QD3U2U[J>6@9_-$1 M0U ;@L\:AK5A6!9:D95EW1-#HJF2.U!6C6FV4=XI &)N QE84F(M&7<+'7G[H&T2V &]>8=Q5F< 3S-E<#&'J7 M$'C!J,,^/VW_103:_2Z[BQ/6S%K0S%I0YHV.X7!<_>54X3Z"1!8KLRXXKLE8 M%L)TUE<%3LI N[6VT62$*-MV$1V:Z^M<3*\Z\.:#M%83?L MI(&=? $63WAM<',RL3E'//D,<:?H"''8$(JV8SV&&'PA\/SB@ M/*VI(-W6Z6IOMM]$;9C0P.D:7=X@1+NJ;HNJ8V1>'K@K:?#X+ILI7K!460&. MKZ4T[QU[AC=7=O0?4$L#!!0 ( -Q#S5A49N]<9 8 /$I 8 >&PO M=V]R:W-H965T&ULQ5IM;]LV$/XKA%=L#5#7HJPW=XZ!U-%+ M!W0+DG;[,.P#8]&Q5DET*3HO_WZ4K,J61)-1RF)?8LEY[KG3W9D\/M#\@= O MQ09C!AZS-"_.1QO&MN\FDV*UP1DJWI(MSOE_UH1FB/%;>CXY0\G(_@Z-L7U\G=AI5?3!;S M+;K#-YA]WEY1?C=I6.(DPWF1D!Q0O#X?7.=,#!K [-C8)HG#*:UP;1C,'5.&%BU@=7UX)XPL&L#N^OA5$A. M;>!T#4YY<&L#MV, IR<,O-K JZJ[+T=5RTO$T&).R0.@)9JSE1=50U36O(1) M7O;N#:/\OPFW8XLER0N2)C%B. 8WC'_PQF0%(&M^1U9?-B2-,2U^ ?[77<*> MP.O/.=K%"4>?@3'X?',)7K\Z Z] DH-/&[(K4!X7\PGCD97\DU4=Q?M]%.;) M*+*,-W+E$?S]$6>WF/X#KO%]4OU&>#!7-"$47&'^$;\!%_&_/#5EI U:X'3Y M J<"FDLYS47,T\&C1"FX0DD\YIE8HFW"^+V$U)>37F/&UQU>$A_1/,GO"AE7 M(.?ZQ->T8D>?]D_Z!M3/+2$,%4_\Q_(#N&",)K<[AFY3#!CASTX5Y8@481*> MLK;9A#=ST]%FT]%FQ6.=X'F/4I2O,$ ,_(;RMV *WP#3,*>BKI0RE=O&NV*+ M5OA\Q/>% M-[/%K\_!-TC%]%W;8GU:!:59@V59A*J_ [WW:3?$4R+,J[ MU'9HWO=D]E'\W;0K$7X?,8:P[)E6SI4\H1(1J3RULFTUV;:DV:Y^V>-R#X\! MSSD?; I4C0;XL;P6UD#*.+0&EK(&?81I=CK15[($2D2H1$3R2%KYMYO\V]+\ M\S&*#TDYW[ I7P573X!1E!?IO@:HV:Q$99 2#RV#K2R#$N$K$8$2$?818VO: M6<$B!:A5"*_*5,0S/OJ!=_I_>\CNG.8"?]?90ULSH% MZ#OKK_U]GK'C>1U4U$?9CF6?6(W8;A&D9G'[V41CFPP+Y.LD G6:B3+-)$UNH;K^D;3]HWS:!:5",Y MQ2RA?$,[ZB)1TT@YA_Z,=9)=ZB3S=9(%GG(%U^DNTD36:JI9TU0S^6A4=0Y( MBF*'^F_7W!7.EWZ.LD"G62A3K)($UFK[Z!Q4%:,%VV#RL%$SCNTO6JV]G8)'=?K3!Z7 M6MWZ6MD"K6RA5K9(%UN[S8X$//@2O<,2=I:4:G!G0?706V-:JYMA.)V3M2^ M0=/PO,[@*_ XGCD=5"@@&]NVW>GW2!2:[4)3//S"@_X$Y0*47/J0&P\N@:D\ M\:DAO@ "+:NK?JB)0C4D4OEJ)_T@-T&YWO02!41..;@4:AU* #%-KUL,)4^@ MAH1J2*2(IEV(@Q(%Y5+4149V.>.K45L>SDD^7I&<49*FY8"5Y SSI HE$;F' MP751:U,"R-@RNR=S-5&@AH1J2*0*IUV9@T8%?YA()6<>7!&U3*6&^&I(H(:$ M L@86M#NED0%:]?D(%?!%^E5XLU;JV %GZ%8"3#VS'-[E>C#X-2>PFXU!+*5 M8/,6H)R9TQ6N!##'MJT3\B$\2%?P^[4K<77ZJE0G3TL!Y,0DKE6YTLH6:&4+ MM;)%NMC:O7.0K^"/T*_DI(-_UEH5+*ULOE:V *I%+*T.(UUL[>XZZ%CP?Q"R MY#X'-U]?RN*GN-ZNHE7*TLH6:&4+M;)%NMC:;U43HU;3R90%2O.;TQEN7%Y+N MWR_I9[,NS"_+R@8L?$Z6]67&RPTI?B?B!K07!I%VVJ 1P.QX,-IJPWO[3W;L7\DF]511FY M%4!N-QLLGFY(Q1^N>EGO^<8W>K]6YL9@?EGC>W)'U/?Z5NBKP5Y+23>$2? ;&E"7G/\S%I_*J-S2(2$4*951@_6='%J2J MC":-X_=6:6__FV;AX>=G[1^M\=J8)99DP:M_T5*MKWK3'BC)"F\K]8T__).T M!HV,OH)7TOX?/+2RPQXHME+Q3;M8(]A0UOS%C^U&'"S0>L(+8+L =A?DD06H M78"LH0TR:]8'K/#\4O '((RTUF8^V+VQJ[4UE!DWWBFAOZ5ZG9HO.).\HB56 MI 1W2O_1/E(2\!588+D&'[6?)7CSG>%M2;7,!>B#[W&/ALS U,*KRN MQ3N AF\!',(\@&=Q^G*4@(/V>XNL/A31][4F BO*[IM@I8J2X"XU6O*P%I/' M[V6-"W+5TXDJB=B1WORO?\G&P[^'3#R3LB.#\[W!>4K[_!===B@K^(: -Q67 M\B)D;:-B;%68(K.;9Y/9\'*P.[3"%^IGF7'*+@!OM([OLPL&X5].]GCG+R *5[\Z!OF*8&. M. .OV=P$U*F' L)I!VE(9A:&.MM#G26AWIK MWRM_]OJ_*@L^2YUQN"BX%N= M1R&TL]#&=M#Z,@"^CV B8]>-U&E2G-A.ZPCK2@S=#WU73D>2LD-881?SE.SY(,.O_$ M=II N(CY _DQ@D;=LA*0RJ99A-XR1[]9FG\77+910Z2B&]O3$2R8#BD;8.2Q M(-+V=CJD*GNWS>Q-71%E*Q)30E-;V+;<1YW-LJYM :GI:!JQS7%WEJ0Y%QLU M?HH&QBA4>KJ5,B@%(V4]/S838<=ENB MD!2<1$I\YG@S2Q/GPLX81,B_Z>E'ETL:\;W/A%F6HR[& *FB21;!Z"@S2W/F MIZ8WLQN8]+]/@OWQS"L, 2F4Q0+4D67V$EN2&M/RF<>;/.1J382>XW1KPE2* M?D*D.1K!+O2 V&@R#$.'CCEAFCF_6I2GDPX,$"&<>B0?$M,A&Z%,Z"@3)FG( MCAE_N#-O=1\%,AIUDRT@A:99))"A(S@(DV1OR$.> C+)DZ]E]7-I.S;:,29, M,^8"UU3I+LPF1DG55D2,#E G'&;=' B)H6C]AHX\89H\=;=;$%+*IG>D3&X% M9@6Q8^*.B">PXL)$G(XS]=20[.];6IMQ,FB-3X->D/DBL=QP- G3-+G/C:T9 M,#3GTU-#+L2*@=T/B.G=C[15T+$G'"K=/@)DDX5=GQIFT'1OMN!>F MN?0; DX$U)FD\7)IM+@5?I'ACYI#OQ6J" 4#^;1"9PY(@9I8G9 M[2S3 S>SY;.R5O!E1>]M2QP^ ?7IMM_=YZ!,)):18V24'CGM<8QN'BPT35%$ M%-143E/?G_M-W=0)4MEIRAX;2B5H8:[D&NLK8 IL]_RZM1(&*5)^.?5BA3*9*:>5>W)"-!= M'0%%>TJB \L8]K8QSQ#P#E4 M*6)\9PMXT.3 (73NE6=?: 0C[)X[=L_3[-X"/#K5"(/, ^?2HTFW5PI(S5"D M&.>.SO,TG7]L*?RSK5A?'86#?W\AFR41_PDB/NN)]+FT'6^!:P_R],!^ZEB2 MGW5@/Y>V8Z-=^Y"GVX<_W,;E@=&\FU!!F4C]S@\>/*?[AL_VT:3^=[.E5?E\ MWOV9+#'C["WXE3 ]C4A"TI&;_(U7._%,VHYWQ'4;>?IA]\F1>]9'U>?2=FRT MZTOR=%]R.-K50A=86IO'?RZ,70 ']\)O+OIY]P0D)!0;2G/7@.3I!N0[,X]D M=(_QC>P(VY(7:FQ2V:N==B9MQZ:[AB5/-RQ_\@EH?M;.Y5S:CO?"=2YYNG/9 MAP$^[5%HJ^[P11DX\[H#7^CHF62#=7#P$MF&B'O[;IT$%D;S"M;^[O[]O6O[ MUEKG_DWV?M&\A>?4-"\%?L%"CP)2D\E*JQR^F^@D$LU[=LV%XK5]56W)E>(; M^W%-<$F$$=#?KSA7SQ?F!_9O.\[_#U!+ P04 " #<0\U8:/WP%M<# !A M" & 'AL+W=OE[88N"9#D>F@/N%O0=-N'81\4F[&URI)/E))VOWZ4[+C)E@7[XA>9?/0\ M)$5ZLC?VF4I$!R^5TC1-2N?JVS2EK,1*4-_4J/G+UMA*.'ZU14JU19%'ITJE MH\'@)JV$U,EL$M=6=C8QWBFI<66!?%4)^[I 9?;39)@<%AYE4;JPD,XFM2AP MC>Z7>F7Y+>U0V@P0R3\Y4K3,SJ*1N[N*EC%H(D@=G"RB*A M=B($;9(ZWB-8IEF+MVCP1O^!-X;/1KN2X$[GF)_ZI\RM(S@Z$%R,+@+.:]N' M\: 'H\'HZ@+>N!,\CGCC"X()G(&/4@N=2:%@S6*1"\W1.;T-W-5YN'!F;JD6 M&4Z3.@3.[C"9??O-\&;PTP6R5QW9JTOHLY]M(;3\*^:B!TNCR2B9BZ:>=7Z2 MJY"[J%SJ@GJ\GO5[42?Y#,(P"P-<;ID+:\JPR"4NP0-HA<1Y5T(7.UM^0Y M?D'@.NS *M@P(-R]9*7010Q2)2EVZ'?)^F[)L;9>M586"Z\:A5'':6%LA.( M(32S1\20?!+:AY".A\UY9X$.AH.C]7ZSSI?Q/ZVO_^V^EH666YD%%5]X0LRS MS'CM0J163"0+>AYQBS9H/$WZ7#.6XJ^UL1QK#6$(G')I-^$.)16,;@Y[6GS6^*.&3UWRLQBUF#\XUD_2H[5=H MBSC<0GVPQ&8"=*O=_)PW8^/-O!F^GX4M)!>BPBV[#OH_7"=@FX'6O#A3QR&R M,8Y'4GPL^1\ ;3#@[Z&F#B]A@^ZO8O8W4$L#!!0 ( -Q#S5AGM3'N_P, M .\( 8 >&PO=V]R:W-H965T&ULC5;;;N,V$/T50@6V M62")',=[@6L;B+-=;!^V".)M^U#T@99&%FN*U))4'/?K>X:4M9 M,V>N]&QGW=;71$$\-MKX>5:'T$[SW!&[II%NOR1M=_/L*CLW\D[5@3];6;GGS2SG/ M1DR(-!6!$20^#W1+6C,0:'SM,;/!)"L^71_0/T;?XKJU^@]5AGJ>O<]$ M297L=+BWNT_4^_.&\0JK??PO=DEV,LY$T?E@FUX9#!IETE<^]G%XHO!^](+" MN%<81][)4&3Y00:YF#F[$XZE@<:+Z&K4!CEE."FKX'"KH!<6O]I 8BPNQ++S MN/)>K&B#H =Q3ZUU09G-+ \PQ.)YT8,N$^CX!=!K\=F:4'OQLRFI?*Z?@^# MV::79"^4%F0V:M!3*B(";1IJN M0DLQ!VE*X:4F82O1.EMV1? L9PVA;YFT7./6)S^FXDZU[,5J[Q%Q?_G,$LR M(SE__M2$3S;0NQX6Z$(9WVGD"VY_ M8<"'0GBV^R3/RW[+8$F]*Y8-311 UR9@;IXI<&N=XI': M1ZFPIN0=O@%C.1;/$2:P8?RAI'C8JT)J(-;R'^E*VT%*=ZI,L6\I.*NI:X8, M1].PS=50V,'W',A]J-@AE(15.D)LI,C:F\>3-M6*]RO;:@Y8,P-_4'.R,1!F7Z#YD%M MH;! $"$A'>V?]RF/H:IEBWNMMB369$KP<@3/8VU"H^=IV2&4$#+N\TJ%1*3S MJ54&IU+$06>(^M'X#.V37$Z-LT/5N6=M\J-_H;2%1#]ZJTL\(PB! M)WF0<- M?@SA-$Q<2,U-BJ"J5J )H(#,#IY1*@(.G.MBL!NY%\>F6O[D$6I0N/&I M]9<.EY39M@V_BD(<]X M(.,2[8?Z8 '<5Q8SK-^P@>$WSN)?4$L#!!0 ( -Q#S5A0*\A%D@, ,( M 9 >&PO=V]R:W-H965TB'VCI)'&A>!I)V?&_WY&253=PC'Z1^'+WW'.O M7.S)/-H*T<%3K;1=1I5SS745P+J:/5(IS=FM6"6J>DQEL#MJUK80X;5+1?1I/H>' GR\KY@WBU:$2)]^@^ M-;>&=_& DLL:M96DP6"QC-:3Z\W,RP>!?R3N[_>9\OH\030H69 M\PB"?SN\0:4\$-/XK\>,!I->\71]1'\7?&=?ML+B#:G/,G?5,GH308Z%:)6[ MH_T?V/MSY?$R4C9\8=_)SN<19*UU5/?*S*"6NON+ISX.)PIODA<4TEXA#;P[ M0X'E6^'$:F%H#\9+,YI?!%>#-I.3VB?EWAF^E:SG5G^10YC":UAG&;7:6;C# M#.5.;!4N8L<6O%R<]6B;#BU] 6T*'TF[RL+O.L?\>_V8F0WTTB.]37H1<-V8 M,4R3$:1).KN -QW_329)[]=(#L;R,XNH:_^)*'M" +G$3P8D2,(GX 5 ;A!NJ&Z$/ MOUCNI+Y4S$ !!)O.6X3"4 TE4FE$4\E,*'6 7-H&C<4<,JX.PXU(Q@9/:J'; M@O>MD;KD6V]!HAW#C<%<.I 6V!OTQ11Z+P??R!IP)U0K0ELS.]$W"AHF5PR) M96.,P3)C>*^#"Y^T=(P1,LX1Y=Y1O#(LRX8T.:XTF"?,ZN UTF1R-0K'7(52 M#64(BG3YFO5J$-8BQX'TLPBQ:4M*YL(%XHH9(80F9=\>OHE")2QL$8_3B8,E M]8[4CM4D^Z9+\H'!@J>O"W7K.?- 8WM,F8>L=1Q'+]-;^1[>QUOJMBMYU"6/ M69XOK@ITCT'K[D+Q%*U2T(B#;X=CWOW\/Z)ST'S:\BY?_M95!O%9@,)WV@?K M3/S\D8\QC]47,0($!P!ADOP,:^O9/)/XP,7#[PA,)_W!*,@/;O5ERJ'DZ/U0 M%7?>>9 ?D^:6;[!/W/A'Y\>7!4-V,'DZ'%V[=#?9OXMWS^%&8 M4FH+"@M63<:_7D5@NB>GVSAJPIC?DF/_P[+B5QJ-%^#[@KBW^XTW,+S[J_\! M4$L#!!0 ( -Q#S5BE[$6(SP@ &L6 9 >&PO=V]R:W-H965T*U!WMS M9=:^U+5ZL,*MJTK:USM5FLWU*!EU"U_UJO"T,+ZY:N1*/2K_>_-@<3?NI>2Z M4K73IA96+:]'M\GEW93V\X:_:K5Q@VM!EBR,>:*;7_/K44R 5*DR3Q(D?I[5 MO2I+$@08_VIECGJ5='!XW4G_PK;#EH5TZMZ4?].Y+ZY'YR.1JZ57-ES498V@UI=,&F\FF TS4%Y=%;/-4XYV_^8KP24W$BOJIG5:\5?C.S MJC6Y[&KLH8'VC;-6VEV0EKXC;2)^,[4OG/AVL&[2P\*O&WL MJ9C$D4CC='I WJ0W=\+R)@?,=<(;\477LLZT+,6CEUXAS;S;9V\0-]TOCBKF MTC4R4]$F !H?%K S0G MU@BT%;?AN:Y7Y,XZES9W.)SKI%+3:--8\(_Z B^U5I3UO8&T+ QV- MM%XK%[5BN'@KDRQ3(:&>B;"D@M=:O\J-+E:.E-#$<+@2&9^.C3ZPT_G:7+VR0G7 M.KZ+C8#*VDDF/X"V@%%" $##%%VC!OS&B$0\OCKD?S#KWD@.XDEKA*ZS(2L;Q*UNLE(+ GD&$G&EXI M46^Y<(TB'\#&1C>DT[4XJ)/ 5JO*@(6 PMQ<.V\U^5"%]1 W4W;71I?B@ZR: M3V(E28I]4FA7(A4/'>"W5F44/2 ME7Q"D'W;*#H#(U9%;D2 MHOH!,H"^7AE M#+*\-I[_?JVY2FS.\>0D1<93OHLD%NE,I&BX0SN^J'\/@)L&?*N4\"Q9L>$/%F MO\@IB88Z12TIE,(L>7$GH)%8RH6EC-/Q*3*)U-Q 6>'HDT.I^F?/W8%\E#*))]Q=KQY,!Q@95UW:R]J)0O M3 Z/1,DT)I?\3->3R;F8S'#][FE,<(/C:1Q=I.=BGM#Q>30].Q.S.:Z#(< _ MC29I LEQ,.$BFL_.VEMBJQTL''S/-#0LDAF*).;=N[K?WYZ<(;M>Q2-R^4UT M>UK$^&J#GXBQB= AYMGHEG1;OL5HA=AX0]T#H0?]=\5!B0L+S:+4*QFX%+&F M] B5P2R[)'\MNU2%V"X_(]"F%[EABNA;>#7HC"X4N\FRM=V5#$*WOC-K6T1D M2E>A&UU2%X&)3N6*-QIT*)!-Q#61^*=9=-5+M+DE5^!P/C21,3RRW+4(3.?+,+-] M9 88V 0ES$T08_)MCZ(U.$&[OAL^U>"$4ZK!X6HEX4>J?F2#KIC,2@-J15K4 M* PT[Z94?N HUVGLT94Z=&]*M79P>@^56^-?*Y^T4Q.R%0T;H<AKZ7R;0YTHR*/@)3D.M^M%$R+JL:93/%L MQS,?560WY/4Z^E08%,G0JJT5A X%X7:QM5 58_0!,\5L/2S ]+1=64HR6) M[BK-J?Y]Y)3'KCSGU]5H./5S(G6#'M)'Z6>>]HC=NZQA$J/*(//9=0OU:EH/ M-) A5Z&MZ I,^(5.MJK@"%V'+R*LV&$>X->F"36F/\$^:5_%)&G'@3 =I/-P M&XG?ZS9A^_>J+4*N^R6ZDMDPK?*:*\S&M1P&(S/D6*C)/H]V4FLGG >R[_+M MW/(=\OM6.*)H T_LY\ CDB$Y_7!-#&J0JL#1W']'@5G)W@H..DOGIO%]Q/\SN MZ.T.GJ<6JNLGU$3A- +X0 8@5TJX$.\@FF:/UJW(3K/P&;X'] M:O\E]39\0-QN#Y]A?Y,6\Z.#TB6.QJ=GLU'H*-V--PU_3EP8C^;!EWA/QI1 M&_!\:4"$[0TIZ+\OW_P'4$L#!!0 ( -Q#S5ACG/OS000 %@) 9 M>&PO=V]R:W-H965TGN?N>*?YUKIG M7Q,%L6NT\8NL#J&]SG-?U-1(/[8M&;RIK&MDP-:M<]\ZDF54:G0^G4S>YHU4 M)EO.X]F]6\YM%[0R=.^$[YI&NI=;TG:[R"ZR_<M>!#_+EO)5K>J3P9WOO ML,L'*Z5JR'AEC7!4+;*;B^O;2Y:/ G\IVOJCM6 F*VN?>?.Y7&03!D2:BL 6 M)!X;NB.MV1!@?.MM9H-+5CQ>[ZU_BMS!924]W5G]MRI#O9:*D2G8Z/-CM M;]3SN6)[A=4^_HMMDIU=9:+H?+!-KPP$C3+I*7=]'(X4WDV^HS#M%:81=W(4 M47Z002[GSFZ%8VE8XT6D&K4!3AE.RF-P>*N@%Y9_V$#B2KP1GTUA&Q)/89H&\Z,W<)C/3[YB9B2_6A-J+CZ:D\K5^#D@#KND>U^WTK,&;UHW%;#(2 MT\GT\HR]V PR$.HKG.2;S%V>-L=7Y=JWLJ!% MAKO@R6TH6_[XP\7;R?LS8"\'L)?GK"\/N1 ?E"^T]9TC\<\3[8*XU;9X_O<4 MXK,V3R/NL_]4$RHYD$.!R7A9;"4"#@MKO-6J1*!*T3J[4?$RHA<(E3 &KI<1 MWP-R#D+8"^D]!2^D*856&,];(9Q)?NW(=*0L4'<@R.K"U*ZW6 MD4N/;=?&?$7?)(OZE6,$1VS1@_@)8FSL0,W16KJ2SQA2>PSA5*@#6F&(XWI M_J%[32RI4#0 M"?;M5,Q-BO_!62J! PY,0UUBF-!1;/9!\>+G[./30_9+O,J,/]2.2*#K*CVT M7?Z;H5I=BLJ((;7)DGYYY2Y&+T57AGWAELH'IU9=HA[A[J_BJRNZ5E#C@7POK+HH/V&'0P?4\O_ %!+ P04 " #< M0\U8LLCPNTH# !R!P &0 'AL+W=O+<>GJZG7#PH_)*[=SAI\)%?& M7/O-AWP>)9X0*LS((PC^W. 9*N6!F,:?'C,:7'K#W?46_3S$SK%<"8=G1OV4 M.57SZ%4$.1:B5?35K-]C'\^QQ\N,)LQYYU2&G#R!/X+/15#EX MJW/,_[6/F>5 -=U27:4' 9>-'<$D.8(T2:<'\"9#Z). -SD0N@,R<"ZUT)D4 M"BY)$/H<[(VW@YONA_/=<^H:D>$\XO9P:&\P6CQY-#Y)7A\@.QW(3@^A+\(M M[%[2625LR?Q_?<-;@I4RV?7O?:0/PNXGW=?$MPKAS+!'O7GJ0# !Y[;UH>[J M0X3Z. *A*86T--;<<)XXKSS:,L/EIZ0(W&FXK:A^LURI["Z?\^>5CQ*-* MQU,CP98%#P)'XH%'D-ZE*8I?Y\=)_ \ M[,'G_8.0I%T(W&0#@_*LINC=^K=:_29NTMJ!PH+-DU&+X\CL-V$ M[S9DFC!5KPSQC [+BA]%M%Z!SPO#7=1OO(/AF5W\!5!+ P04 " #<0\U8 MPD/?!+8$ !="P &0 'AL+W=O/K7&$F)+$3/@\R _1HN1EZ#%!XZ/1!V!M;<[+D2C(A_>N[*SM. M("$O?;$E>3]^N_O;M4YGQOYP!:*'UU)I=Q85WE34U%Y)C;<67%V6PLXO4)G9611' MBX,[F1>>#P:3TTKD>(_^S^K6TF[06RSO=0H%YXP:V3'^Q&DM?.F;)4)02EU M\Q:O;1Y6%(Z&'R@DK4(2<#>. LI?A1>34VMF8%F:K/$BA!JT"9S47)1[;^FK M)#T_^<-XA$/8@WMOTA]['& &EZ:DHCO!>3L=>'+#PH.T-7G1F$P^,#F"&Z-] MX>"KSC![JS\@>!W&9('Q(MEJ\+RR?1@->Y ,D_$6>Z,NYE&P-]H2LP-OX$IJ MH5,I%$4O/!+7O-L4;V-NO-D=B:A0-8L[BA^X7N&GD M!Y4*J9(9%Y38SWA 9AYY8H&%BRNRY[ M%ZC'";JD\"S]-FH:$ ]H2]BYUC!'8=TNG.>YQ9R&!ER3D*2?5 J/0M4(WY>< M!>'AF] U_>U@%"\2DU"0<=R/]V'8/Z3U00>^M+9Y3+8$@P8\CW^Y+$C6=2'O;'M YM8!%F1$IJI1>J M5N@T9+]-=9:N:Q(TT]6>K35K+&K;E2NK[:))-U:I3RD#D64R..BQ(&/@!X&P M7?H_,/]F)G#009] !O5:K_!](\\L*L%6O?G 0W^-MH&!R\;Q(;_--8;\N!#J MM6QD"*QZ ,[0U3BE0"O47*=@NM>SQW3ZIU<*97BHH5NV_07 M':Q<>4JT>;C8.:IXK7US^^E.N[OC>7-E6HHW%\\;87/*'"B5.$"]6P\7&ULE57? MC]LV#/Y7"*\86B [.W9RS6Y)@$NOQ?;0XM!TZ\.P!\6F8^%DR97H2_K?CY)_ M7&Y-@^[%ED3RXT>*I)8'8Q]@FOK6MBO&U3FL(JFT7#P M4>XK\@?Q>MF(/6Z1_FSN+>_B$:60-6HGC0:+Y2JZG=YL9EX_*/PE\>!.UN C MV1GSX#=_%*LH\81084X>0?#O$=^@4AZ(:7SI,:/1I3<\70_H[T+L',M..'QC MU&=94+6*%A$46(I6T4=S^!W[>.8>+S?*A2\<.MTLC2!O'9FZ-V8&M=3=7QS[ M/)P8+)+O&*2]01IX=XX"RSM!8KVTY@#6:S.:7X10@S63D]I?RI8L2R7;T?J# M(80%_ )OA=52[QW[!-!Y9^!RR#]T93Y>"M+K!X;A\S ML9%=.K#;I!22UT+H6"+0E"KC)R MY^+MX&;GX7S#W+A&Y+B*N",,UC__-+U.?KM =C:2G5U"7W][(_#W)SP2 M;)3)'_XY1_>XX$5JW44([F,X3KM//_\.WXU'C%V6K%!3!%VNRZ_E 8$N<2C"-%SA@.QXT MCJS,O0<7A-H02)VKUN=$:J J^&Q:ZL@QYP#-4AQNK.$;"X2\=" 8T':8B]9A M0.G< A[1YI+/.$^Y#\'"W@I-4'!E#H=XS!$] V\XA,YC]('G]F!7#MQ.\I&E MD,U_),R#I.K'J.S\)+_ P]]3.DW@ X;$F1KAI3+.O>)B8)\[3MQ.H>_"9YEY M =/););Q_^5T,N5:>_4TDY[R>1&BJ\X7D%Q-%QZ'_S.&N>NOYQO!N2:-3V9I MC78?7@S'?EI-W5@=3\='Z;:;Q4_JW8OV7MB]Y'PK+-DTN7H]C\!VKT2W(=.$ MR;PSQ',^+"M^6-%Z!9:7AINSWW@'XU.]_A=02P,$% @ W$/-6%3B '?* M" &ULM5E;<]LV%G[O MKSBCIFTRHU(293MN:GO&UUEWZC1C)[L/._L D9"$AB08 +2L_?7['8 WR:KM MM-T7B\3EX%R_\Q$^6FGSV2ZE=/209X4]'BR=*]^-1C99RES82)>RP,Q# MR: 9N%6+I>.!T#MU$K)56Y+*S2!1DY/QZ<3MZ=[?%ZO^"? M2JYL[YG8DIG6G_GE.CT>C%DAF#PP&E;H4&NBO K'FH_]#8<_M&&N-X0>[W#05[+"^'$R9'1*S*\&M+XP9OJ=T,Y M57!0[IS!K,(^=_)>.TD_T8]T(6?N:.0@DB=&2;W]+&R/_V#[E&YTX9:6+HM4 MIIO[1U"EU2=N]#F+GQ1X6IJ(IN,AQ>-X[PEYT]:^J9SDX^?[;R<'XYR>4W6N5W7M* M^@G'@"Z433)M*R/IWQ_E@Z.S3">?_[-+UZ>EU:'U0IUV(I,IO8K?1E/D49;Y MDBAX9#]ZVXTX0@14UH: ?A%%A6JEZ:0>N)7W.KM7Q8+X0(O4>:^-6])I+HU* M!$5T)TLX>"8--O"FR>&0W-)(2;\5O94SS\T.Z M^^WJ-BQ5..MA2&56>;U)BF0)LRT6\>:RS!#J628!16:ABLA'[]$P*>O%LP>A MQ%P]X!&6F07SS>4K3Z\'5^?GMX U>BX6,Z+I17^_4M1]\',).V;7J MM; ,TO#GG8ML*Z:_0Z"P7HGTCC!M?*0 .,@ M Z7S9S!* )2L3(!#*;N%W?!!A>DV%=NWO"R2*S&H/VG"*1?$W_9M9*DDFH*H$0->4)!Q>7;]\>+TSU0%9/(RT%&6Q70WK;A' M N:6A"8(;4NHBPSR9($]P[ X0ZJC[UD/]B&^V)3K0JY])^C2L[?1 U1Z#P_( MK\@$:#B3WMT,-Z%--@'8:M,OB$<;BD KN:G#GU[!>4-D 4AS+EH_T1LGG2 A M;3#0-JT8D?/UACB]/_>:G7IA6[J]VN]SCK8=8>%D'*'F6>A2I+QNW*V[%RKS M4/52=T7UZ8\82Z!^.'"6J87PU?TCS2J5I;XP^?@,?R*F)T'UR5Y'3>9.PL"Y MKDP(P#5_2J"]IU[F2G'.WIW3X5X\I%\E=^UM^T/]%?C"2H0Q:\YWD>LJ.)CM MZFHC4V)65P^T,I(_J_QZ7\B!!R$E_BN-WD'$D)'X"BGJ \]U7HJBKD/0"4J" MOZ #]]B0FQ[S@#)<2C'O2V&YDWK@4:D2A@NPKJE/T6ET&=&0+A?KTGDE M[P0X#9T:*"X8\E/PU\JRV'EE/!>:\:=?1)\*Q5V"5])EKC@'[(:BK"-R8\,L M7V6'O;RH-;A09BERB[HO2Z,?%.!+ AY?Q5'\!)G=YK85MO#3\%G6^]S\B^R( MQ]'^2PW9CPY>;LAIM4!-_TVF^-!^&< )=6)B!Q M(R2.>EI.^QI'0/[[IM]@JO^&R;]H#AMR :K22,0PO#OVYNP"T98:+ -]:>&\ MP:S-.$TF-8)YVH/IOO;Q\\'8J!Y RXT ]=^]]T:L-Q[V'_GF;TAB,.==,,&< MI(8 O@AB0YF_IT;,7>,RA@D./MSC*5&-:HQ>P7O<-_)2.L47,8VXA(&P@9C5 M4L%ZUZLE#=+&6P.D!:#;(D@M[P*9*%G=83M4P^9K6T$LQS/QQUE/7M6];R^A M9W._TV;]9NC?!2W@&7 4T$.8S\BD]@] &JU(\7=/2DQ.(M^@:D8\ M),O:UFVF0Z1:_5[@.,7!NUK6XGN_NE7G '\G%+/N+# 4'W;CE!R.TF)3H.LZNZ-IKK4[WU,;?:007=2C]B8 #2 M[I)G)TD#QA_TUFB:-Q0LP"&;ZD"[2UUT'FPYILE]O^"E\%PWI!GY8B 4K&=C$H;_QPDS7=*8\M!<_!]=? M!^:[KAM'O7M@?$8M_&VW#1 ;KH3;T?9"_33<(W?+PVW\C;\?L CQ'%O'T=O] M 9EPPQU>G"[]K?),.WQ,^,>E%,AR7H#YN=:N>>$#VG\SG/P/4$L#!!0 ( M -Q#S5ATV+?A10D #4> 9 >&PO=V]R:W-H965TY?!D M(V1&-5S*[43M):.)0^ZT22C/!_=7)E[7^3-E2ATRG/V11)59!F5CV]8 M*NZO1]ZHNO&5;W<:;TQNKO9TRVZ9_K[_(N%J4E-)>,9RQ45.)-MYNPLZB M$8D+I456(H,$&<_MD3Z4AF@AS-TC"'Z)X/<0O/ (0E B!$91*YE1ZRW5].9* MBGLB$1JHX8FQC<$&;7B.;KS5$IYRP-,WGX1FQ'/)!?G P!H*3K[?OB7G9Z_) M&>$Y^;83A:)YHJXF&M@ATB0N2;^QI/TCI /R4>1ZI\B[/&%)%W\"8M:R^I6L M;_R3!)=[.2:!ZQ#?]<,!>5:GT?]%J"UF:Y-U#G!8)S[?DDY!Z1Y89 MDSRF.?G*[D1ZAP\^ -DA.UGFD6&.A>CN)G(7BZO)75O_0Z#0G7DU4$>O::W7 M]*1/ETHQK9[PXO0EO?A"Q#K:1K6VT4DO?I'0#J1^=,B7E(+W(,_)N[\*OH'W3.K!9X]/^4^B3Q^5M;-7M)?+T2L MH_Z\5G]^.NN&U1_2>7Y@?G_JS8*>DX:@%HLC.;2HI5P\71N^-;6AJ0.'56)( M],5 7D?]Y!\ \OW%L.">VS1#]V1\83=41 ORGN:<>/;CI&5R/8T?X11+A8%&)C 5$HX'%/+JH"Y09+E[8K,0]^I!/CZ^3NAMDQ+ M9NP $:4;_IH@H50R14RW$B1M7C%-(V+%$(J(>M'DG!E5#> _($E?2KB MCAU*:H4!%S'"LWW*8ZYQ5&O 2NU*<5_]!.5Y]HL"F%B:4(:P7@L)\8%\D<[8 M&K>C.I7,8L #(RS/@3U3MDU(EA2QO5\+RVB\(Q [7"2. 4(A:G<1#C0SF 3X M?P!O0+$Q@<&@ ),]V@D[!0;(!<8F M,06)/K=Y[;2 _.9\ZH[1 M(A^IA$1[R\ ]:S MPCC=R\Y5.(;PE0H=*QGKL2)C4XI18 AQ;9=SC$KP+X1E MPFP!4*@-2!K"#IJF .60LVCL5E?&HF?3\;2^ 3;O97(K.QH3.B>@TGK'0.I] M.%/C+\3FPM1XC <')=\S\UX O5>6Q%CD2J0\L367IB:/S<(,P6_T>M(B-%6B M8Q9:&P:ONB4$[.2-O=H00U*H:J9 Z%(Q>%ZWI4=&)6&X-1-86@LJ'ZN]-1A# MX/9OALZP:Y>Z?P=\ML _OQ:O!U -U%D]H9F$KCV1P$0'"6_7!K*OMP;6; TY M,VI!4R^RLM,EV$5AFC+&[,X38Z@B8.P=1WJ8\>W?H0+/DJ]_"6/-$.+_IL9M ML=^G=3=MAQ6XW+Y>L\ED<2$?RFK!3=AM1)J*>W5Y9-BRL)=]]?N.[\&7-?Z2 M5(M==Z,C%V0K!1CCC"S"!?[/7+(\IB"B=MK7^33RR6LX!!$/-PQ*CZGP*-,+2Q)M6;",3B%U"'<2JTGZ+UPK(#RT2JW9U:S8F M)/FY*6^K%&S(-SRV\60"&&M:MR0 ,22Y[$U.+1>LRL%!T=0H&,SA;QI :VR& MLD-#U$^K2NV3PP"HU&DQ<,CMKZ]HMO]EV_TT#2\, MB#=;0"%9EX,(S&LB8P.@%^3<=R'GK._:A@?O&NTC"/USXIFJV:E,,54[L@&' M_KVJ=-+SC>-62'U/>6):%U0+L\:!'C@J)57ORX!%(>N&=[00H!N,O*+0*+*R MRU-W]L9TP5_;=T\C=7T] -]?.\"](0FC>3ONQ%I3&"*-7C .[FB^94;QG-U7 MFU>]%QYFO^KEY046(7]!_C"?&EAR06%0IMOVG&S']6I+-*N:G=C;ONHYYH < M6![$;F+<$CX')7#.4*\O^UTD@,'N0'8O&,\/:7=%.Z"$X\;/A[060.KGUEN@ MP:@8'L[ZXW3_]<3[Q[P'( C*">+9\ N -:?1Q ]3\(&+@D7"VR).ZA\= ..AV:PF/MU ME^QM:F"0J>-/P[([XON@RS*KFS@ZD*+O?G,MQ9:B\R<[AA-F$0 >+X10E<7R*#^4GSS7U!+ P04 " #< M0\U884J"ED46$(A62BNV_[Y!2 M%#=U?!&WF9!:6T]#4.3E5@Q7>J1)A'$63L&)1(X0"LRL0V T/.$%"N& B,9CAQGT5SK'W?DS^K773EJ6S."%$K]X M;LMY[46>Y26S+)UIM0;MK G-3;Q4[TWDN'1!N;>:3CGYV?2;L@C# M(7R$.S16\\QB#A?,E+/0$KPS"K,.:M%"Q6] C>!&25L:N)(YYO_ZAT2KYQ8_ MC"HGS!(/[P;3J)/!\@F/=GD$'KJ8@!,ML& J\>&/S'A MB,(E-YE0IM$(O[_CQL)"J.SASSX!!Z_8+Z!+B*.==,@<@Q)%#LLM4!^@3)=4 MQ4O#<\XTIS?EA@I4,&=,SUOP#4URK)7AQ->6S (31H&_ IBA2=9H;KR[ZX,-7)NEP"Z-AM]$_CR>'.\_S'DX&DY.$QO'@-!G#:R'# MP>@L\M^Q1QG\#^%P]2LW4ZJU!"Y)#H)Y3AM017M<4'=S=Y\-HDGB.<1)!/OR M(-PIU@KURK&UL?55-;]LP M#/TKA =LES9VG+0KNL1 TZ[8#BV*MNL.PPZ*S<1:9,F5Z'S\^U%RXJ9 FD-B MBN)[?)1,>K0R=N%*1()UI;0;1R51?1G'+B^Q$JYG:M2\,S.V$L1+.X]=;5$4 M 52I.$V2\[@24D?9*/@>;#8R#2FI\<&":ZI*V,T$E5F-HWZT4G>$6>C M6LSQ">E7_6!Y%74XNHB@ MP)EH%#V:U0_P![A(/@"D M6T :=+>)@LH;02(;6;,"ZZ.9S1NAU(!F<5+[2WDBR[N2<93=&T+HIW *MT): M>!&JP5%,S.SWXWS+,FE9T@]8!G!G-)4.ONL"B_?XF!5ULM*=K$EZE/"JMCT8 M)">0)NGP"-^@*W,0^ 9'RG1 !FZE%CJ70L$3"4)^O<@=JK>E&QZF\YURZ6J1 MXSCB5G!HEQAEGS_USY-O1\0..['#8^S9VTW C72Y,J[A)/#G&=<$$V7RQ=]# MDH^3[B[ZN43(A;4;J>>P]$DR]65#Z=9^!XN#95+?3FB]O'%3BE$TZ\-&KI(?X0VO)8D*0@6QD] M?XL&4=?6K(.Z?653S$7C,*2JQ#]C)6UVJ5LAS-N0(Z8,XO+<,DQJ9N9J01 3 M61FJYVFWX/%J_0'T#KT?\5[_5FCG84HY",?;MG+G[0;A5=O_;^'M%+T3=BZU M X4SAB:]KV<1V'8RM0LR=9@&4T,\6X)9\C!'ZP-X?V;X1=DN?(+N\Y#]!U!+ M P04 " #<0\U85CM0/DX" K!0 &0 'AL+W=OB)FHODL07-3;2G]@6 M#>^LK6LDL>NJQ+<.91F3&IUD:7J6-%(9D4_CVLKE4[LAK0RN'/A-TTCWM$!M MMS,Q$ON%:U75%!:2?-K*"F^0[MJ58R\94$K5H/'*&G"XGHGYZ&(Q"?$QX*?" MK3^P(2BYM_8A.-_+F4@#(=184$"0_'O$)6H=@)C&WQY3#"5#XJ&]1[^,VEG+ MO?2XM/J7*JF>B4\"2ES+C:9KN_V&O9[3@%=8[>,7MEWL^9F 8N/)-GTR,VB4 MZ?YRUY_#_R1D?4(6>7>%(LLODF0^=78++D0S6C"BU)C-Y)0)EW)#CG<5YU'^ MPQ+": P?X1H+- 3SHK ;0\I4L'+6L%T@7P+Y:4)<+V0E18^]Z+"S-[#'<&4- MU1Z^FA++E_D)\QS(9GNRB^PHX+QU)S!./T"69I,C>.-!_#CBC8^(]T 6+I61 MIE!2PPU)>EMO!S=Y'2[,SX5O98$SP0/BT3VBR-^_&YVEGX^0G0QD)\?0\X.+ M89*FE*[T<->6S!?8A64M386@S,LK5*RKU0B_;W%'L-"V>/CSFK3CQ?=M1SW?9%ZT1^I>6S-I9>.XKDH($;=%4<4P\1KNOE M875X">;= #R'=\_(E725,AXTKCDU/3D_%>"ZT>P']M66OOA +#^YC_ U!+ P04 " #<0\U8A\O,9XH" "7!0 &0 'AL M+W=O]%H(ZT; M$TP:3-N #X@/;G)MK,5VL"_-^N\Y.VWHQ-8OR;T^?L[GNVEG[*.K$ F>5*W= M+*J(FK,X=D6%2KB1:5"S9VFL$L2J7<6NL2C*D*3J.$V2XU@)J:-\&FRW-I^: MEFJI\=:":Y42=C/'VG2S:!SM#'=R59$WQ/FT$2N\1_K>W%K6X@&EE JUDT:# MQ>4L.A^?S2<^/@3\D-BY/1E\)0MC'KWRI9Q%B2>$-1;D$03_UGB!=>V!F,:? M+68T'.D3]^4=^E6HG6M9"(<7IOXI2ZIFT6D$)2Y%6].=Z3[CMIXCCU>8VH4O M='ULED10M(Z,VB8S R5U_Q=/VWO82SA]+2'=)J2!=W]08'DI2.13:SJP/IK1 MO!!*#=E,3FK?E'NR[)6<1_E70PCC"7R !^ZI:^T&[LD4C].8&-W'Q,46:=XC MI:\@97!C-%4./ND2R^?Y,;,:J*4[:O/T(.!Y8T>0)>\A3=+) ;QL*#4+>-F! M4AV0@2NIA2ZDJ+E40SD$'K^O!OPZP&?".8UR[]?HGH8;-?DAPIYD)K6%A4_9&BL65FA0#0L MK;$$GI)O!9D%6IB$:Q_#)1:HO.$D&-+_ G9ZUOM'0!W6:X1KH5N>*G:XAN?5=XF8[(51C=";=PY<)=@'9@F%48J)NG O M96NE7H58JBPB\*.1]<%7$^\-BT*["BO!,6RKJ9^;P3ILG?-^V/Z%]ROK1MB5 MU YJ7')J,CHYBL#V:Z!7R#1A]!:&>)"#6/'F1.L#V+\TW)FMX@\8=G'^%U!+ M P04 " #<0\U8>I9]7#-2T3UY+ON2"U#9@9V\)NMM@DVX?BCY0TMCB MAB*U)!7'^_6=H63%"6P7*!!'$CESYLSP<,C)VM@'5R!Z>"J5=M.H\+ZZC&.7 M%5@*US<5:II9&EL*3Y]V%;O*HLB#4ZGB89*&O! MU64I[&:!RJRGT2#:#GR1J\+S0#R;5&*%=^C_K&XM?<4=2BY+U$X:#1:7TV@^ MN%R,V3X8?)6X=COOP)FDQCSPQW4^C1(FA HSSPB"'H]XA4HQ$-'XWF)&74AV MW'W?HK\/N5,NJ7!X9=1?,O?%-+J((,>EJ)7_8M8?LV\*5MG8E!*W3S%4UN''8>+Y(##L'48!MY-H,#RK?!B-K%F#9:M"8U?0JK! MF\A)S8MRYRW-2O+SL\_&(PQ.X0U\-CHSVENCR&8%U]JC1>?=)/84AZWCK,5< M-)C# Y@C^$1 A8-W.L?\I7],_#J2PRW)Q? HX+RR?1@E/1@FP_$1O%&7]"C@ MC8XD[< ;>"^UT)D4"NZ\\$ABVY]O S?>#\?[YM)5(L-I1!O#H7W$:/;KSX.S MY++&I'T9V#*U.F5'S>F0Z$S@_*#[3Q[8]LX)Z"D&\E] 8*0:Z!$,\'0G Q M()E<$:A1%+Z!)Y=,6+MA7%&:FNB:94/7.?1-?"5%*I7TDI31SMY\I8?P(*C$ M60>).:2;,+_EX8T7BH9/AF?]$6U2RH#[#8&>#,[[Y]N1'C4Q5V%H0VK3H^ < MB+0M52?N%_F)_%L=*D"]65)URE!+COR"C>NDRWC4KFV;-ZT)/F6JSC$X5=94 MQO(4V8,K."UR(%+4P5R3JJ1B>&]E6ONPB.VR:J/?[*Z.;%>G#_,\EP%2<4J[ M50E:T@%X?^QC 2WF2*)(,]-4J%"EH,C=+U MJE6'?65.O"I"45[/!^<^O3?BZ/U8IP0LKN"_FE LLA;3P*%2-31;G.Z1# M%CM[MA=&V,QB9BP=7IV@7@N-D%\E>2-TS0:C03M A/_+9-_Q$.\G42.6[8&ULG95=;YLP%(;_BL6D M7:V!D(]&78*4=*T::=FJ--LNJETX< K_F"V4[I_/]LD+)6H6^4&?,PYKY_7 MP/&T%G*G2@"-GAGE:A:46E=78:C2$AA6/5$!-T]R(1G6)I1%J"H).'-%C(9Q M%(U#A@D/DJF;NY?)5.PU)1SN)5)[QK#\NP JZEG0#XX3:U*4VDZ$R;3"!3R M_E'=2Q.%K4I&&'!%!$<2\EDP[U\M)C;?)?PD4*N3,;).MD+L;+#,9D%D@8!" MJJT"-K'I^*A^Z[P;+UNLX%K07R33Y2R8!"B#'.^I M7HOZ#@Y^1E8O%52Y*ZJ;W)%9,=TK+=BAV,2,\.:.GP_[<%)@=+H+XD-![+B; MA1SE%ZQQ,I6B1M)F&S4[<%9=M8$CW+Z4!RW-4V+J=+(TVYN!1!N),\(+-)<2 M\P+,MFLU#;59P>:%Z4%MT:C%KZ@-T$IP72ITPS/(7M:'AJS%BX]XB]@K.*]D M#PVB3RB.XJ%';]#:'3B]P?OMHJ\F!RTUL$[#C=ZP6\_^,E>JPBG, O-/*)!/ M$"0?/_3'T6$'C?PK-&"BG3WN\N!=XUN M!]\W=S=KY'$P:AV,O [6>PJH'VU'%_T7S/-,5!HR]'A+<=%)[=?-,57@X1NW M?&.OSC?!+\YG]&N_Q7C9,EZ>M8?VHR <^Q']TF\A3EK$R=G;^"Y,O_RKF.%) MXV,@"]?>%4K%GNNF![:S[0DR;QKG__3F^%EA61"N$(79X+H8^!7: ]5Y-_4$L#!!0 ( -Q#S5B@HO[J ME ( $\& 9 >&PO=V]R:W-H965T0B<3U5C!)2XTF*:JF-[.4:C--!@$NXT[7I36;83) MI&8%+M%^KQ>:O+!'R7B%TG E06,^#6:#B_G8Q?N 'QPW9L\&IV2EU*-SKK-I M$#E"*#"U#H'1LL9+%,(!$8VG#C/HKW2)^_8._8O73EI6S."E$C]Y9LMIX2 M8L^[OPAW"II2P-7,L/LS_R0>/9D MXQW9>7P4<%;K4QA&)Q!'\>@(WK 7/_1XP]?P#@A^F*V,U?2Q_#HDN,4;'<9S M#71A:I;B-* .,:C7&"1OWPS.HD]'V(YZMJ-CZ,DW^L3W&6LER4Z16L2:DU;! M%AZZ]1Z?+3VG8&9E T3 M=%HK;8&:T744#"*X872@MS +A_D0XE,X!K)AIF,:/)U\=B&VM+K9JBA)M&(@R&G>J30[+#O2:O M4!=^E!GP;]#V>[_;3\M9.R1>PMM1>\MTP:4!@3FE1J;FSSA"L%C4K M<8/V]_I&TRP86 I>H31<2="X77H7T?DZ<_O;#7]PW)L78W"1W"OUX"8?BJ47 M.D$H,+>.@='G$2]1"$=$,O[I.;W!I0.^'!_8?VICIUCNF<%+)?[DA=TMO9D' M!6Y9(^RMVO^"?3RMP%P)T_["OM\;>I WQJJJ!Y."BLONRY[Z/'P+(.X!<:N[ M<]2JO&*6K19:[4&[W<3F!FVH+9K$<>F*LK&:5CGA[.HW91%2> ^W^(BR0?KF MJI2\3=GI';L7:-XM DNN'"#(>]IU1QN_09O )R7MSL"U++!XC0](XJ S/NA< MQZ.$%[4^@R3T(0[C=(0O&>).6KYD)&X#77S'PNO0Z7&TNRGGIF8Y+CVZ"@;U M(WJK'[Z+)N&/(]K205LZQKZZXH:5I<:2M550VZ$X?[6"X0Z?+*R%RA_^/J9] MG/UNIQ%?E0:<"?L,-[SFLH3-L[%8&6"R@$M%T9'M$)KNSMUGDM.0* UF:C&=_02UHT5#=*W86AYZ]V=35 3RI\5+)\ M?]7HKM275!7-7$[OGP_Y;;/U<\,TDQ:_]0B,"CI^?/]S"'YEDGP^0Q+UADME M2!>7>:,UI9G4-C)752W0TC0?E)] E/GS6>CR&/GS*(9K8SF]G[0+F994=.-J MF*:4\,B/IR%STD8PYH))G.$KO'E@AG#MSQ_704@*UIS MWM.[.N#7H1SU.I:>V$](@;LTX7SZQ9G@C-#T\")Y7!]X7K'G8SK>]'@ZFT?P M#D[3>4:?_YVJ8Q<@>-%P*M1EVU8-^6RD[7K/8!TZ]T77L+YL[]K^)Z9+3I=! MX):@X=F4CJ[N6FDWL:INV]>]LM0,V^&._GV@=AMH?:OH*>\GSL'P?V;U+U!+ M P04 " #<0\U8YE']?5@" G!0 &0 'AL+W=OV0[M_O[(302:4OL<^Y[[OOSG>>MTH_FA+1PK82TBR"TMIZ%H8F+;%BYDS5 M*.E/KG3%+)FZ"$VMD64>5(DPCJ+SL&)E-8=A,F\9@6NT7ZO[S19X<"2\0JEX4J"QGP1+$>SU<3Y>X7R4:I1V?<9(L@-L/>J_8Q]/E/'ERIA_!?:SG<:!9 VQJJJ!Y." MBLMN9=N^#CN R]< <0^(O>XND%?Y@5F6S+5J03MO8G,;GZI'DS@NW:6LK::_ MG' V^:8LPCF:WP@%L+*Z'2Q]_[9!\DWB_["Y,-C2:,1UUQ@3J? M^EH";M.2R0*A7S#/::R ;H*+X2I>!+Z%^"2.8UJ/IA$<>WMT$<.^@H0[S5NA M+OR(&DA5(VW7Q\/I\ HLN^9_<>^>D%NF"RX-",P)&IU=3 /0W5AVAE6U'X6- MLC18?EO22X;:.=#_7%$K](8+,+R-R3]02P,$% @ W$/-6-YFU'E^ P M-@D !D !X;"]W;W)K&ULI59M;]LX#/XKA&\X MM$ 3OR7IRY( 26^[]8!M0=MU'X;[H-J,+52V?)+>O.I6UNI^5361O 25PIT711,/2U1R,W,"[WGA6N>Y<8N^/-I MQ3*\0?.E6BF:^9V6E!=8:BY+4+B>>8OP8CFQY]V!.XX;O3,&Z\F]E ]V)FUVX%QUT@2.EY:4&Z-HEY.C6W8O4!]/?4/VK)2?M+J7C>[H![IC^"A+DVMX5Z:8OI3W M"6<'-GH&NXQZ%2XJ-80X.($HB$8]^N+.^=CIBWNEPM= ML01G'MT'C>H1O?GOOX63X&T/ME&';=2G?7Z3,X6#I>-CQ9[H'AA8*,7*#.WX M!-YM+4>TRTIBC%7<,,&_8WH"BT+6=/J;HC>*)H6V]DUS);G)AXP2\@2@Z<]]SZ G>N O>^'7!^UQ9 M\Q0J6Q2X>?K)8/5:/1RLQI*&KZX^V% ]HJ)R1_RA2CCYOJ(@(1RMD&JEQ7V\ M?_8:;7WE9497LS2*2EG-!(%5!1Q=E?"$3.EC6&29PHS1A;ZB0YP*9P)W3-0( MGVNC#>6)U< ,_,7*FBHPQ.$S7Q'%/@R'X1B"X2F-)QV\%(Y".(;)\&Q,52*R M:<<5K4H%U!+6R"W.@16.S^D_>&F+4A,;12Z\9/O_F1(VEDDX&(YH?-K'_Z3C M?_(Z_G=RTQ4^AW1O\4O)S2_G2"^RPSFR:]@B/Y M^TGR&K9C"O3Y,+:_Z"0X M/8<_*38-D0.X(S1M6>%:U^WJ^XYL8EZA<4E &0"&;0GP'O/[3.];/<2TO]/+ M"E29Z]B:J@:5M*:M=:O=HV#1],+_CC&PO=V]R:W-H965T5"EX27V;. MG#/VC.<[I6]-A6AA7PMI%D%E;7,9AB:OL&;F7#4H::=4NF:6IGH;FD8C*[Q3 M+<(DBB["FG$9+.=^[5HOYZJU@DN\UF#:NF;Z?H5"[19!' P+7_BVLFXA7,X; MML4UVJ_-M:99.*(4O$9IN)*@L5P$5_'E*G/VWN ;QYTY&(-3LE'JUDT^%HL@ MW%JP#RUEA5]\[$H.:R^[-]GX<#AUGT%X>D M=T@\[RZ09_F66;:<:[4#[:P)S0V\5.]-Y+ATA[*VFG8Y^=GE9V419O "WC$M MN=P:N$8-ZXIIA.RP.*Q?T@, M1YK)0'.5G 2\:O0YI-$$DBC)3N"EH^S4XZ4G9!OH]!V3UWEGQ[U=H5R:AN6X M"*@2#.H[#);/GL07T>L3W+*16W8*?;FFPBM:@:#*(Z"-S@WL)*J/SVYS%-IZ/>5!KQT;$!)9V+,>OND_;!=_ZRDPF[0TVU"[FJ M:ZHQXQ@:H.(WE@@24.'==K7J!+373M[N/X/^3P)T=W.IQ"=QS.'0_^,8(8Z^7/C6+&&![VT1KWU+X:A M,*VT75L=5\='Z:KKQ0_FW8OVB>DMIW0++,DU.G\Y#4!WKT0WL:KQG7FC+/5Y M/ZSH847M#&B_5-2F^HD+,#[5R]]02P,$% @ W$/-6+1/Y[QM!0 Y \ M !D !X;"]W;W)K&ULG5=M;]LV$/XK!Z\M$L") M]6993A,#2=IN'=HUB-/UP[ /M$1;1"E1):DFV:_?D93E=\7;!TL6>>_WW/%X M^2CD=Y53JN&IX*6ZZN5:5Q>#@4IS6A!U+BI:XLY=7O6O_XB8Q]);@3T8?U=I_,)[,A/AN/CYF M5SW/&$0Y3;610/#UD]Y2SHT@-.-'([/7JC2,Z_^7TC]8W]&7&5'T5O!O+-/Y M52_I04;GI.;Z7CS^1AM_AD9>*KBR3WATM*.X!VFMM"@:9K2@8*5[DZ (6@8 FNW4V2M?$Z:KG1.%::I$RUQ%V&?'KRA] 4 M? _.X!-%YQ25_(<0J\/@1=$'?+"UM?0R@L[?%7@_-OGGN..]G.;ZKA0%4GI M50_AKZC\27N3-[_XL?>VP[:HM2WJDCZ9UE7%*:)=$PXWA),RI3"U9?FQ=+5G M0'Q/.=$T RV6^?K+^@,/]$G##1?I][_WN=:I?+]K7RHJ46FY %)F\(&5UB1N MM5X YH;Q-CGP.REKK&D(_69ADQZ(4E0CVYW$=B+ULY7Y_D?-*N,RHF\AA5+P M"L;1V#Q''ERG:5W4SMV,HETIA]CV76@*FY1%1_?FF^)RN$#CC)[ MV_)_ZLF=6O\']E;0L496A&6 )II>61O<821Y;5A8"3JG4*"QM;2.F9P<;(,& M"*F1B#/='#U7,)>BV&QD)N@FY,DZ>EYFVD3;'OJM!F) %D$4)^O(%S.-PZ?S MBSZE.2D7U#I>XDSHO!(SSA:NX'9ZG]KJ2F>F!0?C+N2,6N2,.I'SS&YMQLR/SQ/=F5G2W>D<6='4GP^AM>[LL8HZG5'M),VVDFGYTMM)K K M)'N5/K2Z-0TA(U>CI\(3E.!F 8L0U?-M,P,P\X@ MA6#L1WZ,[R!I&4VJ# >"?HLA1O(1GM?A,<0C0^SYQQ$G2!QC>Q\?03M&VB") ML99>I T]B,9C,Q[E>!*1.>(1!X-Q$K03D\-I19[=\8D!&?:#8=1,2I^H0J2Y M'H?@MDDH;>S9\FP[2?HA#AHX(?JK V/W+"1ZNYFN1A0SF>V#Z&#MYE50N;#W M2P6V"MPEK%UMK[#7[N:V(G?WW\]$+A@.!)S.D=4['^%L(MV=TGUH4=E[W$QH MO!7:OSE>PZDT!+@_%WB_:3Z,@O9B/_D74$L#!!0 ( -Q#S5C8DU]1> ( M ),% 9 >&PO=V]R:W-H965T M$$AE>6G:O=!&6L<0( U-VX /B ]N.G=G9@\MDK=2],SX5RR!R@E!@ M;AT#H^41+U (1T0R'@;.8 SI@+O[+?L'GSOELF8&+Y3XS@M;+8.3 HL62OL MC>H^XI#/S/'E2AC_A:[WG5/$O#56U0.8[)K+?F5/PW_8 9Q$SP"2 9!XW7T@ MK_(]LRQ;:-6!=M[$YC8^58\F<5RZHMQ:3;><<#;[HBQ"',-;N$%C-<\M%G#! M3 6O[]A:H'FS""W%<=YA/G"N>L[D&-[H(YA&$TBB)#W -QV3GGJ^Z8&D#?3Y[4NO1Z?[T:Y-SDS#-YY,3R/_G7F6R?\4CE?_ S.5ZB1P";9",)99I+%@097]=4F3Q<4^G43S MU&M(T@CVU2+<:90:]<:/ P.Y:J7M>V8\'2?.>=]H?]S[<77%](93B026!(V. MCF&PO=V]R:W-H965T= M U%%D%8\2],/7 MIDB*/OJTK:^'^;$#9TRJ9)1?'3C8M!@ GQ)._NK,0B4':Y^"\;5: M)6D0! I*# R"?D>X!Z4"$\\VO:&FHZLAUTUJ$T#7OS "BD\NP[G+$7ZFW.D5(' EZ.:39#FNR%-'/V: VV MGGTR%53_XSE)GG1G%]V;[%7"=>=NV#Q]Q[(T6[S"-Y_Z,(]\BY?ZT.L#.&;K ML6YQ4'!IA7^NWH%N&>G"YA^+6E[0T. YJ\TWJOAZG^ M"Q_>QJ-PC32>*:@)FM[<4EXW[-M@H.WBC \6:6/BL:4G"BX$T'UM:_!(GLPTXEMH56+(@:;V"_Q"1U]]SQN=.)QPS7C#^)!%'"7KBOB!',BSM@"J7HR9SPG4DWYHRL6',FL4,HS-_"\OIN3E#KC8;%V MR\=#MI192O&6@UCF.>'?KS!CZY'C.R\+=^EC(O6".QXNR"/>H_RZN.5JYM8H MLS1'*E)&@>-\Y$S\R\CO:85"XH\4UV)K#'HK#XP]Z882PU!%$_ M*YQBEFDDY<>W"M2I;6K%[?$+^L=B\VHS#T3@E&5_IC.9C)R! S.IHJ M/3F^81*A ZNS%V5YH)7S'7@FE&9"(CH#&^TP#;(Z M=;IT"MSN*[B?::S*D2A2HQQ]T!G1DCQMN5%B]PML7<%6XU-_T.L.W=4VSZU2 M_: I%1K]U.7U4BQ(C"-'U4^!?(7.^.>?_+[W2QN9EL :E'9K2KM&2N]PA72) M<(4T3E2Q?H*_KC%_0/XW_ O3H@(@ARFC,5+)25%>[U*Q$6MCVFCR2':F-L%" MFV"1);!&W'IUW'K&N-TL-?O YG!-_F&\#E5K52RA>ELY[>UD_9L2H=&=8YFS M!-9@KE\SUS5V.\4-Z*F=\'HS+'O@DVPT"989 FL$=&+.J(7 MQHCN1^H$;I'K-=5AM06EQ!MLE_@S?_>=:!7:/?P8/3N61$M@#1)];]-_>$8: M/Z:4T#@E&4R$0'D"T3?5:8!DH.K+)W7$E"K594(H7'@0DN\";HF0$"[1^ *8 MK1[[!EA%"ZVB1;;0FO';ZA_]8PO;"9"YCMHDR]A:!1=AKK\5'&>IA-^8:.\; M_;UCOS_P=D])9F>.#L0A-J,6J:Y_L2769"[8,!?\P%ZJ M_^>)YV]OD*]INI M_JY4V(;5]?Q])HP;^K^IMND]?7/SV9IJQR59Y\USN-F'HS/L38.1+8--4C?= MIV]N/RW47WTPD8D2NU&?Q"7GZ@M8@@ESB;;:I%I%"ZVB1;;0FB'>-*J^N5.U M5J)[^^72VR\Y-OO4\"";D2V;)<'NUG6J.F@_%O?8 @H2RWO%>K6^*Y\4-\0[ MZU?^Y;2\\=[ E!?PUX0_IE1 AG,%Z9V=JPWP\DZ[G$BV*"YM'YA4I_UBF""9 M(=<"ZOF<,?DRT0;J_RR,_P-02P,$% @ W$/-6&#)%UO& @ 7P< !D M !X;"]W;W)K&ULK55A;]HP$/TK5E9-K=0U(4!H M.XC4TD[K)";4EDW3M \F.8A5Q\YL!]I_O[,3,JC2:!_V!?OL>\_OG<-YO)7J M26< ACSG7.B)EQE37/J^3C+(J3Z3!0C<64F54X.A6ONZ4$!3!\JY'P9!Y.>4 M"2\>N[6YBL>R-)P)F"NBRSRGZN4:N-Q.O)ZW6[AGZ\S8!3\>%W0-#V 6Q5QA MY#%>]RVED\UW"-P9;O3;C]# M[6=H^1+)M?LEVRIW=.&1I-1&YC48%>1,5"-]KNNP!T">=D!8 \+7@,$;@'X- MZ#NCE3)GZX8:&H^5W!)ELY'-3EQM'!K=,&%O\<$HW&6(,_%7:8 ,R =R#QL0 M)>"8R+5@KL;'-V HXYH\PK,I*3_!O,7##3D^.B%'A GRF,E24Y'JL6]0C*7T MD_K@Z^K@\(V#^V0FAD'YR2, @'+7JF MW? O5""\UP8_D--O"MMW?(,W^*92&TWN1%(J!2G!_QM9B$3F!0>#\13-*_R& M]2FY$H8EK*#5,M]]X'-03*;D^ =0==)6W^[S>^0%@6UUZ,39KG&I"YK Q,.V MH$%MP(O?O^M%P<>.J@R:J@PZ52W$DJ'#U'YFP#9TR0$K,+4U$J;-9$47.3K; MD39Q;SCJG8_]S;ZEEJQH>#%JL@ZT#ANMPTZM,Y:F',@MU8;\G$&^!/6K36(G MR[_7LW+RG\@.#$>-X>C_7D[4=CE!\.IR6K*B:"^KTNKO]; &ULO5=-;]LX$/TKA+98I$ ;?5JV ML[:!Q-G%]I#6B)/V4.R!EL8648G4DI3= /WQ)2E%L61931"C/E@B]>;IS?!) M'$UVC'\3"8!$W[.4BJF52)E?V+:($LBP.&XX3VADFU)I-S-R"SR:LD"FAL.!(%%F&^<,5I&PWM5SK<>*6;!*I)^S9),<; M6(*\SQ=R:)2894$$811S64^O2O9B[O@XPB,\$=F+O'.E45HQ]TX,/\=1R MM")((9*: JO#%N:0III)Z?B_(K7J>^K _?-']G],\BJ9%18P9^D7$LMD:HTL M%,,:%ZF\9;M_H4IHH/DBE@KSCW85UK%05 C)LBI8*<@(+8_X>U6(O0#%TQW@ M50%>.R X$N!7 :9R=JG,I'6-)9Y-.-LAKM&*39^8VIAHE0VA>AF7DJNK1,7) MV4OB^T;ON (WQ*G92ESSN(BDET5*AE" MPZ"?P>W,#WS/G=C;?=V'*&\<#H8UJB$OJ.4%+Y+W#N7 (Z"=.DNJT9Z"ML8^ M1$/?H-8WZ-6W*&6AKS>0K8#_AWZ@.XZI6 /G$",LT8(1*HT)U:NFQG7)[[V3 M?G=>B!Q',+74RU$ WX(U^_,/-W3^ZG+1B<@:10GKHH2O]E1XZ"EOX+>6ZQ#D MC0*O>\6&M;CAZ1PU//"+<^Z,6RI_ 6JH'-4J1_TJ>Z[I[H5&?Z!Y(=$-R(3%O3[L5?92'YZ(K%'$<5W$\:M].#ZP MF.NX@=-:XBZ4[X^ZU]AUGC8ZYW1>K+B:/FL_,=V@P1&A>SNR^[OM^*F0S_1C MO[:7&O)4;,U*>D^5]%[MR8JB\=YSQMZHO=:',#<,AD=V7/>I(W!?UA+TN]+O M,%S8WG<[48/0V?^U=V)[KX/,@&],8RU0Q HJRW:KGJV;]TO3LK;FKW13;SK3 M)YKRB^ &\PVA J6P5I3.^5#MFKQLLLN!9+GI4U=,JJ[7G";JPP2X!JCK:Z9Z MU6J@;U!_ZLQ^ E!+ P04 " #<0\U8X+E-V@D# !H"0 &0 'AL+W=O MT%2$#^MPEJ*T%AVJ9M M0C"VUVYR;2P2.[/=EGW[G9T0E2;M0-J;)G;ON?R>\\7.9"ODDRH -'FN2JZF M3J%U?>FZ*BN@HNI"U,#QGZ60%=4XE"M7U1)H;D55Z0:>-W(KRK@SF]BY.SF; MB+4N&8<[2=2ZJJC\K0IL)=S:IZ0H>0#_6=Q)';I*G-R IJQ4IRA^?+@A)Q]. MR0<3^Z,0:T5YKB:N1F[S=#=K&:\;QN XU4M+TCHG9' "Z(!^?RX_ OE*/>' MY"Y6JRM9T)4LL/FB _F,>X66LK64D!,LRYIGHJI+T#C$>FF)S3GHLTD\LHG- M^[69^7&:>!-WLVNG'Q7XJ1]T4:^HPXXZ/$I]JS3#KD="H)*;M1H";'+$NX!> M%/E[@ -1?C#VA@&C#C Z#HA82">;/AR"BWJ/#491L _7CPI#/SE0O;B#BX_" M?35]OGAIRU?B,\(!SV$ M.^JO9.3O5[0?%(R\ P4==[#C?\ VKPFA2H%6EZ2AQPV"0*]3ATV]Z\T;]SV$ M.QX:H_V@T$O'PT:3SFCR-J.XAR(Y;JR ;KO]\I6S[%@-WN,VZ1DY3]+]91T( MBM)XV&W:N4W_>P^F_4VQWX/]H($>='?.0?,-\HW*%>.*E+!$F7; M@1:U/1H70N-!:V\+_!0":0+P_Z7 X[$=F-.V^[B:_0502P,$% @ W$/- M6/C_455[ @ Q04 !D !X;"]W;W)K&ULC51A M3]LP$/TKIXQ-(+$F)(4QUD:B!30^,%4M;)_=Y-)8.'9F.VWW[W=V0E90J?8E ML9U[[]Z[^&ZT4?K9E(@6MI609AR4UM9786BR$BMF!JI&25\*I2MF::M7H:DU MLMR#*A'&47015HS+(!WYLYE.1ZJQ@DN<:3!-53']9X)";<;!6?!R,.>KTKJ# M,!W5;(4+M$_U3-,N[%ER7J$T7$G06(R#Z[.KZ=#%^X"?'#=F9PW.R5*I9[>Y MS\=!Y 2AP,PZ!D:O-4Y1"$=$,GYWG$&?T@%WUR_L=]X[>5DR@U,E?O';[]CY.7=\F1+&/V'3QEX, \@:8U75@4E!Q67[9MNN#CL XMD/ MB#M _!;P7H:D R3>:*O,V[IAEJ4CK3:@732QN86OC4>3&R[=7UQ835\YX6SZ M0UF$<_@,]S)3%<(CVZ*!XQNTC L#C[BU#1,G%/"TN('CHQ,X B[A@0M!?\&, M0DLB'%68=0DG;<+XG80)/"AI2P.W,L?\-3XD\;V#^,7!)#Y(>%WK 231*<11 M/-RC9_K_\.2 G*0O:.+YAN_PW18%^JNY4U&8,ZKR'#,E,RXXO#=1H-2-QZU]9A&<=Q=#F(HH\G!RP->TO#@UQ/,N?&:KYL+.9P MR[3D^#FHP0VS*U.S#,HU!^NG#V47T;9_#<*+2@,""*,D/=;ANAT:[L:KV?;=4EKK8+TN:LZA= 'TO%/5>MW$)^LF= M_@502P,$% @ W$/-6"GGR,M @ ?@0 !D !X;"]W;W)K&UL?53;;MLP#/T5P@.ACQUFSHG,,-.F&%6B'H-GE8=B# M8C.)4%U^/UA J65E[%XRK>IID01 JK"@P"/[M<(Y*!2*6<=]S)H>4 7B\?F+_ M%FOG6E;"X]RJ/[*F[30Y2Z#&M6@5W=K]=^SK.0U\E54^?F'?QV8)5*TGJWLP M*]#2='_QT/?A"##Z] H@[P%YU-TEBBHO!8FR<'8/+D0S6UC$4B.:Q4D3#F5) MCG;P*[AVIK-B>)^U7#A/9*'#Y=(0BH//_&!6J$^ M%BEQ_L"25GVN69CR7-XRK(/VO.#]CSR?7J%;X%\+"<+ MV2#,A1&U&, UU?#W!O4*W;^7!+Y)&"[ N6]$A=.$)]RCVV%2OG\WFF1?WI [ M/L@=OREWUGKV> ]SJU?2B#"5 U@2-G!1W;?2R\[SE=?T"%>&D$402-/M.\0! M>RO5UM)L8-FN/-ZWX<">P;DK%3OY1KW4@$[B6908+NRNS(:G1;H[KBL]&J=P M,V^$VTCC0>&:4=GP\VD"KIOVSB#;Q E;6>)YC5_4$L#!!0 ( -Q#S5A<)T*@. ( P% 9 >&PO=V]R:W-H965T M.W,SM"[3%JEGTV%:&%7"VGF065MUCL]:T"@>6G-!_PC6-K#N;@G#PI]>P6M_D\B)P@%)A9Q\!HV.(-"N&(2,:/GC,84CK@X7S/ M_L%[)R]/S."-$M]Y;JMY\"Z ' NV$?9>M9^P]^,%9DH8_X6VBYW- L@VQJJZ M!Y."FLMN9+O^'@X VBB"]S#'_'1^2D\%. MO+>SC-\D7#3Z$D;1.<11/(;'AQ6<>O\.Z]'[/8(:<>Z7I@ MF\;T2\+MD7SC(=_XG_*= _4=598$W&45DR5"/V!14&$?T],Q3P[T7$RBXW(F M@YS)?]N?_&W_:O:G_?"@0FO4I>]# YG:2-L5Z[ [M/JBJ_!?X=T[<<=TR:4! M@05!H\L9"=!=[W4+JQI?[T_*4O?X:47/%6H70.>%HIKO%R[!\ "F/P%02P,$ M% @ W$/-6'#$::I] P ;@P !D !X;"]W;W)K&ULU5=M;]LV$/XK!RTH$B")7OR:U#9@.^W6#\F,N.U0#/M 2V>;B"2J M)&7'PW[\CI0L>ZBM&.T0;%]L\<2[>YZ[(^_46POYI):(&IZ3.%5]9ZEU=NNZ M*EQBPM2UR#"E-W,A$Z9I*1>NRB2RR"HEL1MX7MM-&$^=0<_*)G+0$[F.>8H3 M"2I/$B8W(XS%NN_XSE;PR!=+;03NH)>Q!4Y1?\HFDE9N927B"::*BQ0DSOO. MT+\=^0VC8'=\YKA6>\]@J,R$>#*+#U'?\0PBC#'4Q@2COQ6.,8Z-)<+QM33J M5#Z-XO[SUOI[2Y[(S)C"L8A_XY%>]IVN Q'.61[K1['^!4M"+6,O%+&RO[ N M]WH.A+G2(BF5"4'"T^*?/9>!V%,(;HXH!*5"8'$7CBS*.Z;9H"?%&J393=;, M@Z5JM0D<3TU6IEK26TYZ>O @-$('KF"J1?AT90A&,!8)95TQ&[?S.]2,QPH^ MXK/.67P!9\!3^+@4N6)II'JN)AS&FAN6/D>%S^"(SP;\2 M_HI$L"4Q"FH-#C-Y#0WO$@(O:,*GZ1V(-;\A=H13J^+4>C5.GU%I),%#GLQ0 M@IAO4_D"J=:II-H5J?:KD7H0Z>H[>;5/Y=6I>'5>C1==O7/DYE0IH-L&WCUG M7%IK>U7Y$L/.J0R[%,,WOSDM[VW-3?:387_YL?P5^6T3?E[7=FO)4E=14L>F@38ME-;2?6VOK.4 M_&"'-?AO%%.)8[^:NMZQ4.^:NU_?W?]%^&6]F$F@%!<3U!=D\G#IU$/SR0.3 MT(6DF)?\ "*V.3C2N'LC8()R80==!:&)9S$-5M)JF!X6(^1N>S&)WS.YX'0 M8IR3JG?=H @ V04 !D !X;"]W;W)K&ULK51-C]HP$/TK5KJJ=J7N)B24W=(0B8]=M0<_O#9Z)]U)M= Y@R($70@^\W)BR[_LZS8%3 M?2=+$'BRDHI3@Z%:^[I40#,'XH4?!D'/YY0)+XG=WDPEL=R:@@F8*:*WG%/U M>P2%W ^\CG?M-;%.EE)N;/ Y&WB!%00%I,8R4/SL8 Q%88E0QJ^:TVNNM,#V^LC^ MY+RCER75,);%=Y:9?. ]>"2#%=T69B[WGZ#V\][RI;+0[I?LZ]S (^E6&\EK M,"K@3%1?>JCKT (@SVE 6 /"UX#N&4!4 R)GM%+F;$VHH4FLY)XHFXUL=N%J MX]#HA@G[+RZ,PE.&.)-\D0;(/;DE"R/3S:VM2$;&DN,KT=05^L+1X\&N@5Q/ MP%!6Z!M,?EY,R/75#;DB3)"ON=QJ*C(=^P;%VBO]M!8VJH2%9X1%9"J%R35Y M%!ED+_$^FFRGH_ BX;!4=R0*WI$P"+LG](S_'1Y=D!,UA8\<7_<,WQRT M42PU6%-77_)C"GP)ZN>I4EVDLHW>UR5-8>!A)VM0._"2MV\ZO>#C*9__B>R% MZV[CNGO1=?LII>VG!-53.F6^8NPY1CN4=DD8/L3^KNWI5,Z')J>2ZK>ZA(-: MN^&A4<96F.H9-;O-?!JZMGRU/\*Y58V9OS35T)M2M69"DP)62!GO%I338V6Z9X^P%91/P?"6Q'^O 7M!,\^0/4$L#!!0 ( -Q#S5@, MA-O ZP, /4/ 9 >&PO=V]R:W-H965TE\2Z\",_4J+(\8:+9[D"4.0E33(Y<59*Y3>N*\,5I%1V> X9KBRY2*G" MH8A=F0N@D1%*$S?PO(&;4I8YT[&9>Q#3,2]4PC)X$$06:4K%ZRTD?#-Q?&<[ M\87%*Z4GW.DXIS$L0#WF#P)';HT2L10RR7A&!"PGSLR_F?M]+6!V_,Y@(QO? M1%-YXOQ9#WZ.)HZG+8($0J4A*/ZM80Y)HI'0CG\J4*?6J06;WUOT'PUY)/-$ M)+U&KBC!P2P9(6B?K"-S]!1<@8&/)$FE^RJ?9Z#@D+J7A:":,%*!8@6XET#5$2\L,K3NJZ'0L^(8(O1O1](?QC9%&-BS3 M85PH@:L,Y=3T5ZZ #,D562@>/E]ICT1DSE,\)I(:1U=+Y'-NAC/M=Z9>R?D= M*,H2>8$['A=WY/SL@IP1E\@5%2 )R\ACQI2\;$S\MN*%I%F$DV=[X[&KD(NV MR TKNV]+NX-W[.Z2>YZIE22?L@BB%OFY7=X/+ N.K'V9+#UY&U@19SEHD.Z MWB4)O*#79I!=_!>:H;C?)KYG3K<.;-?@]=[!^_22,X&QY(+@95\"4Q!=$FZ" M*,DY>K^,RT6;[TOHOH'6B6 ]]<;NNDG&JESGGAN9TQ F#B87"6(-SO3[[_R! M]X.%6J^FUK-26VC#KV[-47V@KYA4%)D)0;,8]/?E]JC^=0_I$XB_VQA:-1QO M?^F,#P+;0(1, LD%"\%0C7B24"%)#J*DW7AN M1QAM$3"AOD78\\*H]L+H>"_0.!804WRD&')F6#Z$9$V3 MK(EKB#1H2'!]%] MNV-0[]@S]KHV]OH_TFQY&H_/K==O+M^5?V"E5>6)9]#W=A6!=RREC[M\E<[F M[1MT1H>7SV[9J93N^93F04[9L&WJP8J;%LY8%=_ M*KU=K>.?4NQ\X.GMMKT=W>M#+WR+JLC?E46^O2XZI12H(/=J@<-TU+8G:$^; M_JYL\;^B;OG 2/6/BU3KMD8Q4+)R&XU5"B(V_:;$][?(5-ECU;-U3SLSG9R[ MVUXVQ/=4Q)A&2 )+%/4Z0[1 E#UF.5 \-VW:$U?8])G/%?;E(/0&7%]R;-6J M@590=_K3?P%02P,$% @ W$/-6':*%>EX P R T !D !X;"]W;W)K M&ULK9=;3]LP%(#_BI6A"20@:5I:RMI*4':5V!", M[6':@TE.$XO$SFRG9?]^QTX(H2MNU_'2QI=S^<[QY7BT$/).I0":W.<95V,O MU;HX\7T5I9!3=2@*X#@R$S*G&ILR\54A@<96*,_\, CZ?DX9]R8CVW\SR,1B['6\AXXKEJ3:=/B344$3N 9]4UQ*;/F-EICEP!43 MG$B8C;W3SLFTTS4"=L8W!@O5^B8&Y5:(.]/X&(^]P'@$&43:J*#X-X0_Q4WL<8-8$*'P)U%CH5GA;RD'2#?1(&86^%/U.W^"?*4;RS M2OR).]TF;UVKK_>,OB^E5AI#PWA"=C%451#W5@6J4G1D%9E=/9^$87?DS]O. M.XV9H^1$%32"L8=GA0(Y!V_R^E6G'[QQH/0:E-ZF*/MD8?<=KB$Z!XGG""EP M38%%C$664:E( ;+"74E;V1JT:(>'W65;X](DD9!0W(.,X^[! MTS$B(ESF=GFS)>=QP'CLYO^$Y;.!X3)A2Y?JT':]-F]/@ MECC#!F?X;S@OD,#AV@0Z?=J2N!,\WLF!DQD+E!DP0R@DUDJ:2?S$DHUH>H\W MY9I\ULI="77;WY:O57-T_I=OLT36=ER9=+NR+6KXB!J^U#U=:W)?U&YSV^(\ M5AV=CN-<4)G@E4TRF*%H<#C U,GJV5 UM"ALY7TK--;Q]C/%IQ9(,P''9P*K[[IA M##2/M\D?4$L#!!0 ( -Q#S5B(8$-AJ , $+ 9 >&PO=V]R:W-H M965T4K"JV? 'VQ1:',\-S#CGDS+92O>H,T('/"G25YTS]6J*0V[DW\':&[WR3&6OP%[.2;7"%YJ5\5C3RVRP)S['07!:@ M,)U[#X//CX/ !CB/_SAN=><;+)6UE*]V\$\R]P*+" 7&QJ9@]/>&CRB$S40X M?C9)O79-&]C]WF7_RY$G,FNF\5&*'SPQV=R;>I!@RBIAOLOMW]@0&ME\L13: M_<*V\0T\B"MM9-X$$X*<%_4_>V^$Z 10GOZ L D(]P.&1P*B)B!R1&MDCM83 M,VPQ4W(+RGI3-OOAM''1Q(87=AM71M$LISBS^"8-PA1NX0M3!2\V&IY1P2IC M"N'Z"0WC0M_0],OJ":ZO;N *?-!V5@,OX*7@1G_J&/[-9*59D9#QZL-XYAM" M:]?TXP;9LD86'D$6P5=9F$S#ER+!Y&.\3RQ;JN&.ZC(\F?"A5'<0!9\@#,)A M#Y['R\.C$W"B5OG(Y1L>R;=DFL=P32+5\MWT252G&+D4MB+?%I/[8#SSW[JX M#YVF03!LG3Z@&[;HAB?1/7%1V0(#3%.J.) IX,^*FU\0RYSN$,U<%9:"%?H< MB>$!OL$HV.-PZ!/T$QBU!$8G"?QP!8P)L#=4="%9W+GXS+J%WW2BC[YOZ)ONE. ;ND,E1W>#Z1[20Z=;\CI2W8/@SXL 9NCU]NQ+V]^Y)N5/ MFKHY_,K4AE,9"4PI97 WH7.JZGZK'AA9NI9E+0TU0.XSHQX5E76@^512V](, M[ )MU[OX#5!+ P04 " #<0\U8QJ9YT@L= #H/O^"0X&.38^/Z56M'FLX-GH/MY*WCXQ?\]DN6 M_[%\B.-"^[J8I\O?3AZ*XO&7L[/E]"%>1,LWV6.9JMBGJ3QAUQ;KA:+*/_V/IYG7WX[ MZ9\\?^-C_?V,;J/;^+B]\?G5V8LR2Q9QNDRR5,OCN]].KOJ_ MA/W>N-ICO/CM9'*BS>*[:#4O/F9? M[+B^1>L#G&;SY?J_VI=ZV]Z)-ETMBVQ1[UP>P2))GSY&7^M[8F.'P>"5'0;U M#H-#=QC6.PP/W6%4[S#:VJ&\:>T[C.L=QH>.<%[O<+Z]P^B5'2[J'2ZV=WCM MD";U#I-##^FRWN'RT!WZO>='KK=]/[UV*_HO#_;!CW;_^>'N'_QX]Y\?\/[. M(_[:O=5_?LC[VX_YZ[L\/^A/O_!G3[_QZS\7/2JB=V_S[(N65]N77O7)^F]N MO7_Y5Y*D53[<%'GYTZ3#+\]4WU\6+X:_53D]\:_ MOI%_^H_-+]^>%>715\=P-JV/U'PZTL$K1SK41)86#TO-2&?Q3-[_K+S5+S=] M\'S3WP^4X$W\^$;K7YQJ@]Z@K_U^HVL__>/GEN.Z5C-7CWG)C/8R^@%',^A5 M3'^B8 PUXZ[F)3-9,^=M=_(!-V:X/HK!2'$45A?FRBB9K5^<-M3N@AK6AQK= M^(5K4YTNZO75:[?8W7._1VG)]/?><=Z>HUG=OS##EMU]]>Y!]OGEQ@P41R'4 MC(CREZ-0,8&:T>/I"],__ $+]_V&IR^W\3!52H?A2S .U\.,7CWX,@_+S-/\ MN)Q]:.'M/+F/JAE-RQ&_5U+5%.^7Y6,TC7\[*>=PRSC_')^\6Q_KKVUQ0V(Z MB1DD9CYAYVNLFL5^?C>X&/9Z;\\^;^8,.:1-8@Z)N2UWQOAB^\[PR"%]$A,D M%I!8"&%2AHQ>,F2DS!"__%K+[K3K/)XEQ:EVO9F7:"(J5GE2 M)/'R5#.^3N>K69+>EP&3%P_:U2+.DVF4:A_CS]G\<_6#:GK3ECG*P;MF#HGI M)&:0F'F^\W=VWKO<^O?;(D>T2JO^_7R7S*E>6U7*P']]&:36+^12G:;QW,;Y_[0E MBW*(KLE"8CJ)&21FDIA%8C:).23FDIA'8CZ)"1(+2"R$,"FI)B])-5$GU3J' M3C4S2:-T&C\]Y:H2JIPO58LY65KDT;30?OJO.,K;%K#?*_VN,:4^V/Y8^U8> M1MOK:3IY& :)F21FD9A-8@Z)N23FD9A/8H+$ A(+(4S*I,N73+I4_IG?1/,Z MB&ZCZ1_:ISQ*E]'T:0'H*DU7T;Q\7I86Y8N%*E'ZII$M3;9B*+>F][6PJV.CFF@FHEJ M%JK9J.:@FHMJ'JKYJ"90+4"UD-+D7-IH,O:/R:5@52TG5<_#8_*HG"#%7\J)TGH]Z?4U)#7>.8?4AZI81$*/PT U$]4L5+-1S4$U M%]4\5/-13:!:@&HAIW$?WL;8^1_\F+G,GGFFWWS:ZDB)*5W?1M&IMI_>:&4V3>5)\ M4U8HU8-VCBBTGHUJ!JJ9J&:AFHUJ#JJYJ.:AFH]J M4"5 LI38ZRIOO=5Y>_ M/\:/=2VI>AWN.:CF MHYI M0#50DJ3PV?0A(^Z:WT=I=$L*9]KR:_O*2=):!<J-!:S*AI7%4LU'-0347U3Q4\U%-H%J :B&ERCO5C+N[>/V^97NN7Z(>IG/2 MH'UO5#-0S:RUZH(1Q<9I?Y?][:PY;#O[P.V< [=ST5OKH9J/:@+5 E0+*4T. MB:9_/5#WKY]"8KE@EL5#-0 MS40U"]5L5'-0S44U#]5\5!.H%J!:2&ER?VX/IB(6F1I*MXIH6/+;3UM;*S M.ZW\;IE(Q;=3[<,\JA9YJLF7\>7Q:\_F4%=&\-9S0BO-@]P+9ESN3>AT= MTT U$]4L5+-1S4$U%]4\5/-13:!:@&HAI!Z:_OAAO:T(=N:-][([.L3NZZ#WFH9J/:@+5 E0+*4V. MF$$3,>JJLXB^[I_[H-UF5--1S4 U$]4L5+-1S4$U%]4\5/-13:!:@&HAI]3M(=[_9V%KM5[=@XD]7$,7ST. M ST.$]4L5+-1S4$U%]4\5/-13:!:@&HAI[I6X_,% MK:MS3Y]6DMYG>8FN+^<8E<=1_JPUDUI:Q9.=ZZ)?JP^F

-])8?6HVR<9]0;C[?Q!Z]>H9J":B6H6JMFHYJ":BVH>JOFH)E M0+60 MTN28:NK70W7]6HXIY=NAJ:7.*T;H!:=1S4 UL]8VYV[CXFL M-6S0FC2JZ:AFH)I9:_);WFZ?^7[(1O8A&SF';.2BM]!#-1_5!*H%J!92FA0, MHZ:J/%)7E5\-AN=+R!^V^J(>I6LNH)J.:@:JF;4F34)VUH\L=$P;U1Q4^+*X]M?V.U3X6?F?#U%>O9&% M\M5S]0%TCB&TG8QJ!JJ9J&:AFHUJ#JJYJ.:AFH]J M4"5 LI38ZU01-KZL;S MZU.HZ#$IHKEF?'V,T_)'JW)T[6/Y9*M,M>HD^;97IM_7@ZEG!-?J0^H<36CG M&=5,5+-0S48U!]5<5/-0S4[>D\OQI-V6*1I=I-D4W_ M*"/I<95/'ZJWO=^;3L.==!JVI!-:;48U ]5,5+-0S48U!]5<5/-0S4*6N-KZ>3F7RM7HI_B/+[ZB*,G^.\>LN,C]65A/W^9A]G>]WS6GU4G=.)U Q4,U'-0C4;U1Q4J1N#ROF3I_C-$J+=4NZ>F/5]\XG_>HIGDZUYVM__)[.\NA+JEU]CI)Y M=+O>5[O+\C+VK(]/L];,VBU$#UHR"RUAHYJ!:B:J6:AF MHYJ#:BZJ>:CFHYI M0#50DJ3,ZOI:H^.[&KK\5VTFA>GVM6L_$&2I=%<+C*U M1M-%2R>F-]B.)K2?C6H&JIFH9J&:C6H.JKFHYJ&:CVH"U0)4"RE-CJ:FGSU2 M][,/KS*\7R^K1QOO]EI^\Y +1*J/H'.7 >UUHYJ!:B:J6:AFHYJ#:BZJ>:CF MHYI M0#50DJ3;WZAFH)J):A:JV:CFH)J+:AZJ^:@F4"U M9#2I#@:-^WTL;J=_KW3 MK .N1:D^@J[3+%334>NJUWJ MX^L\#4/K\:AFH)J):A:JV:CFH)J+:AZJ^:@F4"U M9#2Y-1KZO%C=3T>F(8- M#WE147T8G>,([<.CFHEJ%JK9J.:@FHMJ'JKYJ"90+4"UD-+D.&KZ\.6G_V\F M8>6W-MH3U>;EU_^[6CY=\:Y:3ELGX$NMHKXNC'(.I[QYG>=PI*:CFH%J)JI9 MJ&:CFH-J+JIYJ.:CFD"U -5"2I-#LZGICSM>N[S['&[BCFHEJ%JK9J.:@FHMJ'JKYJ"90+4"UD-+D0&H:^F.JH0],PW[$ M8AI:_TFO8@EX&U/U*)VS"VW_HYJ!:F:M;;YQQ&!TL?-.&NB@-JHYJ.:B MFH=J/JH)5 M0+:0T.90&32@=>6GZC_$B2M(JC Z,);2>CVHZJAFH9M;:9BSU M=R_B:*&#VJCFH)J+:AZJ^:@F4"U M9#2Y%AJ>O?G1UZ6WEI%>906<3S3KA;9 MJOT-3]5XYRQ"N_FH9J":66N;6;3[?J?HD#:J.:CFMMP=_9UW&D.']%%-H%J M:B&ER0'3-.G+3Y4!$Q=%G"\W,B9<%JKW3[31/);#:/-2-: MEK.I5+M9W2Z361+E2=6GZJM?@T-+Z*BFHYJ!:B:J6:AFHYJ#:BZJ>:CFHYI MM0#50DJ3$Z\IH9\?><'XCJ_!D3W8:U334\E M#]5\5!.H%J!:2&ERN#0][7-U3YM[79_LBEZCFHYJ!JJ9M;8YU>E?[DYUT*XV MJCFHYM;:6'E_>.B8/JH)5 M0+:0T*6TNF@[VQ?=UL+]S(6F@7$A2'UO7A$(U M'=4,5#-1S4(U&]4<5'-1S4,U']4$J@6H%E*:G'A-F?OB;RESJT?IG%UHF1O5 M#%0S:VUS=C4^WYE=[7D,MQ>2!KTWX]8P0DO+NN)*D'J9S&J$=;E0S4,VLM9UUFG/E2M)1>]E'[>4+WDL>JOFH M)E M0+60TN1P::K8%WNJV%EZ_\\R1A;K3M*I=KW*\^J:)2(J5GE2K)^@&5^G M\U75G)2OH;+]A+ U<]"N-JKIJ&:@FEEKTOK2[@0([6JCFH-J+JIYJ.:CFD"U M -5"2I.CJBEU7RCKFMRBMWJT+=7G[^Q>]C?MOCX6TUJU>Z$:[WZBFHYJ! M:B:J6:AFHYJ#:BZJ>:CFHYI M0#50DJ34Z[IB%^H.^+8VA):]T8U'=4,5#-K M;7OEYG*\/:DZ;#O[P.V< [=ST5OKM8\ZZ$WD47UT5(%J :J%E";_^3>%Z8L] MA>D?O/J#%JE134D.V-%BW.WKK=L=Y;_SK&ZW\3=P^4T@.FJ9T MAHUJ.JH9J&:BFH5J-JHYJ.:BFH=J/JH)5 M0+:0T*>_YA=CY-W7PIM^61>A!N:CFH9K?\AAM/4(" M'3#H_ A-W@S:HH4Z*CE:FO[TY,C^=,=E9?4PG;,%+5"CFH%J9JU-I'76?G\[ M7 [9RCYH*^>@K5ST5GJHYJ.:0+4 U4)*D\-AT(3#GC[SCUUT5H_>.3/0FC.J M&:AFUMJ>^0AZH6I4J$O/W[_" MF)NC2-K?N@76A4TU'-0#6SUO;6"0_< MSCYP.^? [5STUGJHYJ.:0+4 U4)*DT.BZ1Q/]G2.?_#Z#UI%1C4=U0Q4,VMM M\]^K436=^2&+06@W&M5T5#-0S40U"]5L5'-0S44U#]5\5!.H%J!:2&ER[#4=ZLG? MU*%6C],YO= .-:H9J&9.=CO4X]TW*D+'M%'-036WY?XX;WF9#>U0HYI M0#5 M0DJ3TZ8I4D^^NT@MRM"I%J&5,R6T'(UJ.JH9J&:BFH5J-JHYJ.:BFH=J/JH) M5 M0+:0T*;LNFW+TY9'EZ(XKV>IANH87JNFH9J":66L=+[IXU%[V47LY1^WE MHO>2AVH^J@E4"U MI#0Y7)IZ]*6Z'EVM>Y=!LBSRU2).BZU0.=5NBO+#K$J6 M:?GCZ+YUG5L]1N=D0;O1J&:@FEEKVW^WH^W7R [NJD'J5S1J!=:%0S4,U$-0O5;%1S4,U% M-0_5?%03J!:@6DAIK+/9>4IIXZH75I5--1S4 UL];V767+.G [^\#M MG .W<]%;ZZ&:CVH"U0)4"RE-#HFFEGRI;"(>,L'Y=[G!0_4\Z.ISG)=/@M0S M';)&>8UJ.JH9J&:BFH5J-JHYJ.:BFH=J/JH)5 M0+:0T.<2:NO/EWU-W5@_3 M.;S0NC.J&:AF7K;6COO]G:61]^[/JRN'K8SJ&!]IQ1S4 U$]4L5+-1S4$U%]4\5/-13:!: M@&HAIUJSG!G'0GM0*.:@VHNJGFHYJ.:0+4 U4)*DP*IWVM* MT-7GWSF_NBZC*H_F95BE?U1KX<:?U;7O?[I^;_S\M/K=<5EKSR%U#3&6TUG. M8#F3Y2R6LUG.83F7Y3R6\UE.L%S 5>?R/W.A:T.T_%]HS0/<;0?C;+ M&2QG/G/;\[&=U_78<6V6:F!VP M)K;GD+HG&MHF9SF#Y4R6LUC.9CF'Y5R6\UC.9SG!<@'+A1BWE7O#C=Q3=\N) MB1E:*V4,EC.?N;T+9>RX-LLY+.>RG,=R/LL)E@M8+L2XK8 :;034Z'LG M9C?2*Y+M&:4SENUH>WU7Y]G M7WW_K&'>O7V,[F,1Y?=)NM3F\5U)]MY: M908 %,K 9 >&PO=V]R:W-H965T/ OY+5XSIM V"GE\V5DKM3GO=N/%FD4T/A,;QO4W*R$C MJO2A?.S&&\GH,@N*PBYQG$$WH@'O3"ZR_'\&\MOJ)_B+4089W_1 M MT#MVA'X>D-UZ=W?O&7$>571R(<4SDNG5&BW]D+&?16N^ IX6RH.2^MM QZG) MK5 ,80>=HFNF^8[1>X\I&H0Q^LRV*J'A!_0.!1Q]7HLDIGP9GZ!??\']D?OQ M+/T_=#^FW]X$8:AECR^Z2N>4(G<7^?A7N_')@?%==".X6L?(YTNV-,1[]GA, M+ !=34;!"'EEY(I8$:<;>89$?TW5L0/LF0'35?(\WM %N^SH93!F\HEU)OJ^!\Y'DR*08!XDF \$5E&E M5ZC2LZ%/K@5_/%5,1LAC/I:>)@-G/+[H/NTK8\VPK3*08'XS_9XSQ$7Z%<;[ M!>-]ZSR8QC%3\1N5WX>L?$@P#Q+,!P*KZ# H=!A8*_].ZA"4+]AQ14D:*6"GOE;:QVO-(22:GZ/MO]EB[!Z@L'1X MV&I5ZA0V"_($T94V&VBZ6"11$E+%EMI-:%,1_$?3UI"1:]>PB#IUKD'='2B: M#X56%:4T>-CN\!KKA+_=,!X;[1HV^;4&UT=([9;QB/4-M Y^@H&=V4%;RPMJ3J'0JO*6+A9; MO9AEFI?6"5AA>T(_:#]F=OC66H/:8BBTJM:E,<9V9WP3\"!*(O3UAD5S)LWJ M0!K4&2B:!XKF0Z%5Q2A=-G[#9C.]>.H95YN 6>7K2383/.LBH??_,"I-/VE< MO3$ 1B\ZTJ@*J/L&1?.AT*J_=)4^G=A]^@W=OCE%[!!MIP@HF@>*YD.A5<4H MW3ZQN_T?GR)O#. ZV1PQ/D?LH:UU >T&0*%5=2F[!L3>-9C.$^2M]8L"ND[? MOS)9[#,&TL?/0-$\4#0?"JVJ3-F,(/9FQ.N,:?C?*>=)^L)&7Z(#O? <>=_A MN@T;;!^^-?7VFZEOJ\!GQ$CYSV@UD++50.RM!H\M9#8! EZGW6":CC)A\S'9MQF@A$JYVN^:*L\7.T&FV'[)V_@J?SW;[.TN8 MW7;3&RH? QZCD*TTI',VU$4O=SLX=P=*;+(MBG.AE(BRCVM&ETRF%^CO5T*H MUX-T@&(?[>1_4$L#!!0 ( -Q#S5C226Z/@@, !0, 9 >&PO=V]R M:W-H965TKH Q:\EP?&F,!NT[K>+Q^L'Z.^>\<69%%%P)]C==Z]T\F 1H#1NR9_I6 M''Z#QJ&QM5<(IMPO.C2R48"*O=*B;)0-04EY?25?FT <*>!T0"%N%.+G*B2- M@HM<6),YMZZ))HN9% $.Y/<:EEN8I-7IZ\5%H0#A"(_0' MF&@HLUCNJXJ!.2I-&+HDC/ "T-+EU'M>)XX]@%M@1,,::?&@^OH:-*%,O3%& M[I;7Z/6K-^@5HAQ]VHF](GRM9J$VS/;-8='P7=9\\0#?127/4!*]17$4IQ[U MJ]/JOQ-NU+%//321:L,5M^&*G;UTP-Z-- 4D]3=DO$&_?MG3RL;)^,M!^YRK MK67.FJVH^T4RB3&>A??'/GBD\BR.6JDGJ$F+FIQ$?4>Y.SEF#P3=P/9%!H(Z;D'' M)T$_"5L4&R\N!6]^C_OABI(.IT=F**192YJ=)/W3Y*DI5+ZMJ_,MO.7-G\G[8PF;]U@F:9>W+S/%J1]WTN). M7HA[,F MMO(_67OJ_E%7QB_K,ULIE+^-XGZ2I]/.6?F$AC(+/_9$?+HI7A3%OMS7T\ : M3#P*6H\(%IZ4IGKI?^Z&ESON(8W&6;TGW<+ MPB.4)MV""(]&-CLO?R!R2[DR=;DQ6M%9;ER5]0A:;[2HW!2W$MK,A&ZY,V,[ M2"M@GF^$F>2:C1T,VS\"B^]02P,$% @ W$/-6.0PF:@4 P ^P@ !D M !X;"]W;W)K&ULC99M;]HP$,>_BA7M12N5YCG0 M"I!:V+1*ZUKU87LQ[85)#F+5L9GM0+=//]L)*07#]@;LR_W/OSO'O@S77+S( M$D"AUXHR.?)*I9:7OB_S$BHLS_D2F'XRYZ+"2D_%PI=+ ;BPHHKZ41!D?H4) M\\9#:[L7XR&O%24,[@62=55A\?L:*%^/O-#;&![(HE3&X(^'2[R 1U#/RWNA M9WX7I2 5,$DX0P+F(^\JO)R&@1%8CV\$UG)KC$PJ,\Y?S.2F&'F!(0(*N3(A ML/Y;P00H-9$TQZ\VJ->M:83;XTWT3S9YG^@"Z?W S0A$LETBIY+7$K)!# M7VD,$\S/VR4GS9+1@25C=,N9*B7ZR HHWNM]C=_E$&URF$1' UXMQ3F*@S,4 M!5'BX)G^OSP^@A-W)8UMO.10O(H+1?Y@^U[S.7JX>T982E#.6C6Q,AO+'-+5 M.!X,_=4V_KY+&G;$CPCE"@"3LHF7+J%$.U M[GL<8$P[QO0HX]T2A*XA6[2$N7DA76SIWLI)FN[0N7PR-U_6\65'^1Y+ODU*A.6\ M A=:?V_98 =LWZ,7!6ZP00O'U[8+[=@GID\[[%<7EY,+EST,+B=-8_??%FX^ M"VZQ6! F=5)S#1&<]_5VBZ;3-A/%E[;WS+C2G&ULG95O;YLP$,:_R@GU12MM@4"2=542J4E7K=*Z51*E\S25*]"4VEDF1>5(HRC:!26C,M@.O9K=WHZ5FLKN,0[ M#69=EDS_G:%0FTG0#[8+]WQ56+<03L<56^$"[4-UIVD6MBX9+U$:KB1HS"?! M9?]B/G+Q/N 7QXW9&8/+9*G4HYO<9),@&J8-VZQFBX^P)7"KI"T,?)$99B_U(>79)AMODYW%KQI>5KH'2?0!XB@> M=/#,WRY/7L%)VMHGWF]PQ.^:2R93+E>0NBK3-Y93H0WD6I60^TT$X>O;5;S: M?.3-W@?OI]8M9O'F8<'1(/A8(^Z(V9TWLT]:KE';^2NT4!PMN2"6]Z-.3HXZV@/ M\C"B'W_>@PQW.DF)>N4;K(%4K:6MO[-VM>WAE[YU[:W/J+?7K?B_3?UCN&5Z MQ27E@SE91KU/5#9=-]MZ8E7E^]526>I^?EC0_PFU"Z#]7%'/:B;N >T?;_H/ M4$L#!!0 ( -Q#S5C;_L]L(P( #\% 9 >&PO=V]R:W-H965TL0W5;MHTD.8M4_ M,MM ^>]W=M*(3<#4?$CN['OOWG-TSO;:O-@*P)%7*92=1I5S]2VEMJA ,MO3 M-2C<66LCF )W(]Z83"C'4O))2C+M2(&UM/H+KF=#7U]*/C) M86^/8N*=K+1^\N!Q_,;^$+RC MEQ6S<*_%,R]=-8W&$2EAS;;"+?7^$[1^@L!""QO>9-_4CD81*;;6:=F"48'D MJOFRU_8&%^-;#X(5@,:Q7'E?\J3,[C+ M$>?R1^V )#&Y)E\ S5D,GH,3**_9#@S^F&:'? ?!7RU=F-EQ9)%XC+NZ-D,&ULM9AA;YLX&,>_BL5-TR:M!9,$ M2)=$VEJ==J?N5*W=[;4;G@1K8&>VTZS?_FR@0"%Q$+F\26SCQ\_S\Q]'_WBV MX^*G3 4^IVE3,Z=1*G-E>O*90(9D9=\ TP_67&1$:6[8NW*C0 2YT%9ZOJ> M%[@9H0VRXAX_@PIW\T=[+P,?*/K1)D!=S';D#7< M@_J^N1.ZYU:KQ#0#)BEG2,!J[GS"5]=^'I#/^)?"3C;:R* \^5T$^ICE.+ M?[@"A#UT@6Y![X;4C:]$;0555'?XJAA&MY0\TK08?'<#BM!4OM=SO]_?H'=O MWJ,WB#+TD/"M)"R6,U?ITDP"=UF6\;DHPS]0QJ>-N$0C[P/R/7^\)_S:'OXW M83H<[PMW]894N^)7N^+GZXT/K*??$*020$R/HXPSE4@$+*9LC72JK7[?JVP? MD#Y2@BCS+,VW[H RM!/(&S M>/L'#KR/%N)113SZ_XA7E!&V! MOD6S2X/6C%JVUGH&TXXIVW(OV&8@PF!"W M*8-^NHX[G#C$XQ:IM9:!I).*='(ZZ7$])QW.45M/:QT#*8.*,CB1,NRG9[!' M3P^W2*VU#"0-*]+P=-+C>H;'];36,9 RJBBC$RFC?GI&73V#2?MWUUK+0-)I M13H]G?2XGM,.Y[0%:2UC("3V:I?AG8@Y[2=HF>>5HG[45M1>S5#:AJ?"I],> M%[7,TF3UVJ#60H:"UC8)]_-)!T&-I>LEJ]]!'4_;K["]F*&PM4/"_2R2%;:' MJEUOU%'U'-X(U^8(V]W10P+Z'^%*@>@I7M<%!=/(;T.=PP;AV@=ANQ%J0O40 MJ6MX.B*=P_#@VO%@N^5YX(JD!0':D&?]SUK)GG+M,3D3?])VK?;\0_EJGX/M M1F<_7P_ENM8&XU&;[1SF!M?N!MOMS2U(>85(QK=,(0%Y#I:K1IE^04&JGDIV M[#V36JX0OQ*QIDSJW"L=Y5V&>F]$<2U7=!3?Y#=;CUPIGN7-!$@,PDS0SU>< MJY>.N2RK+D<7_P%02P,$% @ W$/-6'5B8!-5 @ OP4 !D !X;"]W M;W)K&ULC53O3]LP$/U7K(@/(+'F1],64!L)RJ9M MTB;4CNVS22Z-16('^]JP_WYG)V2!MFQ?$OM\[_G=2^[FC=*/I@! ]ER5TBR\ M K&^\GV3%E!Q,U(U2#K)E:XXTE9O?%-KX)D#5:4?!<'4K[B07C)WL3N=S-46 M2R'A3C.SK2JN?]] J9J%%WHO@978%&@#?C*O^0;6@/?UG::=W[-DH@)IA)), M0[[PKL.K96SS7<)/ 8T9K)FMY$&I1[OYDBV\P J"$E*T#)Q>.UA"65HBDO'4 M<7K]E18X7+^P?W*U4RT/W,!2E;]$AL7"N_!8!CG?EKA2S6?HZIE8OE25QCU9 MT^4&'DNW!E75@4E!)63[YL^=#P- &!\!1!T@^E_ N .,7:&M,E?6+4>>S+5J MF+;9Q&87SAN'IFJ$M%]QC9I.!>$P^:X06!BR#VP%!K5($3*VY*:@R+K]LDSE M+G+>QC\^;<6.ER#1,"ZS/=SI+2 7I3DCAOOU+3L].6,G3$CVHU!;0P@S]Y&4 MV_O]M%-YTZJ,CJB\KO6(C8-S%@51? "^?!_^E4N"AX?@/OG5FQ;UID6.+S[" MY^JTM:=V 7\-.5192S5U5+:G=LEL.B,5NZ'^_:3)13SIDUZI'/ZUQ?]T\'S//N>I?BV;F4(UTOX_6 SR!%H MB*#]*=UQ3G/HH._QGJ67P?2M[_M)LR@.WM3F#]K+CK9O7&^$-*R$G&#!:$;> MZ'9NX!X74OVY9T(0%;1/H/%?4==W&-G$_LY,_4$L#!!0 ( -Q# MS5@DO?;QWP( $,) 9 >&PO=V]R:W-H965TLFEJI(R&$=NH@$FV8MDG=4&FWSVYR$*N.G=D.M/OULYTT@PZR M5>(+^.Q[SW?O')]':R$?5(ZHX;%@7(V]7.ORPO=5FF-!5$^4R,W*0LB":&/* MI:]*B21SH(+Y81"<^06AW(M';FXFXY&H-*,<9Q)4511$/ETB$^NQU_>>)V[H M,M=VPH]')5GB'/5=.9/&\EN6C!;(%14<)"[&WJ1_,1U:?^?PG>):;8S!9G(O MQ(,U/F=C+[ !(<-46P9B_E9XA8Q9(A/&SX;3:[>TP,WQ,_M'E[O)Y9XHO!+L M!\UT/O;>>Y#A@E1,WXCU)VSR<0&F@BGW"^O&-_ @K90610,V$124U__DL=%A M V!X=@/"!A"^!$1[ (,&,/A?0-0 HO\%#!N 2]VO"3%&J3U-FQV MX-1W:*,7Y?:YJ!3AF3J%(VM?4\9,_=7(UR8XNX6?-H%P(9P+7@.E^%)-SS!M ?!N8.'.^#3;OBW5!MXY.#]#C$&;9D'CB_:PS>W%8,;+"N9YN:[ M@ID42TF*4YA4.A>2_L+,C M1<;VK=IWL]BZ[4"5)<>R9RTJA7*$7OWW3/PL^ M[!+^D&1)37;FR.REN(J-7JM-I?_V&+0>6V)&K9A1MYCN ^D6F]J7O6 J0M7@DL.%[QT@-94[I=W5R$XY; MENH11! (18'EWQ.X$$6*2?;C1T[:*F(JX/[Q*_MU-G@YF#GFX-+H3Q**U;@U M;*$0%CB-Q#W=?()\0#W%%]"(9[]HLVT[D(V#E L:YV#9@Y@DVW_\G NQ!Y \ M]0 G!SB'@.X10"<'=-X+Z.: [GL!O1R0#;V]'7LFG(<%GHP8W2"F6DLV=9"I MGZ&E7B11$^5!,'F72)R8W%$!R.ZAW] =30*:"$8CV6:);A(!#+C@Z,0#@4G$ MT5=X%BF.3F7C;P\>.OEPBCX@DJ"O*YIRG(1\U!:R2XJX'>3AK[;AG2/A.^A6 MQEQQY"1I8O<&=E\&?=H7 M2TNO:M@E7^, QBU9I#BP)VA-?OW%[EN_UTE7%U,&M25E4"TIUD'!< =OEA1M MAYMJ:XBLI.VPT';X,TO*L*:D5.35]JCI+!]6TBB;;XJM+/#.=-IZUZE_;T?_H :EWZ1==(VR>4;9?%-L MY9SMS*RM=[/JNQF7"7E1-;\V$R:]IVN4S3/*YN=L^P7 &1XMZ3LS:^O=[&=* M$H$>(1$I _VD-VICC;)Y1ME\4VSEE.RLK*WWL@_IG).08";]U!^;!!A?D36: M 0MDEO!2OOO("@7UYDI/W3A))MD\HVQ^SC;<=^#G_2/+86=U;;W7K5\.\N'0 M_*N//E+C5!AUQ$;9?%-LY9SMS+.M=\__:[V8M*ZN43;/*)N?LY772[=^O3@[ MN^SH[?*,T34P]>5G%N%$2%N6A-G'H'4,ZO0:$X8><90"\@@/(LKENJI+A#Y. MTT089?.,LODY6^ES5/5!WM[;;(R!+;-=7HX"]55MNT]77"UVDJ?9_NG!]2O[ MTMWN!^]HMMO3MY@M2<)1! M):9T/Y!L&V^[X;D\$76=;FG,J!(VSPQ7@$)AJ M(.\OJ'P]RT]4@&+???(O4$L#!!0 ( -Q#S5CVSUW_,P, "03 - M>&PO*QK['Y]QC^X88!K59"78S9\Q$RU+(>DCF MQE2?XKB>SEE)ZS-5,6F10NF2&MO5L[BN-*-Y#:12Q+U.)XU+RB49#>2BO"I- M'4W50IHA2=M0Y&]?\R'IIA])Y.7&*F=#Y.@90YAP/^#'VM]8@@Y& MSH+D+:HCQLU.C@:%DIL-38@/6&5:LNB>BB$94\$GF@.KH"47*Q_N06"JA-*1 ML95D4W4A4C]XN.M[4&2-3LFETBZWS^"_)\WP/6#= X-KRCJ<:;KJ]L[)AN!N-LE$Z9SI-DV7K$.C@6 %V-%\-H>[ M454,H#&JM(V=9TPR3<6V:5O[;WF57^TXN?A7EMUOE7W#08_-:_6MFSP_!)/I(9@\B)KL M'X+)[$V:C)L7^-8I8>>,T$8C.(L-R0\XU8E-TFBRX,)PV?3F/,^9?')4L/*& M3NR? #OZ=GS."KH0YK8%AV33_LYROBBS=M0U+$0S:M/^!M/KINU!T.;B,F=+ MEH^;KIY-7#.R#9NUN8"PCURY*XQ@'(^%$<"P/)@#C.-96)[_:3Y]=#X>P[SU M@T@?Y?11CF>%D+'[8'G"G,Q>X9EF69*D*;:BXW'0P1A;MS2%G[ :Y@T86![( M]&=KC>\V7B'/UP&VI\]5"#93O!*QF>)K#4AXW8"19>'=QO( ]L%K'8@?S@/ MU%28DR2PJY@W[ G&D2S#$*C%<(VF*;(Z*7S"^X,])4F296$$L+"#),$0>!IQ M!', 'C D2=Q[<.]]%*_?4_'F_V*C1U!+ P04 " #<0\U8EXJ[', 3 M @ "P %]R96QS+RYR96QSG9*Y;L,P#$!_Q=">, ?0(8@S9?$6!/D!5J(/ MV!(%BD6=OZ_:I7&0"QEY/3P2W!YI0.TXI+:+J1C]$%)I6M6X 4BV)8]ISI%" MKM0L'C6'TD!$VV-#L%HL/D N&6:WO606IW.D5XA-/E_G;@2=&A(E@6FD7)TZ(=I7\=Q_:0 MT^FO8R*T>EOH^7%H5 J.W&,EC'%BM/XU@LD/['X 4$L#!!0 ( -Q#S5@> M?U%:H 0 ,$C / >&PO=V]R:V)O;VLN>&ULQ9I;;^(X%(#_BI6G[@,+ MN4 O&D;JEIE=I$ZG*JC[N#*) :N)'=D.[2++^<[ MQ^'3JU0O&RE?R%M5"CV/]L;4-^.QSO>LHOIW63,!1[925=3 IMJ-=:T8+?2> M,5.5XV0RF8TKRD7T^=/Q6H]J[&](PW+#I8"==LN^8:7W/R8 M1^Y[R2)2<<$K_I,5\V@2$;V7KW])Q7]*86BYRI4LRWD4MP>>F3(\_V7WRD*N MZ4:[/89NGBB S*/9!"ZXY4H;=X:[/@7& X.3VZW&R*^\-$PMJ&%_*MG47.SL M9> IQMYCN'8X?K:->*/^3S/*[9;G;"'SIF+"M.VH6&D!A=[S6D=$T(K-H^,I MY%84Y(LPT$AD*=I+P;GV2>'6RZ)]:@.X7ANJ&PX'U+)PX,-!WL&V+'D!=R_( MRD+8'V@BM^1[S90'F2"0R=D@[V15>Y I ID&A/R#EE3DC+AAJLG%7>-!9@AD M=D;(?Q(/,P+P'3!L.7T89J MB$#6@TQH.-O'Q$P3#ZP:AWD%F%^H$I"#:?+(%+B&JLZ,P3P3#RP:AW@-B NV M,3X4YI5X8+&T,7L"5/<,NK8S.S"5Q$%<$KOXHHWBN17?B>IBS"-Q")'$UB1? M8?:29UHVG9&&Z2,.X8\X=8V7NYJ@]0C,"U"R]--L3"%)"(7$UB%KJ!5UHWZT M0<;GP_21A-!';/WQ($$@PMBJT;;A4D#%Y_=V@I8K XMD*30O(-BM%2TLW:U2 M5.S:!-%GQ"R2#&R1%8?4 ,ZE)X,1I _0Y]3$QX21!A/-N:LL&!/HW'Q"S M3A+$.A\HNR7UUTTPZZ0AK--7 79&98K))PTAGYX:D%PL?$Q,/FF(*J8W8G8P MT=6R$%5,'^:(^)B8?])S^J<[-C'_I"'\3:8^ M)N:?-(1_>C$S'Q/S3QK"/[TV[[0F9J$TA(5Z,?W6S# +92$LU(LY]3$Q"V4A M+-2+.?,Q,0ME(2S4E\(M_$HMPRR4A;#0<07H/5ZNV9MI:.DGZ) M0A&.14&#YE36V/+U7UB?K/'\)>W:LNT.>;/M\^2XWQWRHMF4TC^$D)>;M&_S M3=>GP_G*JAOV;3DOAW7HV^5[NTY!I]-9&'[.:![G/V=.7D]]^LO$;K7:+M-3 MM_S8IT/Y97#X[(;WO$FI-)/7=EBGLFC"<7<]G?V@"$&Q?M ,@F;U@VXAZ+9^T!T$W=4/NH>@^_I!,D49 MIP1)(ZP)M!;D6@B\%@1;",06)%L(S!9$6PC4%F1;"-P6A%L(Y!:D6PCL%L1; M"/16U%L)]%;46PGTUM''-H'>BGHK@=Z*>BN!WHIZ*X'>BGHK@=Z*>BN!WHIZ M*X'>BGHK@=Z&>AN!WH9Z&X'>AGH;@=XVVBPAT-M0;R/0VU!O(]#;4&\CT-M0 M;R/0VU!O(]#;4&\CT-M1;R?0VU%O)]#;46\GT-M1;R?0VT>;W01Z.^KM!'H[ MZNT$>COJ[01Z.^KM!'H[ZNT$>D?4.Q+H'5'O2*!W1+TC@=X1]8[_J7UW7VSI;#)ZVUKR MO4U=-7Z<+$*P#XSY?$&U]JFQU,21F7&U#O'1S9G5^5+/B8G!8,ARTP1J0C^T M-9+)Z(EF>E6%WO,FOO:E:<:)H\HGO7 MQQV.I%W=M[$0N5">_\1C8BQ]]?=1>]H%%;_,CMO[8=RR.P_/NMOU>_SUC(_U M+^Q#@/0A0?I0('UD('T,0?JX!>GC#J2/>Y ^^ "E$111.0JI',54CH(J1U&5 MH[#*45SE*+!R%%D%BJP"15:!(JM D56@R"I09!4HL@H4606*K )%5HDBJT21 M5:+(*E%DE2BR2A19)8JL$D56B2*K1)%5HU+IM#/NO^R4\^ 5!+ 0(4 M Q0 ( -Q#S5@'04UB@0 +$ 0 " 0 !D;V-0 M&UL4$L! A0#% @ W$/-6'^359[O *P( !$ M ( !KP &1O8U!R;W!S+V-O&UL4$L! A0#% @ W$/- M6)E&PO=V]R:W-H965T&UL4$L! A0#% @ W$/- M6.T YTC,! Q, !@ ("!*0X 'AL+W=O&PO=V]R:W-H M965T&UL4$L! A0#% @ W$/-6()?Q_ZV @ O@< !@ M ("!E!\ 'AL+W=O&PO=V]R:W-H965T&UL M4$L! A0#% @ W$/-6&C]\!;7 P 80@ !@ ("!U3$ M 'AL+W=O(U !X;"]W;W)K&PO=V]R:W-H965T ] !X;"]W;W)K&UL4$L! A0#% @ W$/-6&.<^_-!! 6 D !D M ("!YD8 'AL+W=O2P >&PO=V]R M:W-H965T&UL M4$L! A0#% @ W$/-6(P8..-' P M@< !D ("!S%, M 'AL+W=O&PO=V]R:W-H965T 9 M " @4M@ !X;"]W;W)K&UL4$L! A0#% @ MW$/-6&%',D[! @ %P8 !D ("!QVD 'AL+W=OI9&PO=V]R:W-H965T&UL4$L! A0#% @ W$/-6*"B_NJ4 @ 3P8 !D M ("!-7P 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ W$/-6-YFU'E^ P -@D !D ("!@H4 'AL M+W=O&PO=V]R:W-H965T\;04 .0/ 9 " M@;2, !X;"]W;W)K&UL4$L! A0#% @ W$/- M6-B37U%X @ DP4 !D ("!6)( 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ W$/-6&#)%UO& @ 7P< M !D ("!SYL 'AL+W=O6G,# #V# &0 @(',G@ M>&PO=V]R:W-H965T&UL4$L! A0#% @ W$/-6/C_455[ @ Q04 !D M ("!MJ4 'AL+W=O?(RT " !^! &0 @(%HJ >&PO=V]R:W-H965T M&UL4$L! A0# M% @ W$/-6'#$::I] P ;@P !D ("!3JT 'AL+W=O M&PO=V]R:W-H965TS M !X;"]W;W)K&UL4$L! A0#% @ W$/-6':* M%>EX P R T !D ("!N;< 'AL+W=O&PO=V]R:W-H965T_ !X;"]W;W)K&UL4$L! A0#% @ W$/-6+6JUYIE!@ 4RL !D M ("!B=P 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ W$/-6'XKP2^4 @ _08 !D ("! M*>H 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ W$/-6'5B8!-5 @ OP4 !D ("!@/, 'AL+W=O6QE @$ >&PO=V]R:V)O;VLN>&UL4$L! A0#% @ W$/-6'Q^Z1O4 0 MQA\ !H ( !JP XML 66 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 67 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 69 FilingSummary.xml IDEA: XBRL DOCUMENT 3.24.1.1.u2 html 147 309 1 true 53 0 false 9 false false R1.htm 000 - Document - Document And Entity Information Sheet http://investors.permapipe.com/20240430/role/statement-document-and-entity-information Document And Entity Information Cover 1 false false R2.htm 001 - Statement - Consolidated Statements of Operations (Unaudited) Sheet http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited Consolidated Statements of Operations (Unaudited) Statements 2 false false R3.htm 002 - Statement - Consolidated Statements of Comprehensive Income (Loss) (Unaudited) Sheet http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited Consolidated Statements of Comprehensive Income (Loss) (Unaudited) Statements 3 false false R4.htm 003 - Statement - Consolidated Balance Sheets (Current Period Unaudited) Sheet http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited Consolidated Balance Sheets (Current Period Unaudited) Statements 4 false false R5.htm 004 - Statement - Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) Sheet http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) Statements 5 false false R6.htm 005 - Statement - Consolidated Statements of Stockholders' Equity (Unaudited) Sheet http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited Consolidated Statements of Stockholders' Equity (Unaudited) Statements 6 false false R7.htm 006 - Statement - Consolidated Statements of Cash Flows (Unaudited) Sheet http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited Consolidated Statements of Cash Flows (Unaudited) Statements 7 false false R8.htm 007 - Disclosure - Note 1 - Basis of Presentation Sheet http://investors.permapipe.com/20240430/role/statement-note-1-basis-of-presentation Note 1 - Basis of Presentation Notes 8 false false R9.htm 008 - Disclosure - Note 2 - Business Segment Reporting Sheet http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting Note 2 - Business Segment Reporting Notes 9 false false R10.htm 009 - Disclosure - Note 3 - Accounts Receivable Sheet http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable Note 3 - Accounts Receivable Notes 10 false false R11.htm 010 - Disclosure - Note 4 - Revenue Recognition Sheet http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition Note 4 - Revenue Recognition Notes 11 false false R12.htm 011 - Disclosure - Note 5 - Income Taxes Sheet http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes Note 5 - Income Taxes Notes 12 false false R13.htm 012 - Disclosure - Note 6 - Impairment of Long-lived Assets Sheet http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets Note 6 - Impairment of Long-lived Assets Notes 13 false false R14.htm 013 - Disclosure - Note 7 - Stock-based Compensation Sheet http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation Note 7 - Stock-based Compensation Notes 14 false false R15.htm 014 - Disclosure - Note 8 - Earnings Per Share Sheet http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share Note 8 - Earnings Per Share Notes 15 false false R16.htm 015 - Disclosure - Note 9 - Debt Sheet http://investors.permapipe.com/20240430/role/statement-note-9-debt Note 9 - Debt Notes 16 false false R17.htm 016 - Disclosure - Note 10 - Leases Sheet http://investors.permapipe.com/20240430/role/statement-note-10-leases Note 10 - Leases Notes 17 false false R18.htm 017 - Disclosure - Note 11 - Restricted Cash Sheet http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash Note 11 - Restricted Cash Notes 18 false false R19.htm 018 - Disclosure - Note 12 - Fair Value Sheet http://investors.permapipe.com/20240430/role/statement-note-12-fair-value- Note 12 - Fair Value Notes 19 false false R20.htm 019 - Disclosure - Note 13 - Recent Accounting Pronouncements Sheet http://investors.permapipe.com/20240430/role/statement-note-13-recent-accounting-pronouncements- Note 13 - Recent Accounting Pronouncements Notes 20 false false R21.htm 020 - Disclosure - Note 14 - Treasury Stock Sheet http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock Note 14 - Treasury Stock Notes 21 false false R22.htm 021 - Disclosure - Note 15 - Noncontrolling Interests Sheet http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests- Note 15 - Noncontrolling Interests Notes 22 false false R23.htm 995445 - Disclosure - Insider Trading Arrangements Sheet http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements Insider Trading Arrangements Notes 23 false false R24.htm 995468 - Disclosure - Significant Accounting Policies (Policies) Sheet http://investors.permapipe.com/20240430/role/statement-significant-accounting-policies-policies Significant Accounting Policies (Policies) Policies http://investors.permapipe.com/20240430/role/statement-note-13-recent-accounting-pronouncements- 24 false false R25.htm 995469 - Disclosure - Note 4 - Revenue Recognition (Tables) Sheet http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-tables Note 4 - Revenue Recognition (Tables) Tables http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition 25 false false R26.htm 995470 - Disclosure - Note 6 - Impairment of Long-lived Assets (Tables) Sheet http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-tables Note 6 - Impairment of Long-lived Assets (Tables) Tables http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets 26 false false R27.htm 995471 - Disclosure - Note 7 - Stock-based Compensation (Tables) Sheet http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-tables Note 7 - Stock-based Compensation (Tables) Tables http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation 27 false false R28.htm 995472 - Disclosure - Note 8 - Earnings Per Share (Tables) Sheet http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-tables Note 8 - Earnings Per Share (Tables) Tables http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share 28 false false R29.htm 995473 - Disclosure - Note 10 - Leases (Tables) Sheet http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables Note 10 - Leases (Tables) Tables http://investors.permapipe.com/20240430/role/statement-note-10-leases 29 false false R30.htm 995474 - Disclosure - Note 11 - Restricted Cash (Tables) Sheet http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-tables Note 11 - Restricted Cash (Tables) Tables http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash 30 false false R31.htm 995475 - Disclosure - Note 2 - Business Segment Reporting (Details Textual) Sheet http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting-details-textual Note 2 - Business Segment Reporting (Details Textual) Details http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting 31 false false R32.htm 995476 - Disclosure - Note 3 - Accounts Receivable (Details Textual) Sheet http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual Note 3 - Accounts Receivable (Details Textual) Details http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable 32 false false R33.htm 995477 - Disclosure - Note 4 - Revenue Recognition (Details Textual) Sheet http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-details-textual Note 4 - Revenue Recognition (Details Textual) Details http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-tables 33 false false R34.htm 995478 - Disclosure - Note 4 - Revenue Recognition - Revenues by Revenue Class (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details Note 4 - Revenue Recognition - Revenues by Revenue Class (Details) Details 34 false false R35.htm 995479 - Disclosure - Note 4 - Revenue Recognition - Reconciliation of the Cost in Excess of Billings (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details Note 4 - Revenue Recognition - Reconciliation of the Cost in Excess of Billings (Details) Details 35 false false R36.htm 995480 - Disclosure - Note 5 - Income Taxes (Details Textual) Sheet http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes-details-textual Note 5 - Income Taxes (Details Textual) Details http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes 36 false false R37.htm 995481 - Disclosure - Note 6 - Impairment of Long-lived Assets (Details Textual) Sheet http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-details-textual Note 6 - Impairment of Long-lived Assets (Details Textual) Details http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-tables 37 false false R38.htm 995482 - Disclosure - Note 6 - Impairment of Long-lived Assets - Goodwill (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-goodwill-details Note 6 - Impairment of Long-lived Assets - Goodwill (Details) Details 38 false false R39.htm 995483 - Disclosure - Note 7 - Stock-based Compensation (Details Textual) Sheet http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual Note 7 - Stock-based Compensation (Details Textual) Details http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-tables 39 false false R40.htm 995484 - Disclosure - Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details) Details 40 false false R41.htm 995485 - Disclosure - Note 7 - Stock-based Compensation - Stock Option Activity (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details Note 7 - Stock-based Compensation - Stock Option Activity (Details) Details 41 false false R42.htm 995486 - Disclosure - Note 7 - Stock-based Compensation - Restricted Stock Activity (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details Note 7 - Stock-based Compensation - Restricted Stock Activity (Details) Details 42 false false R43.htm 995487 - Disclosure - Note 8 - Earnings Per Share (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details Note 8 - Earnings Per Share (Details) Details http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-tables 43 false false R44.htm 995488 - Disclosure - Note 9 - Debt (Details Textual) Sheet http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual Note 9 - Debt (Details Textual) Details http://investors.permapipe.com/20240430/role/statement-note-9-debt 44 false false R45.htm 995489 - Disclosure - Note 10 - Leases (Details Textual) Sheet http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual Note 10 - Leases (Details Textual) Details http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables 45 false false R46.htm 995490 - Disclosure - Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details) Details 46 false false R47.htm 995491 - Disclosure - Note 10 - Leases - Lease Costs (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details Note 10 - Leases - Lease Costs (Details) Details 47 false false R48.htm 995492 - Disclosure - Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details) Details 48 false false R49.htm 995493 - Disclosure - Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details) Details 49 false false R50.htm 995494 - Disclosure - Note 10 - Leases - Maturities of Lease Liabilities (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details Note 10 - Leases - Maturities of Lease Liabilities (Details) Details 50 false false R51.htm 995495 - Disclosure - Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details) Sheet http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details) Details 51 false false R52.htm 995496 - Disclosure - Note 14 - Treasury Stock (Details Textual) Sheet http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock-details-textual Note 14 - Treasury Stock (Details Textual) Details http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock 52 false false R53.htm 995497 - Disclosure - Note 15 - Noncontrolling Interests (Details Textual) Sheet http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual Note 15 - Noncontrolling Interests (Details Textual) Details http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests- 53 false false All Reports Book All Reports [ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 38 fact(s) appearing in ix:hidden were eligible for transformation: dei:EntityRegistrantName, ecd:NonRule10b51ArrAdoptedFlag, ecd:NonRule10b51ArrTrmntdFlag, ecd:Rule10b51ArrAdoptedFlag, ecd:Rule10b51ArrTrmntdFlag, ppih:CostsIncurredForUncompletedContractsAnticipatedCollectionPeriod, ppih:LesseeFinanceLeaseNumberOfOptionsToExtend, ppih:LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine, ppih:NumberOfMajorCustomers, us-gaap:AllowanceForDoubtfulAccountsReceivable, us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent, us-gaap:CommonStockParOrStatedValuePerShare, us-gaap:CommonStockSharesAuthorized, us-gaap:CommonStockSharesIssued, us-gaap:CommonStockSharesOutstanding, us-gaap:DebtInstrumentMaturityDate, us-gaap:DebtInstrumentTerm, us-gaap:DeferredFinanceCostsNet, us-gaap:FinanceLeaseLiability, us-gaap:LesseeFinanceLeaseRenewalTerm1, us-gaap:LesseeFinanceLeaseTermOfContract1, us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity, us-gaap:OperatingLeaseExpense, us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod, us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross, us-gaap:TreasuryStockCommonShares - ppih20240430_10q.htm 8, 13, 14, 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, 42, 43, 46, 47, 48, 52, 53, 54, 55, 56 ppih-20240430.xsd ppih-20240430_cal.xml ppih-20240430_def.xml ppih-20240430_lab.xml ppih-20240430_pre.xml ppih20240430_10q.htm logo.jpg http://fasb.org/srt/2024 http://fasb.org/us-gaap/2024 http://xbrl.sec.gov/dei/2024 http://xbrl.sec.gov/ecd/2024 true true JSON 72 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "ppih20240430_10q.htm": { "nsprefix": "ppih", "nsuri": "http://investors.permapipe.com/20240430", "dts": { "schema": { "local": [ "ppih-20240430.xsd" ], "remote": [ "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd", "https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd", "https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd", "https://xbrl.sec.gov/country/2024/country-2024.xsd", "https://xbrl.sec.gov/currency/2024/currency-2024.xsd", "https://xbrl.sec.gov/dei/2024/dei-2024.xsd", "https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd", "https://xbrl.sec.gov/exch/2024/exch-2024.xsd", "https://xbrl.sec.gov/naics/2024/naics-2024.xsd", "https://xbrl.sec.gov/sic/2024/sic-2024.xsd", "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd" ] }, "calculationLink": { "local": [ "ppih-20240430_cal.xml" ] }, "definitionLink": { "local": [ "ppih-20240430_def.xml" ] }, "labelLink": { "local": [ "ppih-20240430_lab.xml" ] }, "presentationLink": { "local": [ "ppih-20240430_pre.xml" ] }, "inline": { "local": [ "ppih20240430_10q.htm" ] } }, "keyStandard": 269, "keyCustom": 40, "axisStandard": 26, "axisCustom": 0, "memberStandard": 22, "memberCustom": 28, "hidden": { "total": 50, "http://fasb.org/us-gaap/2024": 33, "http://investors.permapipe.com/20240430": 7, "http://xbrl.sec.gov/ecd/2024": 4, "http://xbrl.sec.gov/dei/2024": 6 }, "contextCount": 147, "entityCount": 1, "segmentCount": 53, "elementCount": 465, "unitCount": 9, "baseTaxonomies": { "http://fasb.org/us-gaap/2024": 544, "http://xbrl.sec.gov/dei/2024": 29, "http://xbrl.sec.gov/ecd/2024": 5, "http://fasb.org/srt/2024": 2 }, "report": { "R1": { "role": "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information", "longName": "000 - Document - Document And Entity Information", "shortName": "Document And Entity Information", "isDefault": "true", "groupType": "document", "subGroupType": "", "menuCat": "Cover", "order": "1", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "b", "p", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "b", "p", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R2": { "role": "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited", "longName": "001 - Statement - Consolidated Statements of Operations (Unaudited)", "shortName": "Consolidated Statements of Operations (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "2", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:CostOfRevenue", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R3": { "role": "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "longName": "002 - Statement - Consolidated Statements of Comprehensive Income (Loss) (Unaudited)", "shortName": "Consolidated Statements of Comprehensive Income (Loss) (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "3", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:ProfitLoss", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R4": { "role": "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "longName": "003 - Statement - Consolidated Balance Sheets (Current Period Unaudited)", "shortName": "Consolidated Balance Sheets (Current Period Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "4", "firstAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:RestrictedCashCurrent", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R5": { "role": "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals", "longName": "004 - Statement - Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)", "shortName": "Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)", "isDefault": "false", "groupType": "statement", "subGroupType": "parenthetical", "menuCat": "Statements", "order": "5", "firstAnchor": null, "uniqueAnchor": null }, "R6": { "role": "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited", "longName": "005 - Statement - Consolidated Statements of Stockholders' Equity (Unaudited)", "shortName": "Consolidated Statements of Stockholders' Equity (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "6", "firstAnchor": { "contextRef": "i_2023-01-31_StatementEquityComponentsAxis-CommonStockMember", "name": "us-gaap:StockholdersEquity", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2023-01-31_StatementEquityComponentsAxis-CommonStockMember", "name": "us-gaap:StockholdersEquity", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R7": { "role": "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited", "longName": "006 - Statement - Consolidated Statements of Cash Flows (Unaudited)", "shortName": "Consolidated Statements of Cash Flows (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "7", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:ProfitLoss", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:DepreciationDepletionAndAmortization", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R8": { "role": "http://investors.permapipe.com/20240430/role/statement-note-1-basis-of-presentation", "longName": "007 - Disclosure - Note 1 - Basis of Presentation", "shortName": "Note 1 - Basis of Presentation", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "8", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R9": { "role": "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting", "longName": "008 - Disclosure - Note 2 - Business Segment Reporting", "shortName": "Note 2 - Business Segment Reporting", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "9", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R10": { "role": "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "longName": "009 - Disclosure - Note 3 - Accounts Receivable", "shortName": "Note 3 - Accounts Receivable", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "10", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R11": { "role": "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition", "longName": "010 - Disclosure - Note 4 - Revenue Recognition", "shortName": "Note 4 - Revenue Recognition", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "11", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R12": { "role": "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes", "longName": "011 - Disclosure - Note 5 - Income Taxes", "shortName": "Note 5 - Income Taxes", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "12", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R13": { "role": "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets", "longName": "012 - Disclosure - Note 6 - Impairment of Long-lived Assets", "shortName": "Note 6 - Impairment of Long-lived Assets", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "13", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:AssetImpairmentChargesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:AssetImpairmentChargesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R14": { "role": "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation", "longName": "013 - Disclosure - Note 7 - Stock-based Compensation", "shortName": "Note 7 - Stock-based Compensation", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "14", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R15": { "role": "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share", "longName": "014 - Disclosure - Note 8 - Earnings Per Share", "shortName": "Note 8 - Earnings Per Share", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "15", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R16": { "role": "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "longName": "015 - Disclosure - Note 9 - Debt", "shortName": "Note 9 - Debt", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "16", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R17": { "role": "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "longName": "016 - Disclosure - Note 10 - Leases", "shortName": "Note 10 - Leases", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "17", "firstAnchor": { "contextRef": "i_2024-04-30", "name": "ppih:LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R18": { "role": "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash", "longName": "017 - Disclosure - Note 11 - Restricted Cash", "shortName": "Note 11 - Restricted Cash", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "18", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:CashAndCashEquivalentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:CashAndCashEquivalentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R19": { "role": "http://investors.permapipe.com/20240430/role/statement-note-12-fair-value-", "longName": "018 - Disclosure - Note 12 - Fair Value", "shortName": "Note 12 - Fair Value", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "19", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:FairValueDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:FairValueDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R20": { "role": "http://investors.permapipe.com/20240430/role/statement-note-13-recent-accounting-pronouncements-", "longName": "019 - Disclosure - Note 13 - Recent Accounting Pronouncements", "shortName": "Note 13 - Recent Accounting Pronouncements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "20", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R21": { "role": "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock", "longName": "020 - Disclosure - Note 14 - Treasury Stock", "shortName": "Note 14 - Treasury Stock", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "21", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:TreasuryStockTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:TreasuryStockTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R22": { "role": "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "longName": "021 - Disclosure - Note 15 - Noncontrolling Interests", "shortName": "Note 15 - Noncontrolling Interests", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "22", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:MinorityInterestDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:MinorityInterestDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R23": { "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "longName": "995445 - Disclosure - Insider Trading Arrangements", "shortName": "Insider Trading Arrangements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "23", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "ecd:MtrlTermsOfTrdArrTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "ecd:MtrlTermsOfTrdArrTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R24": { "role": "http://investors.permapipe.com/20240430/role/statement-significant-accounting-policies-policies", "longName": "995468 - Disclosure - Significant Accounting Policies (Policies)", "shortName": "Significant Accounting Policies (Policies)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "policies", "menuCat": "Policies", "order": "24", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R25": { "role": "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-tables", "longName": "995469 - Disclosure - Note 4 - Revenue Recognition (Tables)", "shortName": "Note 4 - Revenue Recognition (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "25", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R26": { "role": "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-tables", "longName": "995470 - Disclosure - Note 6 - Impairment of Long-lived Assets (Tables)", "shortName": "Note 6 - Impairment of Long-lived Assets (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "26", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:AssetImpairmentChargesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:AssetImpairmentChargesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R27": { "role": "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-tables", "longName": "995471 - Disclosure - Note 7 - Stock-based Compensation (Tables)", "shortName": "Note 7 - Stock-based Compensation (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "27", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R28": { "role": "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-tables", "longName": "995472 - Disclosure - Note 8 - Earnings Per Share (Tables)", "shortName": "Note 8 - Earnings Per Share (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "28", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R29": { "role": "http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables", "longName": "995473 - Disclosure - Note 10 - Leases (Tables)", "shortName": "Note 10 - Leases (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "29", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "ppih:SupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "ppih:SupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R30": { "role": "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-tables", "longName": "995474 - Disclosure - Note 11 - Restricted Cash (Tables)", "shortName": "Note 11 - Restricted Cash (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "30", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:ScheduleOfRestrictedCashAndCashEquivalentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "us-gaap:CashAndCashEquivalentsDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:ScheduleOfRestrictedCashAndCashEquivalentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "us-gaap:CashAndCashEquivalentsDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R31": { "role": "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting-details-textual", "longName": "995475 - Disclosure - Note 2 - Business Segment Reporting (Details Textual)", "shortName": "Note 2 - Business Segment Reporting (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "31", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:NumberOfReportableSegments", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:SegmentReportingDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:NumberOfReportableSegments", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:SegmentReportingDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R32": { "role": "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual", "longName": "995476 - Disclosure - Note 3 - Accounts Receivable (Details Textual)", "shortName": "Note 3 - Accounts Receivable (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "32", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:IncreaseDecreaseInAccountsReceivable", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember", "name": "ppih:NumberOfMajorCustomers", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R33": { "role": "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-details-textual", "longName": "995477 - Disclosure - Note 4 - Revenue Recognition (Details Textual)", "shortName": "Note 4 - Revenue Recognition (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "33", "firstAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:UnbilledReceivablesCurrent", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "i_2024-04-30_StatementGeographicalAxis-MiddleEastMember", "name": "us-gaap:UnbilledReceivablesCurrent", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R34": { "role": "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details", "longName": "995478 - Disclosure - Note 4 - Revenue Recognition - Revenues by Revenue Class (Details)", "shortName": "Note 4 - Revenue Recognition - Revenues by Revenue Class (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "34", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "ppih:PercentOfRevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "0", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R35": { "role": "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details", "longName": "995479 - Disclosure - Note 4 - Revenue Recognition - Reconciliation of the Cost in Excess of Billings (Details)", "shortName": "Note 4 - Revenue Recognition - Reconciliation of the Cost in Excess of Billings (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "35", "firstAnchor": { "contextRef": "i_2024-04-30", "name": "ppih:CostsIncurredOnUncompletedContracts", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfAssumptionsForLongDurationContractsByProductAndGuaranteeTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2024-04-30", "name": "ppih:CostsIncurredOnUncompletedContracts", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfAssumptionsForLongDurationContractsByProductAndGuaranteeTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R36": { "role": "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes-details-textual", "longName": "995480 - Disclosure - Note 5 - Income Taxes (Details Textual)", "shortName": "Note 5 - Income Taxes (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "36", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "1", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "1", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R37": { "role": "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-details-textual", "longName": "995481 - Disclosure - Note 6 - Impairment of Long-lived Assets (Details Textual)", "shortName": "Note 6 - Impairment of Long-lived Assets (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "37", "firstAnchor": { "contextRef": "i_2016-12-31_BusinessAcquisitionAxis-PermaPipeCanadaLtdMember", "name": "us-gaap:BusinessCombinationStepAcquisitionEquityInterestInAcquireeIncludingSubsequentAcquisitionPercentage", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "1", "ancestors": [ "p", "us-gaap:AssetImpairmentChargesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2016-12-31_BusinessAcquisitionAxis-PermaPipeCanadaLtdMember", "name": "us-gaap:BusinessCombinationStepAcquisitionEquityInterestInAcquireeIncludingSubsequentAcquisitionPercentage", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "1", "ancestors": [ "p", "us-gaap:AssetImpairmentChargesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R38": { "role": "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-goodwill-details", "longName": "995482 - Disclosure - Note 6 - Impairment of Long-lived Assets - Goodwill (Details)", "shortName": "Note 6 - Impairment of Long-lived Assets - Goodwill (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "38", "firstAnchor": { "contextRef": "i_2024-01-31", "name": "us-gaap:Goodwill", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:GoodwillForeignCurrencyTranslationGainLoss", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "us-gaap:AssetImpairmentChargesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R39": { "role": "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual", "longName": "995483 - Disclosure - Note 7 - Stock-based Compensation (Details Textual)", "shortName": "Note 7 - Stock-based Compensation (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "39", "firstAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:CommonStockCapitalSharesReservedForFutureIssuance", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:CommonStockCapitalSharesReservedForFutureIssuance", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R40": { "role": "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details", "longName": "995484 - Disclosure - Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details)", "shortName": "Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "40", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30_AwardTypeAxis-RestrictedStockMember", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30_AwardTypeAxis-RestrictedStockMember", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R41": { "role": "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "longName": "995485 - Disclosure - Note 7 - Stock-based Compensation - Stock Option Activity (Details)", "shortName": "Note 7 - Stock-based Compensation - Stock Option Activity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "41", "firstAnchor": { "contextRef": "i_2024-01-31_AwardTypeAxis-EmployeeStockOptionMember", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30_AwardTypeAxis-EmployeeStockOptionMember", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R42": { "role": "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "longName": "995486 - Disclosure - Note 7 - Stock-based Compensation - Restricted Stock Activity (Details)", "shortName": "Note 7 - Stock-based Compensation - Restricted Stock Activity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "42", "firstAnchor": { "contextRef": "i_2024-01-31_AwardTypeAxis-RestrictedStockMember", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2024-01-31_AwardTypeAxis-RestrictedStockMember", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R43": { "role": "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details", "longName": "995487 - Disclosure - Note 8 - Earnings Per Share (Details)", "shortName": "Note 8 - Earnings Per Share (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "43", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:WeightedAverageNumberOfSharesOutstandingBasic", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R44": { "role": "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual", "longName": "995488 - Disclosure - Note 9 - Debt (Details Textual)", "shortName": "Note 9 - Debt (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "44", "firstAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:DebtAndCapitalLeaseObligations", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:DebtAndCapitalLeaseObligations", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R45": { "role": "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "longName": "995489 - Disclosure - Note 10 - Leases (Details Textual)", "shortName": "Note 10 - Leases (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "45", "firstAnchor": { "contextRef": "i_2024-04-30", "name": "ppih:LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:FinanceLeaseRightOfUseAsset", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R46": { "role": "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "longName": "995490 - Disclosure - Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details)", "shortName": "Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "46", "firstAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:PropertyPlantAndEquipmentNet", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:FinanceLeaseLiabilityCurrent", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "ppih:SupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock", "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R47": { "role": "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details", "longName": "995491 - Disclosure - Note 10 - Leases - Lease Costs (Details)", "shortName": "Note 10 - Leases - Lease Costs (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "47", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:FinanceLeaseRightOfUseAssetAmortization", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:LeaseCostTableTextBlock", "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:FinanceLeaseRightOfUseAssetAmortization", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:LeaseCostTableTextBlock", "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R48": { "role": "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details", "longName": "995492 - Disclosure - Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details)", "shortName": "Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "48", "firstAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:FinanceLeasePrincipalPayments", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "ppih:SupplementalCashFlowInformationRelatedLeasesTableTextBlock", "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30", "name": "us-gaap:FinanceLeaseInterestPaymentOnLiability", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "ppih:SupplementalCashFlowInformationRelatedLeasesTableTextBlock", "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R49": { "role": "http://investors.permapipe.com/20240430/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details", "longName": "995493 - Disclosure - Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details)", "shortName": "Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "49", "firstAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "td", "tr", "tbody", "table", "ppih:WeightedaverageLeaseTermsAndDiscountRatesTableTextBlock", "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "td", "tr", "tbody", "table", "ppih:WeightedaverageLeaseTermsAndDiscountRatesTableTextBlock", "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R50": { "role": "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "longName": "995494 - Disclosure - Note 10 - Leases - Maturities of Lease Liabilities (Details)", "shortName": "Note 10 - Leases - Maturities of Lease Liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "50", "firstAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "ppih:FinanceAndOperatingLeaseLiabilityMaturityTableTextBlock", "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "ppih:FinanceAndOperatingLeaseLiabilityMaturityTableTextBlock", "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R51": { "role": "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details", "longName": "995495 - Disclosure - Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details)", "shortName": "Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "51", "firstAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:RestrictedCashAndCashEquivalents", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfRestrictedCashAndCashEquivalentsTextBlock", "div", "div", "us-gaap:CashAndCashEquivalentsDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } }, "R52": { "role": "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock-details-textual", "longName": "995496 - Disclosure - Note 14 - Treasury Stock (Details Textual)", "shortName": "Note 14 - Treasury Stock (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "52", "firstAnchor": { "contextRef": "i_2022-12-07", "name": "srt:StockRepurchaseProgramAuthorizedAmount1", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-6", "ancestors": [ "p", "us-gaap:TreasuryStockTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2022-12-07", "name": "srt:StockRepurchaseProgramAuthorizedAmount1", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-6", "ancestors": [ "p", "us-gaap:TreasuryStockTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true, "unique": true } }, "R53": { "role": "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual", "longName": "995497 - Disclosure - Note 15 - Noncontrolling Interests (Details Textual)", "shortName": "Note 15 - Noncontrolling Interests (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "53", "firstAnchor": { "contextRef": "i_2024-04-30", "name": "us-gaap:Assets", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2024-02-01_2024-04-30_ConsolidatedEntitiesAxis-GulfInsulationGroupMember", "name": "us-gaap:NetIncomeLossAttributableToNoncontrollingInterest", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "div", "us-gaap:MinorityInterestDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20240430_10q.htm", "unique": true } } }, "tag": { "ppih_AbuDhabiLandLeaseMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "AbuDhabiLandLeaseMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "Abu Dhabi Land Lease [Member]", "documentation": "Represents information regarding land leased in Abu Dhabi." } } }, "auth_ref": [] }, "us-gaap_AccountingPoliciesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountingPoliciesAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-significant-accounting-policies-policies" ], "lang": { "en-us": { "role": { "label": "Accounting Policies [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AccountsNotesLoansAndFinancingReceivablesByBillingStatusTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsNotesLoansAndFinancingReceivablesByBillingStatusTypeAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Billing Status, Type [Axis]", "documentation": "Information by billing status of receivables." } } }, "auth_ref": [ "r64", "r70" ] }, "us-gaap_AccountsPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsPayableCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Trade accounts payable", "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r51", "r713" ] }, "us-gaap_AccountsReceivableMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsReceivableMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable [Member]", "documentation": "Due from customers or clients for goods or services that have been delivered or sold." } } }, "auth_ref": [ "r655" ] }, "us-gaap_AccountsReceivableNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsReceivableNet", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_AccountsReceivableNet", "terseLabel": "Accounts Receivable, after Allowance for Credit Loss", "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business." } } }, "auth_ref": [ "r609", "r654", "r733", "r852", "r853" ] }, "us-gaap_AccountsReceivableNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccountsReceivableNetCurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Trade accounts receivable, less allowance for credit losses of $644 at April 30, 2024 and $699 at January 31, 2024", "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current." } } }, "auth_ref": [ "r790" ] }, "us-gaap_AccruedIncomeTaxesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccruedIncomeTaxesCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 8.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Income taxes payable", "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations." } } }, "auth_ref": [ "r54", "r101" ] }, "us-gaap_AccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccruedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Other accrued liabilities", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r54" ] }, "us-gaap_AccruedSalesCommissionCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccruedSalesCommissionCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 9.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Commissions and management incentives payable", "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for sales commissions. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r54", "r672" ] }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details": { "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "negatedLabel": "Accumulated depreciation and amortization", "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services." } } }, "auth_ref": [ "r29", "r159", "r545" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Accumulated other comprehensive loss", "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source." } } }, "auth_ref": [ "r18", "r19", "r71", "r165", "r541", "r571", "r575" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AccumulatedOtherComprehensiveIncomeMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "AOCI Attributable to Parent [Member]", "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r1", "r12", "r19", "r424", "r427", "r481", "r566", "r567", "r767", "r768", "r769", "r776", "r777", "r778", "r780" ] }, "us-gaap_AdditionalPaidInCapital": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdditionalPaidInCapital", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Additional paid-in capital", "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." } } }, "auth_ref": [ "r65", "r713", "r886" ] }, "us-gaap_AdditionalPaidInCapitalMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdditionalPaidInCapitalMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Additional Paid-in Capital [Member]", "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders." } } }, "auth_ref": [ "r586", "r776", "r777", "r778", "r780", "r825", "r887" ] }, "ppih_AdditionalSOFRAdjustmentBasedOnTermOfInterestPeriodMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "AdditionalSOFRAdjustmentBasedOnTermOfInterestPeriodMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Additional SOFR Adjustment Based on Interest Period [Member]", "documentation": "Information pertaining to SOFR adjustment based on the term of the interest period." } } }, "auth_ref": [] }, "ppih_AdjustmentsToAdditionalPaidInCapitalReclassificationToNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "AdjustmentsToAdditionalPaidInCapitalReclassificationToNoncontrollingInterest", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Amount attributable to non-controlling interest", "documentation": "Amount of other increase (decrease) in additional paid in capital (APIC) resulting from reclassification to non-controlling interest." } } }, "auth_ref": [] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Stock-based compensation expense", "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement." } } }, "auth_ref": [ "r38", "r39", "r350" ] }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Adjustments to reconcile net income (loss) to net cash provided by operating activities" } } }, "auth_ref": [] }, "us-gaap_AllocatedShareBasedCompensationExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AllocatedShareBasedCompensationExpense", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details" ], "lang": { "en-us": { "role": { "verboseLabel": "Stock-based compensation expense", "label": "us-gaap_AllocatedShareBasedCompensationExpense", "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized." } } }, "auth_ref": [ "r379", "r384" ] }, "us-gaap_AllowanceForDoubtfulAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AllowanceForDoubtfulAccountsReceivable", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_AllowanceForDoubtfulAccountsReceivable", "terseLabel": "Accounts Receivable, Allowance for Credit Loss", "documentation": "Amount of allowance for credit loss on accounts receivable." } } }, "auth_ref": [ "r166", "r259", "r267", "r268", "r270", "r853" ] }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Allowance for doubtful accounts", "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current." } } }, "auth_ref": [ "r166", "r259", "r267" ] }, "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "AmendmentFlag", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Amendment Flag", "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission." } } }, "auth_ref": [] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details" ], "lang": { "en-us": { "role": { "label": "Stock options and restricted stock not included in the computation of diluted earnings per share of common stock because the option exercise prices or grant date prices exceeded the average market prices of the common shares (in shares)", "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented." } } }, "auth_ref": [ "r227" ] }, "us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetAcquisitionContingentConsiderationLiabilityCurrent", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "Asset Acquisition, Contingent Consideration, Liability, Current", "documentation": "Amount of liability recognized from contingent consideration in asset acquisition, classified as current." } } }, "auth_ref": [ "r824" ] }, "us-gaap_AssetImpairmentChargesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetImpairmentChargesTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets" ], "lang": { "en-us": { "role": { "label": "Asset Impairment Charges [Text Block]", "documentation": "The entire disclosure for the details of the charge against earnings resulting from the aggregate write down of all assets from their carrying value to their fair value. Disclosure may also include a description of the impaired asset and facts and circumstances leading to the impairment, amount of the impairment loss and where the loss is located in the income statement, method(s) for determining fair value, and the segment in which the impaired asset is reported." } } }, "auth_ref": [] }, "us-gaap_Assets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Assets", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_Assets", "terseLabel": "Assets", "totalLabel": "Total assets", "documentation": "Amount of asset recognized for present right to economic benefit." } } }, "auth_ref": [ "r99", "r110", "r162", "r189", "r231", "r237", "r246", "r249", "r260", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r417", "r421", "r445", "r535", "r614", "r679", "r680", "r713", "r740", "r815", "r816", "r841" ] }, "us-gaap_AssetsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "Assets [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsCurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_AssetsCurrent", "totalLabel": "Total current assets", "documentation": "Amount of asset recognized for present right to economic benefit, classified as current." } } }, "auth_ref": [ "r155", "r168", "r189", "r260", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r417", "r421", "r445", "r713", "r815", "r816", "r841" ] }, "us-gaap_AssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsCurrentAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Current assets" } } }, "auth_ref": [] }, "us-gaap_AssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsNoncurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_AssetsNoncurrent", "totalLabel": "Total long-term assets", "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold or consumed after one year or beyond the normal operating cycle, if longer." } } }, "auth_ref": [ "r189", "r260", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r417", "r421", "r445", "r815", "r816", "r841" ] }, "us-gaap_AssetsNoncurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AssetsNoncurrentAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Long-term assets" } } }, "auth_ref": [] }, "us-gaap_AwardTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "AwardTypeAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details" ], "lang": { "en-us": { "role": { "label": "Award Type [Axis]", "documentation": "Information by type of award under share-based payment arrangement." } } }, "auth_ref": [ "r353", "r354", "r355", "r356", "r357", "r358", "r359", "r360", "r361", "r362", "r363", "r364", "r365", "r366", "r367", "r368", "r369", "r370", "r371", "r372", "r373", "r374", "r375", "r376", "r377", "r378" ] }, "us-gaap_BalanceSheetLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BalanceSheetLocationAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Statement of Financial Position Location, Balance [Axis]", "documentation": "Information by location in statement of financial position where disaggregated cumulative balance has been reported." } } }, "auth_ref": [ "r286", "r855", "r856" ] }, "us-gaap_BalanceSheetLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BalanceSheetLocationDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Statement of Financial Position Location, Balance [Domain]", "documentation": "Location in statement of financial position where disaggregated cumulative balance has been reported." } } }, "auth_ref": [ "r46", "r47", "r286", "r855", "r856" ] }, "us-gaap_BaseRateMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BaseRateMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Base Rate [Member]", "documentation": "Minimum rate investor will accept." } } }, "auth_ref": [] }, "ppih_BillingsToDate": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "BillingsToDate", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details" ], "lang": { "en-us": { "role": { "label": "Less billings to date", "documentation": "Billings to date related to percentage of completion" } } }, "auth_ref": [] }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessAcquisitionAcquireeDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-details-textual" ], "lang": { "en-us": { "role": { "label": "Business Acquisition, Acquiree [Domain]", "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree." } } }, "auth_ref": [ "r275", "r276", "r277", "r278", "r279", "r413", "r697", "r698" ] }, "us-gaap_BusinessAcquisitionAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessAcquisitionAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-details-textual" ], "lang": { "en-us": { "role": { "label": "Business Acquisition [Axis]", "documentation": "Information by business combination or series of individually immaterial business combinations." } } }, "auth_ref": [ "r40", "r41", "r275", "r276", "r277", "r278", "r279", "r413", "r697", "r698" ] }, "us-gaap_BusinessCombinationStepAcquisitionEquityInterestInAcquireeIncludingSubsequentAcquisitionPercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "BusinessCombinationStepAcquisitionEquityInterestInAcquireeIncludingSubsequentAcquisitionPercentage", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_BusinessCombinationStepAcquisitionEquityInterestInAcquireeIncludingSubsequentAcquisitionPercentage", "terseLabel": "Business Combination, Step Acquisition, Equity Interest in Acquiree, Including Subsequent Acquisition, Percentage", "documentation": "Percentage of voting equity interests acquired in a business combination achieved in stages, including equity interests in the acquiree held by the acquirer immediately before the acquisition date and acquired at the acquisition date." } } }, "auth_ref": [] }, "ppih_CanadianMortgageNoteMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "CanadianMortgageNoteMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Canadian Mortgage Note [Member]", "documentation": "Represents information pertaining to a mortgage note from a bank in Canada, secured by a Canadian manufacturing facility." } } }, "auth_ref": [] }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashAndCashEquivalentsAtCarryingValue", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "weight": 1.0, "order": 1.0 }, "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details" ], "lang": { "en-us": { "role": { "label": "Cash and cash equivalents", "terseLabel": "Cash and cash equivalents", "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation." } } }, "auth_ref": [ "r23", "r157", "r670" ] }, "us-gaap_CashAndCashEquivalentsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashAndCashEquivalentsDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents Disclosure [Text Block]", "documentation": "The entire disclosure for cash and cash equivalent footnotes, which may include the types of deposits and money market instruments, applicable carrying amounts, restricted amounts and compensating balance arrangements. Cash and equivalents include: (1) currency on hand (2) demand deposits with banks or financial institutions (3) other kinds of accounts that have the general characteristics of demand deposits (4) 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. Generally, only investments maturing within three months from the date of acquisition qualify." } } }, "auth_ref": [ "r157", "r539" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "totalLabel": "Cash, cash equivalents and restricted cash shown in the statement of cash flows", "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r23", "r81", "r187" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "periodStartLabel": "Cash, cash equivalents and restricted cash - beginning of period", "periodEndLabel": "Cash, cash equivalents and restricted cash - end of period", "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r23", "r81", "r187" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "totalLabel": "Net increase in cash, cash equivalents and restricted cash", "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r0", "r81" ] }, "ppih_CentralBankOfEqyptCbeRateMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "CentralBankOfEqyptCbeRateMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Central Bank of Eqypt (CBE) Rate [Member]", "documentation": "Represents CBE rate." } } }, "auth_ref": [] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CityAreaCode", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "us-gaap_CommitmentsAndContingencies": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommitmentsAndContingencies", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Commitments and contingencies", "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur." } } }, "auth_ref": [ "r60", "r103", "r538", "r600" ] }, "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockCapitalSharesReservedForFutureIssuance", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance", "terseLabel": "Common Stock, Capital Shares Reserved for Future Issuance (in shares)", "documentation": "Aggregate number of common shares reserved for future issuance." } } }, "auth_ref": [ "r63" ] }, "us-gaap_CommonStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Common Stock [Member]", "documentation": "Stock that is subordinate to all other stock of the issuer." } } }, "auth_ref": [ "r730", "r731", "r732", "r734", "r735", "r736", "r737", "r776", "r777", "r780", "r825", "r885", "r887" ] }, "us-gaap_CommonStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockParOrStatedValuePerShare", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, par value (in dollars per share)", "documentation": "Face amount or stated value per share of common stock." } } }, "auth_ref": [ "r63" ] }, "us-gaap_CommonStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesAuthorized", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, authorized (in shares)", "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r63", "r601" ] }, "us-gaap_CommonStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesIssued", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, issued (in shares)", "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury." } } }, "auth_ref": [ "r63" ] }, "us-gaap_CommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockSharesOutstanding", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, outstanding (in shares)", "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation." } } }, "auth_ref": [ "r13", "r63", "r601", "r620", "r887", "r888" ] }, "us-gaap_CommonStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CommonStockValue", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Common stock, $.01 par value, authorized 50,000 shares; 8,018 issued and outstanding at April 30, 2024 and 8,017 at January 31, 2024", "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r63", "r540", "r713" ] }, "us-gaap_ComprehensiveIncomeNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ComprehensiveIncomeNetOfTax", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_ComprehensiveIncomeNetOfTax", "totalLabel": "Total comprehensive income (loss) attributable to common stock", "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r20", "r170", "r172", "r178", "r531", "r552", "r554" ] }, "us-gaap_ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited" ], "lang": { "en-us": { "role": { "label": "Less: Comprehensive income attributable to non-controlling interests", "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income (loss) and other comprehensive income (loss), attributable to noncontrolling interests. Excludes changes in equity resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r3", "r43", "r45", "r170", "r172", "r177", "r530", "r552", "r553" ] }, "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", "totalLabel": "Comprehensive income (loss)", "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income. Excludes changes in equity resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r45", "r96", "r170", "r172", "r176", "r529", "r552" ] }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskBenchmarkDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Benchmark [Domain]", "documentation": "The denominator in a calculation of a disclosed concentration risk percentage." } } }, "auth_ref": [ "r27", "r28", "r48", "r49", "r256", "r655" ] }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskByBenchmarkAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Benchmark [Axis]", "documentation": "Information by benchmark of concentration risk." } } }, "auth_ref": [ "r27", "r28", "r48", "r49", "r256", "r577", "r655" ] }, "us-gaap_ConcentrationRiskByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskByTypeAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Type [Axis]", "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender." } } }, "auth_ref": [ "r27", "r28", "r48", "r49", "r256", "r655", "r756" ] }, "us-gaap_ConcentrationRiskPercentage1": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskPercentage1", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_ConcentrationRiskPercentage1", "terseLabel": "Concentration Risk, Percentage", "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." } } }, "auth_ref": [ "r27", "r28", "r48", "r49", "r256" ] }, "us-gaap_ConcentrationRiskTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ConcentrationRiskTypeDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Type [Domain]", "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." } } }, "auth_ref": [ "r27", "r28", "r48", "r49", "r256", "r655" ] }, "srt_ConsolidatedEntitiesAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ConsolidatedEntitiesAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Consolidated Entities [Axis]", "documentation": "Information by consolidated entity or group of entities." } } }, "auth_ref": [ "r120", "r140", "r193", "r417", "r418", "r421", "r422", "r488", "r660", "r761", "r762", "r763", "r814", "r817", "r818" ] }, "srt_ConsolidatedEntitiesDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ConsolidatedEntitiesDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Consolidated Entities [Domain]", "documentation": "Entity or group of entities consolidated into reporting entity." } } }, "auth_ref": [ "r120", "r140", "r193", "r417", "r418", "r421", "r422", "r488", "r660", "r761", "r762", "r763", "r814", "r817", "r818" ] }, "us-gaap_ContractWithCustomerAssetNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerAssetNet", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details": { "parentTag": "ppih_CostsInExcessOfBillingsNet", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerAssetNet", "terseLabel": "Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts", "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time." } } }, "auth_ref": [ "r330", "r332", "r343" ] }, "us-gaap_ContractWithCustomerAssetNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerAssetNetCurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Costs and estimated earnings in excess of billings on uncompleted contracts", "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current." } } }, "auth_ref": [ "r330", "r332", "r343" ] }, "us-gaap_ContractWithCustomerLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerLiability", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details": { "parentTag": "ppih_CostsInExcessOfBillingsNet", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerLiability", "negatedTerseLabel": "Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts", "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable." } } }, "auth_ref": [ "r330", "r331", "r343" ] }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ContractWithCustomerLiabilityCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Billings in excess of costs and estimated earnings on uncompleted contracts", "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current." } } }, "auth_ref": [ "r330", "r331", "r343" ] }, "us-gaap_CostOfRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CostOfRevenue", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_GrossProfit", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Cost of sales", "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period." } } }, "auth_ref": [ "r74", "r189", "r260", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r445", "r679", "r815" ] }, "ppih_CostsInExcessOfBillingsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "CostsInExcessOfBillingsNet", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details" ], "lang": { "en-us": { "role": { "label": "Costs in excess of billings, net", "totalLabel": "Costs in excess of billings, net", "documentation": "Costs in excess of billings, net related to percentage of completion" } } }, "auth_ref": [] }, "ppih_CostsIncurredForUncompletedContractsAnticipatedCollectionPeriod": { "xbrltype": "durationItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "CostsIncurredForUncompletedContractsAnticipatedCollectionPeriod", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_CostsIncurredForUncompletedContractsAnticipatedCollectionPeriod", "terseLabel": "Costs Incurred for Uncompleted Contracts, Anticipated Collection Period (Year)", "documentation": "Represents the duration of time within which costs incurred for uncompleted contracts are anticipated to be collected." } } }, "auth_ref": [] }, "ppih_CostsIncurredOnUncompletedContracts": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "CostsIncurredOnUncompletedContracts", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details": { "parentTag": "ppih_EarnedRevenue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details" ], "lang": { "en-us": { "role": { "label": "Costs incurred on uncompleted contracts", "documentation": "Costs incurred on uncompleted contracts related to percentage of completion" } } }, "auth_ref": [] }, "us-gaap_CreditFacilityAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CreditFacilityAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Credit Facility [Axis]", "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing." } } }, "auth_ref": [ "r292", "r812" ] }, "us-gaap_CreditFacilityDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CreditFacilityDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Credit Facility [Domain]", "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing." } } }, "auth_ref": [ "r292", "r812", "r813" ] }, "dei_CurrentFiscalYearEndDate": { "xbrltype": "gMonthDayItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "CurrentFiscalYearEndDate", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Current Fiscal Year End Date", "documentation": "End date of current fiscal year in the format --MM-DD." } } }, "auth_ref": [] }, "us-gaap_CustomerConcentrationRiskMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "CustomerConcentrationRiskMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Customer Concentration Risk [Member]", "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." } } }, "auth_ref": [ "r84", "r256" ] }, "ppih_CustomerDepositsCurrent1": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "CustomerDepositsCurrent1", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Customers' deposits", "documentation": "The current portion of customer deposits." } } }, "auth_ref": [] }, "us-gaap_DebtAndCapitalLeaseObligations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtAndCapitalLeaseObligations", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_DebtAndCapitalLeaseObligations", "terseLabel": "Debt and Lease Obligation", "documentation": "Amount of short-term and long-term debt and lease obligation." } } }, "auth_ref": [ "r100", "r102" ] }, "us-gaap_DebtDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt" ], "lang": { "en-us": { "role": { "label": "Debt Disclosure [Text Block]", "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants." } } }, "auth_ref": [ "r87", "r188", "r281", "r282", "r283", "r284", "r285", "r291", "r292", "r302", "r308", "r309", "r310", "r311", "r312", "r313", "r318", "r325", "r326", "r327", "r453" ] }, "us-gaap_DebtInstrumentAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Debt Instrument [Axis]", "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities." } } }, "auth_ref": [ "r17", "r53", "r54", "r100", "r102", "r193", "r303", "r304", "r305", "r306", "r307", "r309", "r314", "r315", "r316", "r317", "r319", "r320", "r321", "r322", "r323", "r324", "r687", "r688", "r689", "r690", "r691", "r711", "r774", "r806", "r807", "r808", "r833", "r834" ] }, "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentBasisSpreadOnVariableRate1", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1", "terseLabel": "Debt Instrument, Basis Spread on Variable Rate", "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument." } } }, "auth_ref": [] }, "us-gaap_DebtInstrumentFaceAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentFaceAmount", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_DebtInstrumentFaceAmount", "terseLabel": "Debt Instrument, Face Amount", "documentation": "Face (par) amount of debt instrument at time of issuance." } } }, "auth_ref": [ "r303", "r453", "r454", "r688", "r689", "r711" ] }, "us-gaap_DebtInstrumentInterestRateEffectivePercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentInterestRateEffectivePercentage", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_DebtInstrumentInterestRateEffectivePercentage", "terseLabel": "Debt Instrument, Interest Rate, Effective Percentage", "documentation": "Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium." } } }, "auth_ref": [ "r56", "r328", "r453", "r454", "r711" ] }, "us-gaap_DebtInstrumentInterestRateStatedPercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentInterestRateStatedPercentage", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_DebtInstrumentInterestRateStatedPercentage", "terseLabel": "Debt Instrument, Interest Rate, Stated Percentage", "documentation": "Contractual interest rate for funds borrowed, under the debt agreement." } } }, "auth_ref": [ "r56", "r304" ] }, "us-gaap_DebtInstrumentMaturityDate": { "xbrltype": "dateItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentMaturityDate", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_DebtInstrumentMaturityDate", "terseLabel": "Debt Instrument, Maturity Date", "documentation": "Date when the debt instrument is scheduled to be fully repaid, in YYYY-MM-DD format." } } }, "auth_ref": [ "r163", "r687", "r828", "r829" ] }, "us-gaap_DebtInstrumentNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentNameDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Debt Instrument, Name [Domain]", "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities." } } }, "auth_ref": [ "r17", "r193", "r303", "r304", "r305", "r306", "r307", "r309", "r314", "r315", "r316", "r317", "r319", "r320", "r321", "r322", "r323", "r324", "r687", "r688", "r689", "r690", "r691", "r711", "r774", "r806", "r807", "r808", "r833", "r834" ] }, "us-gaap_DebtInstrumentTerm": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DebtInstrumentTerm", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_DebtInstrumentTerm", "terseLabel": "Debt Instrument, Term (Year)", "documentation": "Period of time between issuance and maturity of debt instrument, in PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [] }, "ppih_DecreaseInOperatingLeaseExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "DecreaseInOperatingLeaseExpense", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_DecreaseInOperatingLeaseExpense", "terseLabel": "Decrease in Operating Lease Expense", "documentation": "The amount of decrease in operating lease expense during the reporting period." } } }, "auth_ref": [] }, "ppih_DecreaseInOperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "DecreaseInOperatingLeaseLiabilityCurrent", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_DecreaseInOperatingLeaseLiabilityCurrent", "terseLabel": "Decrease in Operating Lease Liability, Current", "documentation": "The amount of decrease in the current portion of operating lease liability during the reporting period." } } }, "auth_ref": [] }, "ppih_DecreaseInOperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "DecreaseInOperatingLeaseLiabilityNoncurrent", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_DecreaseInOperatingLeaseLiabilityNoncurrent", "terseLabel": "Decrease in Operating Lease Liability, Noncurrent", "documentation": "Amount of decrease in the non-current portion of the operating lease liability as of the reporting period." } } }, "auth_ref": [] }, "ppih_DecreaseInOperatingLeaseRightofuseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "DecreaseInOperatingLeaseRightofuseAsset", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_DecreaseInOperatingLeaseRightofuseAsset", "terseLabel": "Decrease in Operating Lease Right-of-use Asset", "documentation": "The amount of decrease in the operating lease right-of-use asset as of the reporting period." } } }, "auth_ref": [] }, "us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredCompensationLiabilityClassifiedNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Deferred compensation liabilities", "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)." } } }, "auth_ref": [] }, "us-gaap_DeferredFinanceCostsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredFinanceCostsNet", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredFinanceCostsNet", "terseLabel": "Debt Issuance Costs, Net", "documentation": "Amount, after accumulated amortization, of debt issuance costs. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs." } } }, "auth_ref": [ "r820", "r832", "r833", "r834" ] }, "us-gaap_DeferredIncomeTaxAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredIncomeTaxAssetsNet", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsNoncurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "verboseLabel": "Deferred tax assets", "label": "us-gaap_DeferredIncomeTaxAssetsNet", "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting." } } }, "auth_ref": [ "r388", "r389" ] }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredIncomeTaxLiabilitiesNet", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Deferred tax liabilities", "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting." } } }, "auth_ref": [ "r388", "r389", "r536" ] }, "us-gaap_DeferredIncomeTaxesAndTaxCredits": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DeferredIncomeTaxesAndTaxCredits", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Deferred tax (benefit) expense", "documentation": "Amount of deferred income tax expense (benefit) and income tax credits." } } }, "auth_ref": [ "r83" ] }, "us-gaap_DepreciationDepletionAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DepreciationDepletionAndAmortization", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_DepreciationDepletionAndAmortization", "terseLabel": "Depreciation and amortization", "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets." } } }, "auth_ref": [ "r6", "r231", "r240", "r249", "r679", "r680" ] }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisaggregationOfRevenueTableTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-tables" ], "lang": { "en-us": { "role": { "label": "Disaggregation of Revenue [Table Text Block]", "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor." } } }, "auth_ref": [ "r822" ] }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement [Text Block]", "documentation": "The entire disclosure for share-based payment arrangement." } } }, "auth_ref": [ "r349", "r352", "r380", "r381", "r383", "r700" ] }, "us-gaap_DisclosureTextBlockAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisclosureTextBlockAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-1-basis-of-presentation", "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash", "http://investors.permapipe.com/20240430/role/statement-note-12-fair-value-", "http://investors.permapipe.com/20240430/role/statement-note-13-recent-accounting-pronouncements-", "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share", "http://investors.permapipe.com/20240430/role/statement-note-9-debt" ], "lang": { "en-us": { "role": { "label": "us-gaap_DisclosureTextBlockAbstract", "terseLabel": "Notes to Financial Statements" } } }, "auth_ref": [] }, "us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisposalGroupIncludingDiscontinuedOperationConsideration", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration", "terseLabel": "Disposal Group, Including Discontinued Operation, Consideration", "documentation": "Amount of consideration received or receivable for the disposal of assets and liabilities, including discontinued operation." } } }, "auth_ref": [] }, "us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "DisposalGroupsIncludingDiscontinuedOperationsNameDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Disposal Group Name [Domain]", "documentation": "Name of disposal group." } } }, "auth_ref": [ "r697", "r698" ] }, "dei_DocumentFiscalPeriodFocus": { "xbrltype": "fiscalPeriodItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentFiscalPeriodFocus", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Period Focus", "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY." } } }, "auth_ref": [] }, "dei_DocumentFiscalYearFocus": { "xbrltype": "gYearItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentFiscalYearFocus", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Year Focus", "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006." } } }, "auth_ref": [] }, "dei_DocumentInformationLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentInformationLineItems", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Information [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "dei_DocumentInformationTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentInformationTable", "lang": { "en-us": { "role": { "label": "Document Information [Table]", "documentation": "Container to support the formal attachment of each official or unofficial, public or private document as part of a submission package." } } }, "auth_ref": [] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentPeriodEndDate", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Period End Date", "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD." } } }, "auth_ref": [] }, "dei_DocumentQuarterlyReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentQuarterlyReport", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Quarterly Report", "documentation": "Boolean flag that is true only for a form used as an quarterly report." } } }, "auth_ref": [ "r744" ] }, "dei_DocumentTransitionReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentTransitionReport", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Transition Report", "documentation": "Boolean flag that is true only for a form used as a transition report." } } }, "auth_ref": [ "r745" ] }, "dei_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "DocumentType", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Type", "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'." } } }, "auth_ref": [] }, "ppih_EIBORMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "EIBORMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "EIBOR [Member]", "documentation": "Represents information pertaining to the Emirates Inter Bank Offered Rate." } } }, "auth_ref": [] }, "ppih_EarnedRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "EarnedRevenue", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details" ], "lang": { "en-us": { "role": { "label": "ppih_EarnedRevenue", "totalLabel": "Earned revenue", "documentation": "Amount of earned revenue." } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Earnings per share attributable to common stock" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareBasic": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareBasic", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details" ], "lang": { "en-us": { "role": { "verboseLabel": "Basic (in dollars per share)", "label": "us-gaap_EarningsPerShareBasic", "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period." } } }, "auth_ref": [ "r179", "r203", "r204", "r206", "r207", "r208", "r210", "r217", "r219", "r224", "r225", "r226", "r230", "r411", "r415", "r433", "r434", "r532", "r555", "r673" ] }, "us-gaap_EarningsPerShareDiluted": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareDiluted", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details" ], "lang": { "en-us": { "role": { "verboseLabel": "Diluted (in dollars per share)", "label": "us-gaap_EarningsPerShareDiluted", "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period." } } }, "auth_ref": [ "r179", "r203", "r204", "r206", "r207", "r208", "r210", "r219", "r224", "r225", "r226", "r230", "r411", "r415", "r433", "r434", "r532", "r555", "r673" ] }, "us-gaap_EarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EarningsPerShareTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Text Block]", "documentation": "The entire disclosure for earnings per share." } } }, "auth_ref": [ "r216", "r227", "r228", "r229" ] }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Effect of exchange rate changes on cash, cash equivalents and restricted cash", "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r446" ] }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EffectiveIncomeTaxRateContinuingOperations", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "terseLabel": "Effective Income Tax Rate Reconciliation, Percent", "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r391", "r701" ] }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeRelatedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Accrued compensation and payroll taxes", "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r54" ] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "terseLabel": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount", "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement." } } }, "auth_ref": [ "r382" ] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "terseLabel": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)", "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r382" ] }, "us-gaap_EmployeeStockOptionMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EmployeeStockOptionMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Option [Member]", "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time." } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressAddressLine1", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Address, Address Line One", "documentation": "Address Line 1 such as Attn, Building Name, Street Name" } } }, "auth_ref": [] }, "dei_EntityAddressCityOrTown": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressCityOrTown", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Address, City or Town", "documentation": "Name of the City or Town" } } }, "auth_ref": [] }, "dei_EntityAddressPostalZipCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Address, Postal Zip Code", "documentation": "Code for the postal or zip code" } } }, "auth_ref": [] }, "dei_EntityAddressStateOrProvince": { "xbrltype": "stateOrProvinceItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Address, State or Province", "documentation": "Name of the state or province." } } }, "auth_ref": [] }, "dei_EntityCentralIndexKey": { "xbrltype": "centralIndexKeyItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCentralIndexKey", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Central Index Key", "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK." } } }, "auth_ref": [ "r742" ] }, "dei_EntityCommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCommonStockSharesOutstanding", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Common Stock, Shares Outstanding", "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument." } } }, "auth_ref": [] }, "dei_EntityCurrentReportingStatus": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityCurrentReportingStatus", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Current Reporting Status", "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [] }, "dei_EntityDomain": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information", "http://investors.permapipe.com/20240430/role/statement-note-1-basis-of-presentation", "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-tables", "http://investors.permapipe.com/20240430/role/statement-note-12-fair-value-", "http://investors.permapipe.com/20240430/role/statement-note-13-recent-accounting-pronouncements-", "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock", "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting", "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-tables", "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes", "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-goodwill-details", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-tables", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-tables", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-tables", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual", "http://investors.permapipe.com/20240430/role/statement-significant-accounting-policies-policies" ], "lang": { "en-us": { "role": { "label": "Entity [Domain]", "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains." } } }, "auth_ref": [] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Emerging Growth Company", "documentation": "Indicate if registrant meets the emerging growth company criteria." } } }, "auth_ref": [ "r742" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityFileNumber", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity File Number", "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen." } } }, "auth_ref": [] }, "dei_EntityFilerCategory": { "xbrltype": "filerCategoryItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityFilerCategory", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Filer Category", "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [ "r742" ] }, "dei_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Incorporation, State or Country Code", "documentation": "Two-character EDGAR code representing the state or country of incorporation." } } }, "auth_ref": [] }, "dei_EntityInteractiveDataCurrent": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityInteractiveDataCurrent", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Interactive Data Current", "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)." } } }, "auth_ref": [ "r748" ] }, "dei_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityRegistrantName", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Registrant Name", "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC." } } }, "auth_ref": [ "r742" ] }, "dei_EntityShellCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityShellCompany", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Shell Company", "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act." } } }, "auth_ref": [ "r742" ] }, "dei_EntitySmallBusiness": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntitySmallBusiness", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Small Business", "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)." } } }, "auth_ref": [ "r742" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Entity Tax Identification Number", "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS." } } }, "auth_ref": [ "r742" ] }, "us-gaap_EquityComponentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "EquityComponentDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Equity Component [Domain]", "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc." } } }, "auth_ref": [ "r13", "r151", "r173", "r174", "r175", "r194", "r195", "r196", "r200", "r208", "r211", "r213", "r232", "r261", "r266", "r280", "r329", "r399", "r400", "r406", "r407", "r408", "r412", "r414", "r415", "r423", "r424", "r425", "r426", "r427", "r429", "r432", "r447", "r448", "r449", "r450", "r451", "r452", "r456", "r458", "r481", "r551", "r566", "r567", "r568", "r586", "r639" ] }, "ppih_EstimatedEarnings": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "EstimatedEarnings", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details": { "parentTag": "ppih_EarnedRevenue", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details" ], "lang": { "en-us": { "role": { "label": "Estimated earnings", "documentation": "Estimated earnings related to percentage of completion" } } }, "auth_ref": [] }, "us-gaap_FairValueDisclosuresTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FairValueDisclosuresTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-12-fair-value-" ], "lang": { "en-us": { "role": { "label": "Fair Value Disclosures [Text Block]", "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information." } } }, "auth_ref": [ "r436", "r437", "r438", "r439", "r440", "r441", "r442", "r443", "r444", "r526", "r704", "r708" ] }, "ppih_FinanceAndOperatingLeaseLiabilityMaturityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "FinanceAndOperatingLeaseLiabilityMaturityTableTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables" ], "lang": { "en-us": { "role": { "label": "Finance and Operating Lease, Liability, Maturity [Table Text Block]", "documentation": "Tabular disclosure of finance and operating lease liability maturity." } } }, "auth_ref": [] }, "us-gaap_FinanceLeaseInterestExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseInterestExpense", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details" ], "lang": { "en-us": { "role": { "label": "Interest on lease liabilities", "documentation": "Amount of interest expense on finance lease liability." } } }, "auth_ref": [ "r462", "r467", "r712" ] }, "us-gaap_FinanceLeaseInterestPaymentOnLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseInterestPaymentOnLiability", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Operating cash outflows from finance leases", "documentation": "Amount of interest paid on finance lease liability." } } }, "auth_ref": [ "r464", "r471" ] }, "us-gaap_FinanceLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiability", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Total lease liabilities, finance leases", "terseLabel": "Finance Lease, Liability", "totalLabel": "Total finance lease liabilities", "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease." } } }, "auth_ref": [ "r460", "r475" ] }, "us-gaap_FinanceLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details": { "parentTag": "us-gaap_FinanceLeaseLiability", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Finance lease liability short-term", "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current." } } }, "auth_ref": [ "r460" ] }, "us-gaap_FinanceLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_FinanceLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList", "terseLabel": "Finance Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]", "documentation": "Indicates line item in statement of financial position that includes current finance lease liability." } } }, "auth_ref": [ "r461" ] }, "us-gaap_FinanceLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details": { "parentTag": "us-gaap_FinanceLeaseLiability", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Finance lease liability long-term", "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as noncurrent." } } }, "auth_ref": [ "r460" ] }, "us-gaap_FinanceLeaseLiabilityNoncurrentStatementOfFinancialPositionExtensibleList": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityNoncurrentStatementOfFinancialPositionExtensibleList", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_FinanceLeaseLiabilityNoncurrentStatementOfFinancialPositionExtensibleList", "terseLabel": "Finance Lease, Liability, Noncurrent, Statement of Financial Position [Extensible Enumeration]", "documentation": "Indicates line item in statement of financial position that includes noncurrent finance lease liability." } } }, "auth_ref": [ "r461" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsDue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityPaymentsDue", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "totalLabel": "Total lease payments, finance leases", "documentation": "Amount of lessee's undiscounted obligation for lease payments for finance lease." } } }, "auth_ref": [ "r475" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityPaymentsDueAfterYearFive", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "Thereafter, finance leases", "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid 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)." } } }, "auth_ref": [ "r475" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityPaymentsDueNextTwelveMonths", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "For the year ended January 31, 2026, finance leases", "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)." } } }, "auth_ref": [ "r475" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityPaymentsDueYearFive", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "For the year ended January 31, 2030, finance leases", "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r475" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityPaymentsDueYearFour", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "For the year ended January 31, 2029, finance leases", "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)." } } }, "auth_ref": [ "r475" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityPaymentsDueYearThree", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "For the year ended January 31, 2028, finance leases", "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)." } } }, "auth_ref": [ "r475" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityPaymentsDueYearTwo", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "For the year ended January 31, 2027, finance leases", "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)." } } }, "auth_ref": [ "r475" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "For the nine months ending January 31, 2024, finance leases", "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in remainder of current fiscal year." } } }, "auth_ref": [ "r839" ] }, "us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseLiabilityUndiscountedExcessAmount", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount", "negatedLabel": "Less: amount representing interest, finance leases", "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for finance lease." } } }, "auth_ref": [ "r475" ] }, "ppih_FinanceLeaseObligationsMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "FinanceLeaseObligationsMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Finance Lease Obligations [Member]", "documentation": "Represents finance lease obligation." } } }, "auth_ref": [] }, "us-gaap_FinanceLeasePrincipalPayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeasePrincipalPayments", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Financing cash outflows from finance leases", "negatedLabel": "Payments on finance lease obligations", "documentation": "Amount of cash outflow for principal payment on finance lease." } } }, "auth_ref": [ "r463", "r471" ] }, "us-gaap_FinanceLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseRightOfUseAsset", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_FinanceLeaseRightOfUseAsset", "terseLabel": "Finance Lease, Right-of-Use Asset, after Accumulated Amortization", "documentation": "Amount, after accumulated amortization, of right-of-use asset from finance lease." } } }, "auth_ref": [ "r459" ] }, "us-gaap_FinanceLeaseRightOfUseAssetAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseRightOfUseAssetAmortization", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details" ], "lang": { "en-us": { "role": { "label": "Amortization of ROU assets", "documentation": "Amount of amortization expense attributable to right-of-use asset from finance lease." } } }, "auth_ref": [ "r462", "r467", "r712" ] }, "us-gaap_FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList", "terseLabel": "Finance Lease, Right-of-Use Asset, Statement of Financial Position [Extensible Enumeration]", "documentation": "Indicates line item in statement of financial position that includes finance lease right-of-use asset." } } }, "auth_ref": [ "r461" ] }, "us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseWeightedAverageDiscountRatePercent", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details" ], "lang": { "en-us": { "role": { "label": "Finance leases", "documentation": "Weighted average discount rate for finance lease calculated at point in time." } } }, "auth_ref": [ "r474", "r712" ] }, "us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinanceLeaseWeightedAverageRemainingLeaseTerm1", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details" ], "lang": { "en-us": { "role": { "label": "Finance leases (Year)", "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." } } }, "auth_ref": [ "r473", "r712" ] }, "ppih_FinanceLeasesAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "FinanceLeasesAssetsMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Finance Leases Assets [Member]", "documentation": "Represents information pertaining to finance leases assets." } } }, "auth_ref": [] }, "us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinancingReceivablesEqualToGreaterThan90DaysPastDueMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Financial Asset, Equal to or Greater than 90 Days Past Due [Member]", "documentation": "Financial asset equal to or greater than 90 days past due." } } }, "auth_ref": [ "r685" ] }, "us-gaap_FinancingReceivablesPeriodPastDueAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinancingReceivablesPeriodPastDueAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Financial Asset, Aging [Axis]", "documentation": "Information by period in which financial asset is past due or not past due." } } }, "auth_ref": [ "r111", "r271", "r685" ] }, "us-gaap_FinancingReceivablesPeriodPastDueDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "FinancingReceivablesPeriodPastDueDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Financial Asset, Aging [Domain]", "documentation": "Period in which financial asset is past due or not past due. For past due, element name and standard label in Financial Asset, [numeric lower end] to [numeric higher end] [date measure] Past Due [Member] or Financial Asset, Greater than [low end numeric value] [date measure] Past Due [Member] or Financial Asset, Less than [high end numeric value] [date measure] Past Due [Member] formats." } } }, "auth_ref": [ "r111", "r271", "r685" ] }, "ppih_ForeignRevolvingLinesMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "ForeignRevolvingLinesMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Foreign Revolving Lines [Member]", "documentation": "Represents information pertaining to foreign revolving credit facilities." } } }, "auth_ref": [] }, "us-gaap_GainLossOnDispositionOfAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GainLossOnDispositionOfAssets", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_GainLossOnDispositionOfAssets", "negatedLabel": "Gain (loss) from disposal of fixed assets", "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, excluding oil and gas property and timber property." } } }, "auth_ref": [ "r772", "r804", "r805" ] }, "us-gaap_GeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GeneralAndAdministrativeExpense", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "General and administrative expenses", "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line." } } }, "auth_ref": [ "r76", "r624" ] }, "us-gaap_Goodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Goodwill", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsNoncurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-goodwill-details" ], "lang": { "en-us": { "role": { "label": "Goodwill", "periodStartLabel": "Goodwill", "periodEndLabel": "Goodwill", "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized." } } }, "auth_ref": [ "r160", "r273", "r527", "r680", "r686", "r706", "r713", "r794", "r801" ] }, "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GoodwillForeignCurrencyTranslationGainLoss", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-goodwill-details" ], "lang": { "en-us": { "role": { "label": "Goodwill, foreign exchange change effect", "documentation": "Amount of foreign currency translation gain (loss) which increases (decreases) asset representing future economic benefit from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized." } } }, "auth_ref": [ "r274" ] }, "us-gaap_GrossProfit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "GrossProfit", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_GrossProfit", "totalLabel": "Gross profit", "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity." } } }, "auth_ref": [ "r72", "r74", "r109", "r189", "r260", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r445", "r675", "r679", "r782", "r784", "r785", "r786", "r787", "r815" ] }, "ppih_GulfInsulationGroupMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "GulfInsulationGroupMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Gulf Insulation Group [Member]", "documentation": "Represents Gulf Insulation Group." } } }, "auth_ref": [] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_ProfitLoss", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "totalLabel": "Income (loss) before income taxes", "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest." } } }, "auth_ref": [ "r73", "r105", "r109", "r533", "r547", "r675", "r679", "r782", "r784", "r785", "r786", "r787" ] }, "us-gaap_IncomeStatementAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeStatementAbstract", "lang": { "en-us": { "role": { "label": "Income Statement [Abstract]" } } }, "auth_ref": [] }, "us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Disposal Group Name [Axis]", "documentation": "Information by name of disposal group." } } }, "auth_ref": [ "r697", "r698" ] }, "us-gaap_IncomeTaxDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes" ], "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Text Block]", "documentation": "The entire disclosure for income tax." } } }, "auth_ref": [ "r190", "r386", "r391", "r392", "r393", "r394", "r395", "r396", "r401", "r403", "r404", "r405", "r584", "r701" ] }, "us-gaap_IncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_ProfitLoss", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Income tax expense", "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r116", "r117", "r212", "r213", "r231", "r241", "r249", "r390", "r391", "r402", "r556", "r701" ] }, "us-gaap_IncomeTaxesPaidNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncomeTaxesPaidNet", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Cash income taxes paid", "documentation": "Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax." } } }, "auth_ref": [ "r25", "r186", "r397", "r398" ] }, "us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccountsAndOtherReceivables", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 13.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables", "negatedLabel": "Unbilled accounts receivable", "documentation": "The increase (decrease) during the reporting period in the amount due from customers for the credit sale of goods and services; includes accounts receivable and other types of receivables." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccountsPayable", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 8.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInAccountsPayable", "terseLabel": "Accounts payable", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInAccountsReceivable", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 5.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInAccountsReceivable", "terseLabel": "Increase (Decrease) in Accounts Receivable", "negatedTerseLabel": "Accounts receivable", "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services." } } }, "auth_ref": [ "r5" ] }, "ppih_IncreaseDecreaseInContractWithCustomerAssetAndLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "IncreaseDecreaseInContractWithCustomerAssetAndLiability", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "ppih_IncreaseDecreaseInContractWithCustomerAssetAndLiability", "terseLabel": "Costs and estimated earnings in excess of billings on uncompleted contracts", "documentation": "Amount of increase (decrease) in contract assets and liabilities." } } }, "auth_ref": [] }, "ppih_IncreaseDecreaseInCustomerDeposits1": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "IncreaseDecreaseInCustomerDeposits1", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 10.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "ppih_IncreaseDecreaseInCustomerDeposits1", "terseLabel": "Customers' deposits", "documentation": "The increase (decrease) during the period in customer deposits." } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInEmployeeRelatedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInEmployeeRelatedLiabilities", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 9.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInEmployeeRelatedLiabilities", "terseLabel": "Accrued compensation and payroll taxes", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInIncomeTaxesPayableNetOfIncomeTaxesReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInIncomeTaxesPayableNetOfIncomeTaxesReceivable", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 11.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInIncomeTaxesPayableNetOfIncomeTaxesReceivable", "terseLabel": "Income taxes payable", "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." } } }, "auth_ref": [ "r771" ] }, "us-gaap_IncreaseDecreaseInInventories": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInInventories", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 6.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInInventories", "negatedTerseLabel": "Inventories", "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Changes in operating assets and liabilities" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOtherOperatingCapitalNet", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 15.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet", "negatedTerseLabel": "Other assets and liabilities", "documentation": "Amount of increase (decrease) in operating assets after deduction of operating liabilities classified as other." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInOutstandingChecksFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInOutstandingChecksFinancingActivities", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Increase (decrease) in drafts payable", "documentation": "The change in cash during the period due to the net increase or decrease in outstanding checks, the liability that represents checks that have been issued but that have not cleared. The entity may classify these cash flows as financing or operating activities." } } }, "auth_ref": [ "r7", "r24" ] }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 12.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "negatedTerseLabel": "Prepaid expenses and other current assets", "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details" ], "lang": { "en-us": { "role": { "label": "Stock options and restricted stock with exercise prices or grant date prices below the average market prices (in shares)", "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method." } } }, "auth_ref": [ "r220", "r221", "r222", "r226", "r351" ] }, "ecd_InsiderTradingArrLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "InsiderTradingArrLineItems", "auth_ref": [ "r746" ] }, "us-gaap_InterestIncomeExpenseNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InterestIncomeExpenseNet", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_InterestIncomeExpenseNet", "negatedLabel": "Interest expense", "documentation": "Amount of interest income (expense) classified as operating." } } }, "auth_ref": [ "r528", "r784" ] }, "us-gaap_InterestPaidNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InterestPaidNet", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Cash interest paid", "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount." } } }, "auth_ref": [ "r181", "r184", "r185" ] }, "us-gaap_InventoryNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "InventoryNet", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Inventories", "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer." } } }, "auth_ref": [ "r167", "r671", "r713" ] }, "ppih_JointVentureMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "JointVentureMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Joint Venture [Member]", "documentation": "Relating to the Joint Venture." } } }, "auth_ref": [] }, "ppih_LandAndBuildingsInLebanonTennesseeMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LandAndBuildingsInLebanonTennesseeMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Land and Buildings in Lebanon, Tennessee [Member]", "documentation": "Represents the sale leaseback transaction in connection with the land and buildings in Lebanon, Tennessee." } } }, "auth_ref": [] }, "us-gaap_LeaseContractualTermAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeaseContractualTermAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "Lease Contractual Term [Axis]", "documentation": "Information by contractual term of lease arrangement." } } }, "auth_ref": [ "r477", "r758" ] }, "us-gaap_LeaseContractualTermDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeaseContractualTermDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "Lease Contractual Term [Domain]", "documentation": "Contractual term of lease arrangement." } } }, "auth_ref": [ "r477", "r758" ] }, "us-gaap_LeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeaseCost", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_LeaseCost", "totalLabel": "Total Lease costs", "documentation": "Amount of lease cost recognized by lessee for lease contract." } } }, "auth_ref": [ "r466", "r712" ] }, "us-gaap_LeaseCostTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LeaseCostTableTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables" ], "lang": { "en-us": { "role": { "label": "Lease, Cost [Table Text Block]", "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." } } }, "auth_ref": [ "r838" ] }, "dei_LegalEntityAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "LegalEntityAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information", "http://investors.permapipe.com/20240430/role/statement-note-1-basis-of-presentation", "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-tables", "http://investors.permapipe.com/20240430/role/statement-note-12-fair-value-", "http://investors.permapipe.com/20240430/role/statement-note-13-recent-accounting-pronouncements-", "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock", "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting", "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-tables", "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes", "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-goodwill-details", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-tables", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-tables", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-tables", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual", "http://investors.permapipe.com/20240430/role/statement-significant-accounting-policies-policies" ], "lang": { "en-us": { "role": { "label": "Legal Entity [Axis]", "documentation": "The set of legal entities associated with a report." } } }, "auth_ref": [] }, "ppih_LesseeFinanceLeaseAnnualRentIncreasePercentage": { "xbrltype": "percentItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LesseeFinanceLeaseAnnualRentIncreasePercentage", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_LesseeFinanceLeaseAnnualRentIncreasePercentage", "terseLabel": "Lessee, Finance Lease, Annual Rent Increase, Percentage", "documentation": "The percentage of annual rent increase on the finance lease of the lessee." } } }, "auth_ref": [] }, "us-gaap_LesseeFinanceLeaseDiscountRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeFinanceLeaseDiscountRate", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeFinanceLeaseDiscountRate", "terseLabel": "Lessee, Finance Lease, Discount Rate", "documentation": "Discount rate used by lessee to determine present value of finance lease payments." } } }, "auth_ref": [ "r837" ] }, "ppih_LesseeFinanceLeaseNumberOfOptionsToExtend": { "xbrltype": "integerItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LesseeFinanceLeaseNumberOfOptionsToExtend", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_LesseeFinanceLeaseNumberOfOptionsToExtend", "terseLabel": "Lessee, Finance Lease, Number of Options to Extend", "documentation": "The number of options to extend the finance lease of the lessee." } } }, "auth_ref": [] }, "us-gaap_LesseeFinanceLeaseRenewalTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeFinanceLeaseRenewalTerm1", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeFinanceLeaseRenewalTerm1", "terseLabel": "Lessee, Finance Lease, Renewal Term (Year)", "documentation": "Term of lessee's finance lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r836" ] }, "us-gaap_LesseeFinanceLeaseTermOfContract1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeFinanceLeaseTermOfContract1", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeFinanceLeaseTermOfContract1", "terseLabel": "Lessee, Finance Lease, Term of Contract (Year)", "documentation": "Term of lessee's finance lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r836" ] }, "ppih_LesseeOperatingAndFinanceLeasesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LesseeOperatingAndFinanceLeasesTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating and Finance Leases [Text Block]", "documentation": "The entire disclosure for operating and finance leases of lessee." } } }, "auth_ref": [] }, "ppih_LesseeOperatingLeaseAnnualPayment": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LesseeOperatingLeaseAnnualPayment", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_LesseeOperatingLeaseAnnualPayment", "terseLabel": "Lessee, Operating Lease, Annual Payment", "documentation": "Represents the amount of payment expected to be made per year under operating lease of lessee." } } }, "auth_ref": [] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "totalLabel": "Total lease payments, operating leases", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease." } } }, "auth_ref": [ "r475" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "Thereafter, operating leases", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r475" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "For the year ended January 31, 2026, operating leases", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r475" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "For the year ended January 31, 2030, operating leases", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r475" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "For the year ended January 31, 2029, operating leases", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r475" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "For the year ended January 31, 2028, operating leases", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r475" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "For the year ended January 31, 2027, operating leases", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r475" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "For the nine months ending January 31, 2024, operating leases", "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year." } } }, "auth_ref": [ "r839" ] }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "negatedLabel": "Less: amount representing interest, operating leases", "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease." } } }, "auth_ref": [ "r475" ] }, "us-gaap_LettersOfCreditOutstandingAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LettersOfCreditOutstandingAmount", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LettersOfCreditOutstandingAmount", "terseLabel": "Letters of Credit Outstanding, Amount", "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date." } } }, "auth_ref": [] }, "us-gaap_Liabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "Liabilities", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_Liabilities", "terseLabel": "Liabilities", "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others." } } }, "auth_ref": [ "r17", "r53", "r54", "r55", "r58", "r59", "r60", "r61", "r189", "r260", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r418", "r421", "r422", "r445", "r599", "r674", "r740", "r815", "r841", "r842" ] }, "us-gaap_LiabilitiesAndStockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesAndStockholdersEquity", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_LiabilitiesAndStockholdersEquity", "totalLabel": "Total liabilities and stockholders' equity", "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any." } } }, "auth_ref": [ "r69", "r104", "r543", "r713", "r775", "r791", "r831" ] }, "us-gaap_LiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_LiabilitiesCurrent", "totalLabel": "Total current liabilities", "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer." } } }, "auth_ref": [ "r55", "r156", "r189", "r260", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r418", "r421", "r422", "r445", "r713", "r815", "r841", "r842" ] }, "us-gaap_LiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesCurrentAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "Liabilities, Current [Abstract]" } } }, "auth_ref": [] }, "us-gaap_LiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "Liabilities, Noncurrent", "totalLabel": "Total long-term liabilities", "documentation": "Amount of obligation due after one year or beyond the normal operating cycle, if longer." } } }, "auth_ref": [ "r17", "r58", "r59", "r60", "r61", "r189", "r260", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r418", "r421", "r422", "r445", "r815", "r841", "r842" ] }, "us-gaap_LiabilitiesNoncurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LiabilitiesNoncurrentAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "Liabilities, Noncurrent [Abstract]" } } }, "auth_ref": [] }, "ppih_LineOfCreditFacilityCapitalExpendituresRestrictions": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LineOfCreditFacilityCapitalExpendituresRestrictions", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_LineOfCreditFacilityCapitalExpendituresRestrictions", "terseLabel": "Line of Credit Facility, Capital Expenditures Restrictions", "documentation": "Maximum amount of capital expenditures allowed under a credit agreement." } } }, "auth_ref": [] }, "ppih_LineOfCreditFacilityCommonStockRepurchaseRestrictions": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LineOfCreditFacilityCommonStockRepurchaseRestrictions", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_LineOfCreditFacilityCommonStockRepurchaseRestrictions", "terseLabel": "Line of Credit Facility, Common Stock Repurchase Restrictions", "documentation": "Maximum amount of common stock repurchase allowed under credit agreement." } } }, "auth_ref": [] }, "ppih_LineOfCreditFacilityCovenantTermsEBITDARatioMinimumUndrawnAvailability": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LineOfCreditFacilityCovenantTermsEBITDARatioMinimumUndrawnAvailability", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_LineOfCreditFacilityCovenantTermsEBITDARatioMinimumUndrawnAvailability", "terseLabel": "Line of Credit Facility, Covenant Terms, EBITDA Ratio, Minimum Undrawn Availability", "documentation": "The minimum amount of undrawn availability that triggers the EDITDA ratio covenant under the debt instrument." } } }, "auth_ref": [] }, "ppih_LineOfCreditFacilityCovenantTermsEBITDARatioMinimumUndrawnAvailabilityForFiveConsecutiveDays": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LineOfCreditFacilityCovenantTermsEBITDARatioMinimumUndrawnAvailabilityForFiveConsecutiveDays", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_LineOfCreditFacilityCovenantTermsEBITDARatioMinimumUndrawnAvailabilityForFiveConsecutiveDays", "terseLabel": "Line of Credit Facility, Covenant Terms, EBITDA Ratio, Minimum Undrawn Availability for Five Consecutive Days", "documentation": "The minimum amount of undrawn availability for five consecutive days that will trigger the EBITDA ratio covenant of the line of credit facility." } } }, "auth_ref": [] }, "us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityCurrentBorrowingCapacity", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity", "terseLabel": "Line of Credit Facility, Current Borrowing Capacity", "documentation": "Amount of current borrowing capacity under the credit facility considering any current restrictions on the amount that could be borrowed (for example, borrowings may be limited by the amount of current assets), but without considering any amounts currently outstanding under the facility." } } }, "auth_ref": [ "r52", "r57" ] }, "ppih_LineOfCreditFacilityDefaultAdditionalInterestRate": { "xbrltype": "percentItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LineOfCreditFacilityDefaultAdditionalInterestRate", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_LineOfCreditFacilityDefaultAdditionalInterestRate", "terseLabel": "Line of Credit Facility, Default, Additional Interest Rate", "documentation": "The amount of additional interest in the event of default of the line of credit facility." } } }, "auth_ref": [] }, "ppih_LineOfCreditFacilityFixedChargeCoverageRatioRequired": { "xbrltype": "pureItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LineOfCreditFacilityFixedChargeCoverageRatioRequired", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_LineOfCreditFacilityFixedChargeCoverageRatioRequired", "terseLabel": "Line of Credit Facility, Fixed Charge Coverage Ratio Required", "documentation": "Represents the fixed charge coverage ratio required under a line of credit facility." } } }, "auth_ref": [] }, "ppih_LineOfCreditFacilityGuaranteedAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LineOfCreditFacilityGuaranteedAmount", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_LineOfCreditFacilityGuaranteedAmount", "terseLabel": "Line of Credit Facility, Guaranteed Amount", "documentation": "Amount of debt guaranteed under credit facility." } } }, "auth_ref": [] }, "us-gaap_LineOfCreditFacilityInterestRateAtPeriodEnd": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityInterestRateAtPeriodEnd", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LineOfCreditFacilityInterestRateAtPeriodEnd", "terseLabel": "Line of Credit Facility, Interest Rate at Period End", "documentation": "The effective interest rate at the end of the reporting period." } } }, "auth_ref": [ "r52", "r57" ] }, "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityMaximumBorrowingCapacity", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity", "terseLabel": "Line of Credit Facility, Maximum Borrowing Capacity", "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility." } } }, "auth_ref": [ "r52", "r57" ] }, "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityRemainingBorrowingCapacity", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity", "terseLabel": "Line of Credit Facility, Remaining Borrowing Capacity", "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding)." } } }, "auth_ref": [ "r52", "r57", "r292" ] }, "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage", "terseLabel": "Line of Credit Facility, Unused Capacity, Commitment Fee Percentage", "documentation": "The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility." } } }, "auth_ref": [] }, "us-gaap_LinesOfCreditCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LinesOfCreditCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Revolving line - North America", "terseLabel": "Line of Credit, Current", "documentation": "The carrying value as of the balance sheet date of the current portion of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement." } } }, "auth_ref": [ "r53", "r100" ] }, "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable" ], "lang": { "en-us": { "role": { "label": "Loans, Notes, Trade and Other Receivables Disclosure [Text Block]", "documentation": "The entire disclosure for claims held for amounts due to entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses." } } }, "auth_ref": [ "r453", "r789" ] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "LocalPhoneNumber", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtAndCapitalLeaseObligationsCurrent", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent", "terseLabel": "Long-Term Debt and Lease Obligation, Current", "documentation": "Amount of long-term debt and lease obligation, classified as current." } } }, "auth_ref": [ "r54" ] }, "us-gaap_LongTermDebtNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermDebtNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Excluding Current Maturities", "documentation": "Amount, after deduction of unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation." } } }, "auth_ref": [ "r164" ] }, "us-gaap_LongTermLoansPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongTermLoansPayable", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Loan payable to GIG", "documentation": "Carrying value as of the balance sheet date of loans payable (with maturities initially due after one year or beyond the operating cycle if longer), excluding current portion." } } }, "auth_ref": [ "r17" ] }, "ppih_LongtermDebtAndLeaseObligationNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LongtermDebtAndLeaseObligationNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "verboseLabel": "Long-term finance obligation", "label": "ppih_LongtermDebtAndLeaseObligationNoncurrent", "terseLabel": "Long-Term Debt and Lease Obligation, Noncurrent", "documentation": "Amount of long-term debt and lease obligation, classified as noncurrent." } } }, "auth_ref": [] }, "ppih_LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "verboseLabel": "Current maturities of long-term debt", "label": "Long-term Debt, Current Maturities, Excluding North American Revolving Line", "terseLabel": "Long-term Debt, Current Maturities, Excluding North American Revolving Line", "documentation": "Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current, excluding north american revolving lines of credit." } } }, "auth_ref": [] }, "us-gaap_LongtermDebtTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongtermDebtTypeAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Type [Axis]", "documentation": "Information by type of long-term debt." } } }, "auth_ref": [ "r17", "r806", "r807", "r808" ] }, "us-gaap_LongtermDebtTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "LongtermDebtTypeDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Type [Domain]", "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." } } }, "auth_ref": [ "r17", "r30", "r806", "r807", "r808" ] }, "srt_MajorCustomersAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MajorCustomersAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]", "documentation": "Information by name or description of a single external customer or a group of external customers." } } }, "auth_ref": [ "r256", "r695", "r723", "r727", "r822", "r854", "r857", "r858", "r860", "r861", "r862", "r863", "r864", "r865", "r866", "r867", "r868", "r869", "r870", "r871", "r872", "r873", "r874", "r875", "r876", "r877", "r878", "r879", "r880", "r881", "r882", "r883", "r884" ] }, "srt_MaximumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MaximumMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]", "documentation": "Upper limit of the provided range." } } }, "auth_ref": [ "r121", "r123", "r125", "r126", "r128", "r149", "r150", "r287", "r288", "r289", "r290", "r347", "r385", "r435", "r491", "r564", "r565", "r576", "r591", "r592", "r643", "r645", "r647", "r648", "r650", "r666", "r667", "r684", "r692", "r699", "r707", "r708", "r709", "r710", "r724", "r819", "r843", "r844", "r845", "r846", "r847", "r848" ] }, "us-gaap_MiddleEastMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "MiddleEastMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-details-textual" ], "lang": { "en-us": { "role": { "label": "Middle East [Member]", "documentation": "Region of Middle East." } } }, "auth_ref": [ "r889", "r890", "r891", "r892" ] }, "srt_MinimumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "MinimumMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]", "documentation": "Lower limit of the provided range." } } }, "auth_ref": [ "r121", "r123", "r125", "r126", "r128", "r149", "r150", "r287", "r288", "r289", "r290", "r347", "r385", "r435", "r491", "r564", "r565", "r576", "r591", "r592", "r643", "r645", "r647", "r648", "r650", "r666", "r667", "r684", "r692", "r699", "r707", "r708", "r709", "r724", "r819", "r843", "r844", "r845", "r846", "r847", "r848" ] }, "us-gaap_MinorityInterestDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "MinorityInterestDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-" ], "lang": { "en-us": { "role": { "label": "Noncontrolling Interest Disclosure [Text Block]", "documentation": "The entire disclosure for noncontrolling interest in consolidated subsidiaries, which could include the name of the subsidiary, the ownership percentage held by the parent, the ownership percentage held by the noncontrolling owners, the amount of the noncontrolling interest, the location of this amount on the balance sheet (when not reported separately), an explanation of the increase or decrease in the amount of the noncontrolling interest, the noncontrolling interest share of the net Income or Loss of the subsidiary, the location of this amount on the income statement (when not reported separately), the nature of the noncontrolling interest such as background information and terms, the amount of the noncontrolling interest represented by preferred stock, a description of the preferred stock, and the dividend requirements of the preferred stock." } } }, "auth_ref": [ "r95" ] }, "us-gaap_MinorityInterestOwnershipPercentageByParent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "MinorityInterestOwnershipPercentageByParent", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_MinorityInterestOwnershipPercentageByParent", "terseLabel": "Subsidiary, Ownership Percentage, Parent", "documentation": "The parent entity's interest in net assets of the subsidiary, expressed as a percentage." } } }, "auth_ref": [] }, "ppih_MortgageNoteSecuredByTennesseeManufacturingFacilityMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "MortgageNoteSecuredByTennesseeManufacturingFacilityMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Mortgage Note Secured by Tennessee Manufacturing Facility [Member]", "documentation": "Represents information pertaining to a mortgage note secured by a manufacturing facility in Lebanon, Tennessee." } } }, "auth_ref": [] }, "ecd_MtrlTermsOfTrdArrTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "MtrlTermsOfTrdArrTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Material Terms of Trading Arrangement [Text Block]" } } }, "auth_ref": [ "r747" ] }, "srt_NameOfMajorCustomerDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "NameOfMajorCustomerDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]", "documentation": "Single external customer or group of external customers." } } }, "auth_ref": [ "r256", "r695", "r723", "r727", "r822", "r854", "r857", "r858", "r860", "r861", "r862", "r863", "r864", "r865", "r866", "r867", "r868", "r869", "r870", "r871", "r872", "r873", "r874", "r875", "r876", "r877", "r878", "r879", "r880", "r881", "r882", "r883", "r884" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInFinancingActivities", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "totalLabel": "Net cash provided by financing activities", "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit." } } }, "auth_ref": [ "r183" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Financing activities" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInInvestingActivities", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "totalLabel": "Net cash used in investing activities", "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets." } } }, "auth_ref": [ "r183" ] }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Investing activities" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInOperatingActivities", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "totalLabel": "Net cash provided by operating activities", "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities." } } }, "auth_ref": [ "r81", "r82", "r83" ] }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Operating activities" } } }, "auth_ref": [] }, "us-gaap_NetIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetIncomeLoss", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details" ], "lang": { "en-us": { "role": { "verboseLabel": "Net income", "label": "Net income (loss) attributable to common stock", "totalLabel": "Net income (loss) attributable to common stock", "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent." } } }, "auth_ref": [ "r75", "r83", "r106", "r154", "r169", "r171", "r175", "r189", "r199", "r203", "r204", "r206", "r207", "r208", "r212", "r213", "r223", "r260", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r411", "r415", "r434", "r445", "r550", "r622", "r637", "r638", "r738", "r815" ] }, "us-gaap_NetIncomeLossAttributableToNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetIncomeLossAttributableToNoncontrollingInterest", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Less: Net income attributable to non-controlling interest", "terseLabel": "Net Income (Loss) Attributable to Noncontrolling Interest", "documentation": "Amount of Net Income (Loss) attributable to noncontrolling interest." } } }, "auth_ref": [ "r44", "r97", "r169", "r171", "r208", "r212", "r213", "r549", "r769" ] }, "us-gaap_NetInvestmentInLease": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NetInvestmentInLease", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "Net Investment in Lease, before Allowance for Credit Loss", "documentation": "Amount, before allowance for credit loss, of net investment in sales-type and direct financing leases." } } }, "auth_ref": [ "r111", "r271", "r478", "r792" ] }, "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-13-recent-accounting-pronouncements-" ], "lang": { "en-us": { "role": { "label": "Accounting Standards Update and Change in Accounting Principle [Text Block]", "documentation": "The entire disclosure for change in accounting principle. Includes, but is not limited to, nature, reason, and method of adopting amendment to accounting standards or other change in accounting principle." } } }, "auth_ref": [ "r118", "r153", "r197", "r198", "r201", "r202", "r214", "r215", "r257", "r262", "r263", "r409", "r410", "r412", "r415", "r428", "r431", "r479", "r482", "r483", "r493", "r494", "r495", "r570", "r571", "r572", "r573", "r575" ] }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-significant-accounting-policies-policies" ], "lang": { "en-us": { "role": { "label": "New Accounting Pronouncements, Policy [Policy Text Block]", "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact." } } }, "auth_ref": [] }, "ecd_NonRule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonRule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "ecd_NonRule10b51ArrAdoptedFlag", "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted [Flag]" } } }, "auth_ref": [ "r747" ] }, "ecd_NonRule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "NonRule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "ecd_NonRule10b51ArrTrmntdFlag", "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated [Flag]" } } }, "auth_ref": [ "r747" ] }, "us-gaap_NoncontrollingInterestIncreaseFromBusinessCombination": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NoncontrollingInterestIncreaseFromBusinessCombination", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_NoncontrollingInterestIncreaseFromBusinessCombination", "terseLabel": "Noncontrolling Interest, Increase from Business Combination", "documentation": "Amount of increase in noncontrolling interest from a business combination." } } }, "auth_ref": [ "r11", "r33", "r42" ] }, "ppih_NorthAmericanLoanPartiesMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "NorthAmericanLoanPartiesMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "North American Loan Parties [Member]", "documentation": "Represents information regarding certain U.S. and Canadian subsidiaries collectively referred to as the North American Loan Parties." } } }, "auth_ref": [] }, "ppih_NoteToFinancialStatementDetailsTextual": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "NoteToFinancialStatementDetailsTextual", "lang": { "en-us": { "role": { "label": "Note To Financial Statement Details Textual" } } }, "auth_ref": [] }, "us-gaap_NotesPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NotesPayable", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_NotesPayable", "terseLabel": "Notes Payable", "documentation": "Including the current and noncurrent portions, aggregate carrying amount of all types of notes payable, as of the balance sheet date, with initial maturities beyond one year or beyond the normal operating cycle, if longer." } } }, "auth_ref": [ "r17", "r102", "r849", "r850" ] }, "us-gaap_NotesReceivableNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NotesReceivableNet", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_NotesReceivableNet", "terseLabel": "Financing Receivable, after Allowance for Credit Loss", "documentation": "Amortized cost, after allowance for credit loss, of financing receivable. Excludes financing receivable covered under loss sharing agreement and net investment in lease." } } }, "auth_ref": [ "r272", "r609", "r790", "r852" ] }, "ppih_NotesToFinancialStatementsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "NotesToFinancialStatementsAbstract", "lang": { "en-us": { "role": { "label": "Notes To Financial Statements [Abstract]" } } }, "auth_ref": [] }, "ppih_NumberOfMajorCustomers": { "xbrltype": "integerItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "NumberOfMajorCustomers", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_NumberOfMajorCustomers", "terseLabel": "Number of Major Customers", "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." } } }, "auth_ref": [] }, "us-gaap_NumberOfReportableSegments": { "xbrltype": "integerItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "NumberOfReportableSegments", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_NumberOfReportableSegments", "terseLabel": "Number of Reportable Segments", "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements." } } }, "auth_ref": [ "r676", "r683", "r783" ] }, "ppih_OneCustomerMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "OneCustomerMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "One Customer [Member]", "documentation": "Represents information pertaining to one customer." } } }, "auth_ref": [] }, "us-gaap_OperatingExpenses": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingExpenses", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_OperatingExpenses", "totalLabel": "Total operating expenses", "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense." } } }, "auth_ref": [] }, "us-gaap_OperatingExpensesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingExpensesAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Operating expenses" } } }, "auth_ref": [] }, "us-gaap_OperatingIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingIncomeLoss", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_OperatingIncomeLoss", "totalLabel": "Income from operations", "documentation": "The net result for the period of deducting operating expenses from operating revenues." } } }, "auth_ref": [ "r109", "r675", "r782", "r784", "r785", "r786", "r787" ] }, "us-gaap_OperatingLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseCost", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details" ], "lang": { "en-us": { "role": { "label": "Operating lease costs", "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." } } }, "auth_ref": [ "r468", "r712" ] }, "us-gaap_OperatingLeaseExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseExpense", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_OperatingLeaseExpense", "terseLabel": "Operating Lease, Expense", "documentation": "Amount of operating lease expense. Excludes sublease income." } } }, "auth_ref": [ "r835" ] }, "us-gaap_OperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiability", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Total lease liabilities, operating leases", "terseLabel": "Operating Lease, Liability", "totalLabel": "Total operating lease liabilities", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease." } } }, "auth_ref": [ "r460" ] }, "us-gaap_OperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details": { "parentTag": "us-gaap_OperatingLeaseLiability", "weight": 1.0, "order": 0.0 }, "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Operating lease liability short-term", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current." } } }, "auth_ref": [ "r460" ] }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details": { "parentTag": "us-gaap_OperatingLeaseLiability", "weight": 1.0, "order": 1.0 }, "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Operating lease liability long-term", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent." } } }, "auth_ref": [ "r460" ] }, "us-gaap_OperatingLeasePayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeasePayments", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Operating cash outflows from operating leases", "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use." } } }, "auth_ref": [ "r465", "r471" ] }, "us-gaap_OperatingLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseRightOfUseAsset", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsNoncurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Operating lease right-of-use asset", "terseLabel": "Operating Lease, Right-of-Use Asset", "documentation": "Amount of lessee's right to use underlying asset under operating lease." } } }, "auth_ref": [ "r459" ] }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details" ], "lang": { "en-us": { "role": { "label": "Operating leases", "documentation": "Weighted average discount rate for operating lease calculated at point in time." } } }, "auth_ref": [ "r474", "r712" ] }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details" ], "lang": { "en-us": { "role": { "label": "Operating leases (Year)", "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r473", "r712" ] }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-1-basis-of-presentation" ], "lang": { "en-us": { "role": { "label": "Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]", "documentation": "The entire disclosure for organization, consolidation and basis of presentation of financial statements disclosure." } } }, "auth_ref": [ "r50", "r95", "r578", "r579" ] }, "us-gaap_OtherAssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherAssetsNoncurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsNoncurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Other long-term assets", "documentation": "Amount of noncurrent assets classified as other." } } }, "auth_ref": [ "r161" ] }, "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Foreign currency translation adjustment", "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." } } }, "auth_ref": [ "r2", "r551" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited" ], "lang": { "en-us": { "role": { "label": "Other comprehensive income (loss)" } } }, "auth_ref": [] }, "us-gaap_OtherLiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherLiabilitiesNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Other long-term liabilities", "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r59" ] }, "us-gaap_OtherNoncurrentAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherNoncurrentAssetsMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Other Noncurrent Assets [Member]", "documentation": "Primary financial statement caption encompassing other noncurrent assets." } } }, "auth_ref": [] }, "us-gaap_OtherNonoperatingIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "OtherNonoperatingIncomeExpense", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Other (expense) income", "documentation": "Amount of income (expense) related to nonoperating activities, classified as other." } } }, "auth_ref": [ "r77" ] }, "srt_OwnershipAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "OwnershipAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Ownership [Axis]", "documentation": "Information by name of entity in which ownership interest is disclosed. Excludes equity method investee and named security investment." } } }, "auth_ref": [] }, "srt_OwnershipDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "OwnershipDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Ownership [Domain]", "documentation": "Name of entity in which ownership interest is disclosed. Excludes equity method investee and named security investment." } } }, "auth_ref": [] }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment", "negatedLabel": "Capital expenditures", "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets." } } }, "auth_ref": [ "r79" ] }, "ppih_PercentOfRevenueFromContractWithCustomerIncludingAssessedTax": { "xbrltype": "percentItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "PercentOfRevenueFromContractWithCustomerIncludingAssessedTax", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Sales by product, percent", "documentation": "Represents the percentage of revenue from contracts with customers that is attributable to a specified product or service." } } }, "auth_ref": [] }, "ppih_PermaPipeCanadaLtdMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "PermaPipeCanadaLtdMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-details-textual" ], "lang": { "en-us": { "role": { "label": "Perma-Pipe Canada, Ltd [Member]", "documentation": "Information by business combination or series of individually immaterial business combinations." } } }, "auth_ref": [] }, "us-gaap_PolicyTextBlockAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PolicyTextBlockAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-significant-accounting-policies-policies" ], "lang": { "en-us": { "role": { "label": "us-gaap_PolicyTextBlockAbstract", "terseLabel": "Accounting Policies" } } }, "auth_ref": [] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PrepaidExpenseAndOtherAssetsCurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Prepaid expenses and other current assets", "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r766" ] }, "us-gaap_ProceedsFromInsuranceSettlementInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromInsuranceSettlementInvestingActivities", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Proceeds from insurance recovery for property and equipment", "documentation": "Amount of cash inflow for proceeds from settlement of insurance claim, classified as investing activities. Excludes insurance settlement classified as operating activities." } } }, "auth_ref": [ "r4", "r21" ] }, "us-gaap_ProceedsFromIssuanceOfDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromIssuanceOfDebt", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_ProceedsFromIssuanceOfDebt", "terseLabel": "Proceeds from Issuance of Debt", "documentation": "The cash inflow during the period from additional borrowings in aggregate debt. Includes proceeds from short-term and long-term debt." } } }, "auth_ref": [ "r770" ] }, "us-gaap_ProceedsFromLinesOfCredit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromLinesOfCredit", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Proceeds from revolving credit lines", "documentation": "Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements." } } }, "auth_ref": [ "r22", "r774" ] }, "ppih_ProceedsFromPaymentsForStockOptionsExercisedAndTaxesRelatedToRestrictedSharesVested": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "ProceedsFromPaymentsForStockOptionsExercisedAndTaxesRelatedToRestrictedSharesVested", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Stock options exercised and taxes paid related to restricted shares vested", "documentation": "Represents the cash inflow (outflow) related to stock options exercised and taxes related to restricted shares vested." } } }, "auth_ref": [] }, "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment", "terseLabel": "Proceeds from Sale of Property, Plant, and Equipment, Total", "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale." } } }, "auth_ref": [ "r78" ] }, "us-gaap_ProductMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProductMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Product [Member]", "documentation": "Article or substance produced by nature, labor or machinery." } } }, "auth_ref": [ "r693" ] }, "srt_ProductOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ProductOrServiceAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Product and Service [Axis]", "documentation": "Information by product and service, or group of similar products and similar services." } } }, "auth_ref": [ "r130", "r131", "r132", "r133", "r134", "r135", "r147", "r252", "r492", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r668", "r693", "r722", "r724", "r725", "r728", "r729", "r764", "r810", "r811", "r822", "r854", "r857", "r858", "r859", "r860", "r861", "r862", "r863", "r864", "r865", "r866", "r867", "r868", "r869", "r870", "r871", "r872", "r873", "r874", "r875", "r876", "r877", "r878", "r879", "r880", "r881", "r882", "r883", "r884" ] }, "srt_ProductsAndServicesDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ProductsAndServicesDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Product and Service [Domain]", "documentation": "Product or service, or a group of similar products or similar services." } } }, "auth_ref": [ "r130", "r131", "r132", "r133", "r134", "r135", "r147", "r252", "r492", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r668", "r693", "r722", "r724", "r725", "r728", "r729", "r764", "r810", "r811", "r822", "r854", "r857", "r858", "r859", "r860", "r861", "r862", "r863", "r864", "r865", "r866", "r867", "r868", "r869", "r870", "r871", "r872", "r873", "r874", "r875", "r876", "r877", "r878", "r879", "r880", "r881", "r882", "r883", "r884" ] }, "us-gaap_ProfitLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProfitLoss", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0, "order": 0.0 }, "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", "weight": 1.0, "order": 0.0 }, "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 14.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Net income (loss)", "totalLabel": "Net income (loss)", "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest." } } }, "auth_ref": [ "r154", "r169", "r171", "r182", "r189", "r199", "r208", "r212", "r213", "r260", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r300", "r301", "r411", "r415", "r416", "r419", "r420", "r434", "r445", "r533", "r548", "r585", "r622", "r637", "r638", "r702", "r703", "r739", "r769", "r815" ] }, "ppih_PromissoryNoteMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "PromissoryNoteMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Promissory Note [Member]", "documentation": "Promissory note." } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentByTypeAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Long-Lived Tangible Asset [Axis]", "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale." } } }, "auth_ref": [ "r8", "r476" ] }, "us-gaap_PropertyPlantAndEquipmentFairValueDisclosure": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentFairValueDisclosure", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_PropertyPlantAndEquipmentFairValueDisclosure", "terseLabel": "Property, Plant, and Equipment, Fair Value Disclosure", "documentation": "Fair value portion of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures." } } }, "auth_ref": [ "r705", "r826", "r827", "r830" ] }, "us-gaap_PropertyPlantAndEquipmentGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentGross", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details": { "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Property and Equipment - gross", "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." } } }, "auth_ref": [ "r86", "r158", "r546" ] }, "us-gaap_PropertyPlantAndEquipmentNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentNet", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsNoncurrent", "weight": 1.0, "order": 2.0 }, "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment, Net", "totalLabel": "Property and Equipment - net", "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures." } } }, "auth_ref": [ "r8", "r476", "r534", "r546", "r713" ] }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "PropertyPlantAndEquipmentTypeDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Long-Lived Tangible Asset [Domain]", "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." } } }, "auth_ref": [ "r86", "r476" ] }, "us-gaap_ProvisionForDoubtfulAccounts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ProvisionForDoubtfulAccounts", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Provision on uncollectible accounts", "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable." } } }, "auth_ref": [ "r180", "r269" ] }, "srt_RangeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RangeAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]", "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median." } } }, "auth_ref": [ "r121", "r123", "r125", "r126", "r128", "r149", "r150", "r287", "r288", "r289", "r290", "r345", "r347", "r375", "r376", "r377", "r385", "r435", "r489", "r490", "r491", "r564", "r565", "r576", "r591", "r592", "r643", "r645", "r647", "r648", "r650", "r666", "r667", "r684", "r692", "r699", "r707", "r708", "r709", "r710", "r724", "r732", "r809", "r819", "r828", "r844", "r845", "r846", "r847", "r848" ] }, "srt_RangeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RangeMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]", "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median." } } }, "auth_ref": [ "r121", "r123", "r125", "r126", "r128", "r149", "r150", "r287", "r288", "r289", "r290", "r345", "r347", "r375", "r376", "r377", "r385", "r435", "r489", "r490", "r491", "r564", "r565", "r576", "r591", "r592", "r643", "r645", "r647", "r648", "r650", "r666", "r667", "r684", "r692", "r699", "r707", "r708", "r709", "r710", "r724", "r732", "r809", "r819", "r828", "r844", "r845", "r846", "r847", "r848" ] }, "us-gaap_ReceivablesBillingStatusDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ReceivablesBillingStatusDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Receivables Billing Status [Domain]", "documentation": "Amounts due from customers (or dealers) within the next year (or operating cycle, if longer) for goods or services that have been delivered or used, but not yet paid." } } }, "auth_ref": [] }, "us-gaap_RedeemableNoncontrollingInterestEquityCarryingAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RedeemableNoncontrollingInterestEquityCarryingAmount", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Non-controlling interest", "terseLabel": "Redeemable Noncontrolling Interest, Equity, Carrying Amount", "documentation": "As of the reporting date, the aggregate carrying amount of all noncontrolling interests which are redeemable by the (parent) entity (1) at a fixed or determinable price on a fixed or determinable date, (2) at the option of the holder of the noncontrolling interest, or (3) upon occurrence of an event that is not solely within the control of the (parent) entity. This item includes noncontrolling interest holder's ownership (or holders' ownership) regardless of the type of equity interest (common, preferred, other) including all potential organizational (legal) forms of the investee entity." } } }, "auth_ref": [ "r31", "r32", "r88", "r89" ] }, "us-gaap_RelatedPartyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Related and Nonrelated Parties [Domain]", "documentation": "Related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest." } } }, "auth_ref": [ "r258", "r346", "r484", "r485", "r537", "r544", "r594", "r595", "r596", "r597", "r598", "r619", "r621", "r642" ] }, "us-gaap_RelatedPartyMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Related Party [Member]", "documentation": "Party related to reporting entity. Includes, but is not limited to, affiliate, entity for which investment is accounted for by equity method, trust for benefit of employees, and principal owner, management, and members of immediate family." } } }, "auth_ref": [ "r191", "r192", "r484", "r485", "r486", "r487", "r537", "r544", "r594", "r595", "r596", "r597", "r598", "r619", "r621", "r642" ] }, "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RelatedPartyTransactionsByRelatedPartyAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Related and Nonrelated Parties [Axis]", "documentation": "Information by related and nonrelated parties. Related party includes, but is not limited to, affiliate, other entity for which investment is accounted for under equity method, trust for benefit of employee, principal owner, management, and member of immediate family, and other party that may be prevented from pursuing separate interests because of control, significant influence, or ownership interest." } } }, "auth_ref": [ "r258", "r346", "r484", "r485", "r537", "r544", "r594", "r595", "r596", "r597", "r598", "r619", "r621", "r642", "r840" ] }, "ppih_RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Renewal of Revolving Credit Lines Used by Saudi Arabian Subsidiary [Member]", "documentation": "Represents revolving credit lines used by Saudi Arabian subsidiary." } } }, "auth_ref": [] }, "us-gaap_RepaymentsOfDebtAndCapitalLeaseObligations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RepaymentsOfDebtAndCapitalLeaseObligations", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 6.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_RepaymentsOfDebtAndCapitalLeaseObligations", "negatedLabel": "Payments of principal on finance obligation", "documentation": "Amount of cash outflow for short-term and long-term debt and lease obligation." } } }, "auth_ref": [] }, "us-gaap_RepaymentsOfLinesOfCredit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RepaymentsOfLinesOfCredit", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 5.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_RepaymentsOfLinesOfCredit", "negatedLabel": "Payments of debt on revolving credit lines", "documentation": "Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements." } } }, "auth_ref": [ "r80", "r774" ] }, "us-gaap_RepaymentsOfOtherDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RepaymentsOfOtherDebt", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_RepaymentsOfOtherDebt", "negatedLabel": "Payments of other debt", "documentation": "Amount of cash outflow for the payment of debt classified as other." } } }, "auth_ref": [ "r80" ] }, "us-gaap_RepaymentsOfSecuredDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RepaymentsOfSecuredDebt", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_RepaymentsOfSecuredDebt", "terseLabel": "Repayments of Secured Debt", "documentation": "The cash outflow to repay long-term debt that is wholly or partially secured by collateral. Excludes repayments of tax exempt secured debt." } } }, "auth_ref": [ "r80" ] }, "srt_RestatementAdjustmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RestatementAdjustmentMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period, Adjustment [Member]", "documentation": "Cumulative increase (decrease) for adjustment to previously issued financial statements. Includes, but is not limited to, adjustment for retrospective application of amendment to accounting standards, other change in accounting principle, correction of error, and other revision." } } }, "auth_ref": [ "r194", "r195", "r196", "r210", "r211", "r230", "r432", "r433", "r457", "r751", "r752", "r753", "r754", "r757", "r759", "r760", "r788" ] }, "srt_RestatementAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RestatementAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period [Axis]", "documentation": "Information by adjustment to previously issued financial statements. Includes, but is not limited to, adjustment for retrospective application of amendment to accounting standards, other change in accounting principle, correction of error, and other revision." } } }, "auth_ref": [ "r148", "r152", "r194", "r195", "r196", "r199", "r200", "r203", "r204", "r205", "r206", "r209", "r210", "r211", "r212", "r213", "r214", "r230", "r264", "r265", "r407", "r408", "r411", "r412", "r414", "r415", "r430", "r432", "r433", "r434", "r455", "r457", "r480", "r481", "r566", "r567", "r568", "r569", "r570", "r571", "r572", "r573", "r574", "r575", "r580", "r788" ] }, "srt_RestatementDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "RestatementDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period [Domain]", "documentation": "Adjustment to previously issued financial statements. Includes, but is not limited to, adjustment for retrospective application of amendment to accounting standards, other change in accounting principle, correction of error, and other revision." } } }, "auth_ref": [ "r148", "r152", "r194", "r195", "r196", "r199", "r200", "r203", "r204", "r205", "r206", "r209", "r210", "r211", "r212", "r213", "r214", "r230", "r264", "r265", "r407", "r408", "r411", "r412", "r414", "r415", "r430", "r432", "r433", "r434", "r455", "r457", "r480", "r481", "r566", "r567", "r568", "r569", "r570", "r571", "r572", "r573", "r574", "r575", "r580", "r788" ] }, "us-gaap_RestrictedCashAndCashEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RestrictedCashAndCashEquivalents", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_RestrictedCashAndCashEquivalents", "terseLabel": "Restricted cash", "documentation": "Amount of cash and cash equivalents restricted as to withdrawal or usage. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r23", "r98", "r157", "r187", "r539" ] }, "us-gaap_RestrictedCashCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RestrictedCashCurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Restricted cash", "documentation": "Amount of cash restricted as to withdrawal or usage, classified as current. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits." } } }, "auth_ref": [ "r765", "r773" ] }, "us-gaap_RestrictedStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RestrictedStockMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details" ], "lang": { "en-us": { "role": { "label": "Restricted Stock [Member]", "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met." } } }, "auth_ref": [ "r26" ] }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RetainedEarningsAccumulatedDeficit", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Retained earnings", "documentation": "Amount of accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r66", "r90", "r542", "r570", "r575", "r583", "r602", "r713" ] }, "us-gaap_RetainedEarningsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RetainedEarningsMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Retained Earnings [Member]", "documentation": "Accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r151", "r194", "r195", "r196", "r200", "r208", "r211", "r213", "r261", "r266", "r280", "r399", "r400", "r406", "r407", "r408", "r412", "r414", "r415", "r423", "r425", "r426", "r429", "r432", "r456", "r458", "r566", "r568", "r586", "r887" ] }, "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerIncludingAssessedTax", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_GrossProfit", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Sales by product", "terseLabel": "Net sales", "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise." } } }, "auth_ref": [ "r107", "r108", "r231", "r238", "r239", "r245", "r249", "r252", "r254", "r256", "r341", "r342", "r492" ] }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RevenueFromContractWithCustomerTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer [Text Block]", "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts." } } }, "auth_ref": [ "r119", "r333", "r334", "r335", "r336", "r337", "r338", "r339", "r340", "r344" ] }, "ppih_RevolvingCreditLinesUsedByEgyptSubsidiaries2Member": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "RevolvingCreditLinesUsedByEgyptSubsidiaries2Member", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Revolving Credit Lines Used by Egypt Subsidiaries 2 [Member]", "documentation": "Represents second revolving credit lines used by Egypt subsidiaries." } } }, "auth_ref": [] }, "ppih_RevolvingCreditLinesUsedByEgyptSubsidiariesMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "RevolvingCreditLinesUsedByEgyptSubsidiariesMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Revolving Credit Lines Used by Egypt Subsidiaries [Member]", "documentation": "Represents information related to revolving credit lines used by Egypt subsidiaries." } } }, "auth_ref": [] }, "ppih_RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Revolving Credit Lines Used by Middle Eastern Subsidiaries, 1 [Member]", "documentation": "Represents the first revolving credit line used by the Company's Middle Eastern subsidiaries." } } }, "auth_ref": [] }, "ppih_RevolvingCreditLinesUsedByMiddleEasternSubsidiaries2Member": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "RevolvingCreditLinesUsedByMiddleEasternSubsidiaries2Member", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Revolving Credit Lines Used by Middle Eastern Subsidiaries, 2 [Member]", "documentation": "Represents the second revolving credit line used by the Company's Middle Eastern subsidiaries." } } }, "auth_ref": [] }, "ppih_RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Revolving Credit Lines Used by Saudi Arabian Subsidiary [Member]", "documentation": "Represents revolving credit lines used by Saudi Arabian subsidiary." } } }, "auth_ref": [] }, "ppih_RevolvingLinesNorthAmericaMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "RevolvingLinesNorthAmericaMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Revolving Lines, North America [Member]", "documentation": "Represents information pertaining to revolving lines in North America." } } }, "auth_ref": [] }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Operating leases liabilities", "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability." } } }, "auth_ref": [ "r472", "r712" ] }, "ecd_Rule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Rule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "ecd_Rule10b51ArrAdoptedFlag", "terseLabel": "Rule 10b5-1 Arrangement Adopted [Flag]" } } }, "auth_ref": [ "r747" ] }, "ecd_Rule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2024", "localname": "Rule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "ecd_Rule10b51ArrTrmntdFlag", "terseLabel": "Rule 10b5-1 Arrangement Terminated [Flag]" } } }, "auth_ref": [ "r747" ] }, "ppih_SIBORMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "SIBORMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "SIBOR [Member]", "documentation": "Represents Saudi Inter Bank Offered Rate." } } }, "auth_ref": [] }, "ppih_SaleLeasebackTransactionAnnualRentalPaymentsAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "SaleLeasebackTransactionAnnualRentalPaymentsAmount", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_SaleLeasebackTransactionAnnualRentalPaymentsAmount", "terseLabel": "Sale Leaseback Transaction, Annual Rental Payments, Amount", "documentation": "Amount of cash outflow from leaseback transactions." } } }, "auth_ref": [] }, "us-gaap_SalesRevenueNetMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SalesRevenueNetMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Revenue Benchmark [Member]", "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." } } }, "auth_ref": [ "r256", "r755" ] }, "srt_ScenarioUnspecifiedDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "ScenarioUnspecifiedDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Scenario [Domain]", "documentation": "Scenario reported, distinguishing information from actual fact. Includes, but is not limited to, pro forma and forecast. Excludes actual facts." } } }, "auth_ref": [ "r148", "r214", "r348", "r749", "r779" ] }, "us-gaap_ScheduleOfAssumptionsForLongDurationContractsByProductAndGuaranteeTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfAssumptionsForLongDurationContractsByProductAndGuaranteeTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-tables" ], "lang": { "en-us": { "role": { "label": "Schedule of Assumptions for Long-Duration Contracts by Product and Guarantee [Table Text Block]", "documentation": "Tabular disclosure of the underlying assumptions and percentages or rates used in determining the fair value of guarantee obligations for each type of long-duration contract." } } }, "auth_ref": [ "r113", "r114", "r115" ] }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-tables" ], "lang": { "en-us": { "role": { "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations." } } }, "auth_ref": [ "r781" ] }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-tables" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]", "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement." } } }, "auth_ref": [ "r37" ] }, "us-gaap_ScheduleOfGoodwillTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfGoodwillTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-tables" ], "lang": { "en-us": { "role": { "label": "Schedule of Goodwill [Table Text Block]", "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule." } } }, "auth_ref": [ "r686", "r793", "r794", "r795", "r796", "r797", "r798", "r799", "r800", "r801", "r802", "r803" ] }, "us-gaap_ScheduleOfRestrictedCashAndCashEquivalentsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfRestrictedCashAndCashEquivalentsTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-tables" ], "lang": { "en-us": { "role": { "label": "Restrictions on Cash and Cash Equivalents [Table Text Block]", "documentation": "Tabular disclosure of cash and cash equivalents restricted as to withdrawal or usage." } } }, "auth_ref": [ "r16", "r98", "r851" ] }, "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-tables" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]", "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." } } }, "auth_ref": [ "r14", "r15", "r92" ] }, "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-tables" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]", "documentation": "Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year." } } }, "auth_ref": [] }, "us-gaap_SecuredDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SecuredDebt", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_SecuredDebt", "terseLabel": "Secured Debt", "documentation": "Carrying value as of the balance sheet date, including the current and noncurrent portions, of collateralized debt obligations (with maturities initially due after one year or beyond the operating cycle, if longer). Such obligations include mortgage loans, chattel loans, and any other borrowings secured by assets of the borrower." } } }, "auth_ref": [ "r17", "r102", "r849" ] }, "ppih_SecuredOvernightFinancingRateSOFRMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "SecuredOvernightFinancingRateSOFRMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Secured Overnight Financing Rate (SOFR) [Member]", "documentation": "Represents the Secured Overnight Financing Rate (SOFR)." } } }, "auth_ref": [] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "Security12bTitle", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Title of 12(b) Security", "documentation": "Title of a 12(b) registered security." } } }, "auth_ref": [ "r741" ] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "SecurityExchangeName", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Security Exchange Name", "documentation": "Name of the Exchange on which a security is registered." } } }, "auth_ref": [ "r743" ] }, "srt_SegmentGeographicalDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "SegmentGeographicalDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-details-textual" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]", "documentation": "Geographical area." } } }, "auth_ref": [ "r122", "r124", "r127", "r129", "r136", "r137", "r138", "r139", "r141", "r142", "r143", "r144", "r145", "r146", "r254", "r255", "r496", "r497", "r498", "r499", "r500", "r501", "r502", "r503", "r504", "r505", "r506", "r507", "r508", "r509", "r510", "r511", "r512", "r513", "r514", "r515", "r516", "r517", "r518", "r519", "r520", "r521", "r522", "r523", "r524", "r525", "r588", "r589", "r590", "r644", "r646", "r649", "r651", "r653", "r656", "r657", "r658", "r659", "r661", "r662", "r663", "r664", "r665", "r669", "r694", "r714", "r715", "r716", "r717", "r718", "r719", "r720", "r721", "r726", "r732", "r822", "r854", "r857", "r858", "r860", "r861", "r862", "r863", "r864", "r865", "r866", "r867", "r868", "r869", "r870", "r871", "r872", "r873", "r874", "r875", "r876", "r877", "r878", "r879", "r880", "r881", "r882", "r883", "r884" ] }, "us-gaap_SegmentReportingDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SegmentReportingDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting" ], "lang": { "en-us": { "role": { "label": "Segment Reporting Disclosure [Text Block]", "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments." } } }, "auth_ref": [ "r110", "r231", "r233", "r234", "r235", "r236", "r237", "r242", "r243", "r244", "r247", "r248", "r249", "r250", "r251", "r252", "r253", "r256", "r676", "r677", "r678", "r679", "r681", "r682", "r683" ] }, "us-gaap_SellingExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SellingExpense", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Selling expenses", "documentation": "Expenses recognized in the period that are directly related to the selling and distribution of products or services." } } }, "auth_ref": [ "r76" ] }, "us-gaap_ShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensation", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensation", "terseLabel": "Stock-based compensation expense", "documentation": "Amount of noncash expense for share-based payment arrangement." } } }, "auth_ref": [ "r5" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "terseLabel": "Granted (in shares)", "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)." } } }, "auth_ref": [ "r367" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details" ], "lang": { "en-us": { "role": { "label": "Granted, weighted average price (in dollars per share)", "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)." } } }, "auth_ref": [ "r367" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "periodStartLabel": "Outstanding, weighted average price (in dollars per share)", "periodEndLabel": "Outstanding, weighted average price (in dollars per share)", "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options." } } }, "auth_ref": [ "r364", "r365" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber", "periodStartLabel": "Outstanding (in shares)", "periodEndLabel": "Outstanding (in shares)", "documentation": "Number of equity instruments other than options outstanding, including both vested and non-vested instruments." } } }, "auth_ref": [ "r93", "r94" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details" ], "lang": { "en-us": { "role": { "label": "Exercised, aggregate intrinsic value", "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares." } } }, "auth_ref": [ "r371" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod", "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period (in shares)", "negatedLabel": "Expired or forfeited, options (in shares)", "documentation": "For presentations that combine terminations, the number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan or that expired." } } }, "auth_ref": [ "r823" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details" ], "lang": { "en-us": { "role": { "label": "Expired or forfeited, weighted average exercise price (in dollars per share)", "documentation": "Weighted average price of options that were either forfeited or expired." } } }, "auth_ref": [ "r823" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross (in shares)", "documentation": "Gross number of share options (or share units) granted during the period." } } }, "auth_ref": [ "r360" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details" ], "lang": { "en-us": { "role": { "label": "Outstanding, aggregate intrinsic value", "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding." } } }, "auth_ref": [ "r36" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "periodStartLabel": "Outstanding, options (in shares)", "periodEndLabel": "Outstanding, options (in shares)", "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." } } }, "auth_ref": [ "r372" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details" ], "lang": { "en-us": { "role": { "label": "Award Type [Domain]", "documentation": "Award under share-based payment arrangement." } } }, "auth_ref": [ "r353", "r354", "r355", "r356", "r357", "r358", "r359", "r360", "r361", "r362", "r363", "r364", "r365", "r366", "r367", "r368", "r369", "r370", "r371", "r372", "r373", "r374", "r375", "r376", "r377", "r378" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details" ], "lang": { "en-us": { "role": { "label": "Exercised, weighted average exercise price (in dollars per share)", "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares." } } }, "auth_ref": [ "r361" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding", "terseLabel": "Outstanding, aggregate intrinsic value", "documentation": "Intrinsic value of outstanding award under share-based payment arrangement. Excludes share and unit options." } } }, "auth_ref": [] }, "ppih_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresOrRetirementsForTaxesWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresOrRetirementsForTaxesWeightedAverageGrantDateFairValue", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details" ], "lang": { "en-us": { "role": { "label": "Forfeited or retired for taxes (in dollars per share)", "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, or retired for taxes." } } }, "auth_ref": [] }, "ppih_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedAndIssuedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedAndIssuedInPeriod", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details" ], "lang": { "en-us": { "role": { "label": "ppih_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedAndIssuedInPeriod", "negatedLabel": "Vested and issued (in shares)", "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested and issued during the reporting period." } } }, "auth_ref": [] }, "ppih_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedAndIssuedInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedAndIssuedInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details" ], "lang": { "en-us": { "role": { "label": "Vested and issued, weighted average price (in dollars per share)", "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement." } } }, "auth_ref": [] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares", "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Nonvested, Number of Shares (in shares)", "documentation": "Number of non-vested options outstanding." } } }, "auth_ref": [] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details" ], "lang": { "en-us": { "role": { "label": "Outstanding, weighted average remaining contractual term (Year)", "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." } } }, "auth_ref": [ "r372" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares", "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested, Number of Shares (in shares)", "documentation": "Number of options vested." } } }, "auth_ref": [] }, "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1", "periodStartLabel": "Outstanding, weighted average exercise price (in dollars per share)", "periodEndLabel": "Outstanding, weighted average exercise price (in dollars per share)", "documentation": "The weighted average price as of the balance sheet date at which grantees could acquire the underlying shares with respect to all outstanding stock options which are in the customized range of exercise prices." } } }, "auth_ref": [ "r93", "r94" ] }, "us-gaap_SharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SharesOutstanding", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharesOutstanding", "periodStartLabel": "Balances (in shares)", "periodEndLabel": "Balances (in shares)", "documentation": "Number of shares issued which are neither cancelled nor held in the treasury." } } }, "auth_ref": [] }, "us-gaap_ShortTermLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "ShortTermLeaseCost", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details" ], "lang": { "en-us": { "role": { "label": "Short-term lease costs (1)", "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less." } } }, "auth_ref": [ "r469", "r712" ] }, "ppih_SpecialtyPipingSystemsAndCoatingMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "SpecialtyPipingSystemsAndCoatingMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Specialty Piping Systems And Coating [Member]", "documentation": "Represents information pertaining to Specialty Piping Systems and Coating." } } }, "auth_ref": [] }, "us-gaap_StatementEquityComponentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementEquityComponentsAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Equity Components [Axis]", "documentation": "Information by component of equity." } } }, "auth_ref": [ "r13", "r63", "r67", "r68", "r151", "r173", "r174", "r175", "r194", "r195", "r196", "r200", "r208", "r211", "r213", "r232", "r261", "r266", "r280", "r329", "r399", "r400", "r406", "r407", "r408", "r412", "r414", "r415", "r423", "r424", "r425", "r426", "r427", "r429", "r432", "r447", "r448", "r449", "r450", "r451", "r452", "r456", "r458", "r481", "r551", "r566", "r567", "r568", "r586", "r639" ] }, "srt_StatementGeographicalAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "StatementGeographicalAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-details-textual" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]", "documentation": "Information by geographical components." } } }, "auth_ref": [ "r122", "r124", "r127", "r129", "r136", "r137", "r138", "r139", "r141", "r142", "r143", "r144", "r145", "r146", "r254", "r255", "r496", "r497", "r498", "r499", "r500", "r501", "r502", "r503", "r504", "r505", "r506", "r507", "r508", "r509", "r510", "r511", "r512", "r513", "r514", "r515", "r516", "r517", "r518", "r519", "r520", "r521", "r522", "r523", "r524", "r525", "r588", "r589", "r590", "r644", "r646", "r649", "r651", "r653", "r656", "r657", "r658", "r659", "r661", "r662", "r663", "r664", "r665", "r669", "r694", "r714", "r715", "r716", "r717", "r718", "r719", "r720", "r721", "r726", "r732", "r822", "r854", "r857", "r858", "r860", "r861", "r862", "r863", "r864", "r865", "r866", "r867", "r868", "r869", "r870", "r871", "r872", "r873", "r874", "r875", "r876", "r877", "r878", "r879", "r880", "r881", "r882", "r883", "r884" ] }, "us-gaap_StatementLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementLineItems", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-1-basis-of-presentation", "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-tables", "http://investors.permapipe.com/20240430/role/statement-note-12-fair-value-", "http://investors.permapipe.com/20240430/role/statement-note-13-recent-accounting-pronouncements-", "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock", "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting", "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-tables", "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes", "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-goodwill-details", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-tables", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-tables", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-tables", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual", "http://investors.permapipe.com/20240430/role/statement-significant-accounting-policies-policies" ], "lang": { "en-us": { "role": { "label": "Statement [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r194", "r195", "r196", "r232", "r458", "r492", "r581", "r587", "r593", "r594", "r595", "r596", "r597", "r598", "r601", "r604", "r605", "r606", "r607", "r608", "r610", "r611", "r612", "r613", "r615", "r616", "r617", "r618", "r619", "r621", "r623", "r624", "r625", "r626", "r627", "r628", "r629", "r630", "r631", "r632", "r633", "r634", "r635", "r636", "r639", "r733" ] }, "us-gaap_StatementOfCashFlowsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfCashFlowsAbstract", "lang": { "en-us": { "role": { "label": "Statement of Cash Flows [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfFinancialPositionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfFinancialPositionAbstract", "lang": { "en-us": { "role": { "label": "Statement of Financial Position [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract", "lang": { "en-us": { "role": { "label": "Statement of Comprehensive Income [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementOfStockholdersEquityAbstract", "lang": { "en-us": { "role": { "label": "Statement of Stockholders' Equity [Abstract]" } } }, "auth_ref": [] }, "srt_StatementScenarioAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "StatementScenarioAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Scenario [Axis]", "documentation": "Information by scenario reported, distinguishing information from actual fact. Includes, but is not limited to, pro forma and forecast. Excludes actual facts." } } }, "auth_ref": [ "r148", "r214", "r348", "r749", "r750", "r779" ] }, "us-gaap_StatementTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StatementTable", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-1-basis-of-presentation", "http://investors.permapipe.com/20240430/role/statement-note-10-leases", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables", "http://investors.permapipe.com/20240430/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-tables", "http://investors.permapipe.com/20240430/role/statement-note-12-fair-value-", "http://investors.permapipe.com/20240430/role/statement-note-13-recent-accounting-pronouncements-", "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock", "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20240430/role/statement-note-15-noncontrolling-interests-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting", "http://investors.permapipe.com/20240430/role/statement-note-2-business-segment-reporting-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20240430/role/statement-note-3-accounts-receivable-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-tables", "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes", "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-goodwill-details", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-tables", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-tables", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-tables", "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual", "http://investors.permapipe.com/20240430/role/statement-significant-accounting-policies-policies" ], "lang": { "en-us": { "role": { "label": "Statement [Table]", "documentation": "Disclosure of information about statement of comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity." } } }, "auth_ref": [ "r194", "r195", "r196", "r232", "r258", "r458", "r492", "r581", "r587", "r593", "r594", "r595", "r596", "r597", "r598", "r601", "r604", "r605", "r606", "r607", "r608", "r610", "r611", "r612", "r613", "r615", "r616", "r617", "r618", "r619", "r621", "r623", "r624", "r625", "r626", "r627", "r628", "r629", "r630", "r631", "r632", "r633", "r634", "r635", "r636", "r639", "r733" ] }, "ppih_StockIssuedDuringPeriodSharesRestrictedStockAwardForfeitedOrRetiredForTaxes": { "xbrltype": "sharesItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardForfeitedOrRetiredForTaxes", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details" ], "lang": { "en-us": { "role": { "label": "ppih_StockIssuedDuringPeriodSharesRestrictedStockAwardForfeitedOrRetiredForTaxes", "negatedLabel": "Forfeited or retired for taxes (in shares)", "documentation": "Number of shares related to Restricted Stock Award forfeited or retired for taxes during the period." } } }, "auth_ref": [] }, "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Shares issued, net of shares used for tax withholding (in shares)", "documentation": "Number, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP)." } } }, "auth_ref": [ "r13", "r62", "r63", "r90" ] }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-stock-option-activity-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised", "negatedLabel": "Exercised, options (in shares)", "documentation": "Number of share options (or share units) exercised during the current period." } } }, "auth_ref": [ "r13", "r62", "r63", "r90", "r361" ] }, "srt_StockRepurchaseProgramAuthorizedAmount1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "StockRepurchaseProgramAuthorizedAmount1", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock-details-textual" ], "lang": { "en-us": { "role": { "label": "srt_StockRepurchaseProgramAuthorizedAmount1", "terseLabel": "Share Repurchase Program, Authorized, Amount", "documentation": "Amount authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership." } } }, "auth_ref": [ "r821" ] }, "ppih_StockRepurchaseProgramAuthorizedRepurchaseAmountUsed": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "StockRepurchaseProgramAuthorizedRepurchaseAmountUsed", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_StockRepurchaseProgramAuthorizedRepurchaseAmountUsed", "terseLabel": "Stock Repurchase Program, Authorized Repurchase Amount Used", "documentation": "Amount used of the stock repurchase plan authorized." } } }, "auth_ref": [] }, "us-gaap_StockRepurchasedDuringPeriodShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockRepurchasedDuringPeriodShares", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockRepurchasedDuringPeriodShares", "terseLabel": "Stock Repurchased During Period, Shares (in shares)", "documentation": "Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock." } } }, "auth_ref": [ "r13", "r62", "r63", "r90", "r582", "r639", "r652" ] }, "us-gaap_StockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquity", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockholdersEquity", "totalLabel": "Total stockholders' equity", "periodStartLabel": "Balance", "periodEndLabel": "Balance", "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest." } } }, "auth_ref": [ "r63", "r67", "r68", "r85", "r603", "r620", "r640", "r641", "r713", "r740", "r775", "r791", "r831", "r887" ] }, "us-gaap_StockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "StockholdersEquityAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Stockholders' equity" } } }, "auth_ref": [] }, "us-gaap_SubleaseIncome": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubleaseIncome", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details": { "parentTag": "us-gaap_LeaseCost", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-lease-costs-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_SubleaseIncome", "negatedLabel": "Sub-lease income", "documentation": "Amount of sublease income excluding finance and operating lease expense." } } }, "auth_ref": [ "r470", "r712" ] }, "us-gaap_SubsequentEventsPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SubsequentEventsPolicyPolicyTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-significant-accounting-policies-policies" ], "lang": { "en-us": { "role": { "label": "Subsequent Events, Policy [Policy Text Block]", "documentation": "Disclosure of accounting policy for reporting subsequent events." } } }, "auth_ref": [] }, "ppih_SupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "SupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables" ], "lang": { "en-us": { "role": { "label": "Supplemental Balance Sheet Information Related to Leases [Table Text Block]", "documentation": "Tabular disclosure of supplemental balance sheet information related to leases." } } }, "auth_ref": [] }, "us-gaap_SupplementalCashFlowInformationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "SupplementalCashFlowInformationAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Supplemental cash flow information" } } }, "auth_ref": [] }, "ppih_SupplementalCashFlowInformationRelatedLeasesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "SupplementalCashFlowInformationRelatedLeasesTableTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables" ], "lang": { "en-us": { "role": { "label": "Supplemental Cash Flow Information Related Leases [Table Text Block]", "documentation": "Tabular disclosure of supplemental cash flow information related leases." } } }, "auth_ref": [] }, "us-gaap_TableTextBlock": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TableTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables", "http://investors.permapipe.com/20240430/role/statement-note-11-restricted-cash-tables", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-tables", "http://investors.permapipe.com/20240430/role/statement-note-6-impairment-of-longlived-assets-tables", "http://investors.permapipe.com/20240430/role/statement-note-7-stockbased-compensation-tables", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-tables" ], "lang": { "en-us": { "role": { "label": "us-gaap_TableTextBlock", "terseLabel": "Notes Tables" } } }, "auth_ref": [] }, "us-gaap_TimingOfTransferOfGoodOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TimingOfTransferOfGoodOrServiceAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Timing of Transfer of Good or Service [Axis]", "documentation": "Information by timing of transfer of good or service to customer." } } }, "auth_ref": [ "r696", "r822" ] }, "us-gaap_TimingOfTransferOfGoodOrServiceDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TimingOfTransferOfGoodOrServiceDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Timing of Transfer of Good or Service [Domain]", "documentation": "Timing of transfer of good or service to customer. Includes, but is not limited to, at point in time or over time." } } }, "auth_ref": [ "r696", "r822" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2024", "localname": "TradingSymbol", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Trading Symbol", "documentation": "Trading symbol of an instrument as listed on an exchange." } } }, "auth_ref": [] }, "us-gaap_TransferredAtPointInTimeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TransferredAtPointInTimeMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Transferred at Point in Time [Member]", "documentation": "Contract with customer in which good or service is transferred at point in time." } } }, "auth_ref": [ "r696" ] }, "ppih_TransferredAtPointInTimeUsingInputMethodMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "TransferredAtPointInTimeUsingInputMethodMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Transferred at Point in Time Using Input Method [Member]", "documentation": "Represents information pertaining to transfers at a point in time using an input method." } } }, "auth_ref": [] }, "ppih_TransferredAtPointInTimeUsingOutputMethodMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "TransferredAtPointInTimeUsingOutputMethodMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Transferred at Point in Time Using Output Method [Member]", "documentation": "Represents information pertaining to transfers at a point in time using an output method." } } }, "auth_ref": [] }, "us-gaap_TreasuryStockCommonMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockCommonMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Treasury Stock, Common [Member]", "documentation": "Previously issued common shares repurchased by the issuing entity and held in treasury." } } }, "auth_ref": [ "r34" ] }, "us-gaap_TreasuryStockCommonShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockCommonShares", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals" ], "lang": { "en-us": { "role": { "label": "Treasury stock (in shares)", "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury." } } }, "auth_ref": [ "r34" ] }, "us-gaap_TreasuryStockCommonValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockCommonValue", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_TreasuryStockCommonValue", "negatedLabel": "Treasury stock, 112 shares at April 30, 2024 and January 31, 2024", "documentation": "Amount allocated to previously issued common shares repurchased by the issuing entity and held in treasury." } } }, "auth_ref": [ "r34", "r35", "r67" ] }, "us-gaap_TreasuryStockSharesRetired": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockSharesRetired", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_TreasuryStockSharesRetired", "negatedLabel": "Treasury stock retired (in shares)", "documentation": "Number of shares of common and preferred stock retired from treasury during the period." } } }, "auth_ref": [ "r13", "r63", "r90" ] }, "us-gaap_TreasuryStockTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "TreasuryStockTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-14-treasury-stock" ], "lang": { "en-us": { "role": { "label": "Treasury Stock [Text Block]", "documentation": "The entire disclosure for treasury stock, including, but not limited to, average cost per share, description of share repurchase program, shares repurchased, shares held for each class of treasury stock." } } }, "auth_ref": [ "r91" ] }, "us-gaap_UnbilledReceivablesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UnbilledReceivablesCurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-4-revenue-recognition-details-textual" ], "lang": { "en-us": { "role": { "label": "Unbilled accounts receivable", "terseLabel": "Unbilled Receivables, Current", "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer." } } }, "auth_ref": [] }, "us-gaap_UnbilledRevenuesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UnbilledRevenuesMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Unbilled Revenues [Member]", "documentation": "Unbilled amounts due for services rendered or products shipped. This element is distinct from unbilled contracts receivables because this is based on noncontract transactions." } } }, "auth_ref": [] }, "us-gaap_UndistributedEarningsOfForeignSubsidiaries": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "UndistributedEarningsOfForeignSubsidiaries", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-5-income-taxes-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_UndistributedEarningsOfForeignSubsidiaries", "terseLabel": "Undistributed Earnings of Foreign Subsidiaries", "documentation": "Amount of undistributed earnings of foreign subsidiaries intended to be permanently reinvested outside the country of domicile." } } }, "auth_ref": [ "r9", "r10", "r112", "r387" ] }, "us-gaap_VariableRateAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "VariableRateAxis", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Variable Rate [Axis]", "documentation": "Information by type of variable rate." } } }, "auth_ref": [] }, "us-gaap_VariableRateDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "VariableRateDomain", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Variable Rate [Domain]", "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index." } } }, "auth_ref": [] }, "srt_WeightedAverageMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2024", "localname": "WeightedAverageMember", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-9-debt", "http://investors.permapipe.com/20240430/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Weighted Average [Member]", "documentation": "Average of a range of values, calculated with consideration of proportional relevance." } } }, "auth_ref": [ "r435", "r490", "r666", "r667", "r707", "r843", "r845", "r848" ] }, "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details" ], "lang": { "en-us": { "role": { "label": "Dilutive effect of equity compensation plans (in shares)", "documentation": "The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation." } } }, "auth_ref": [ "r781" ] }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "terseLabel": "Diluted (in shares)", "totalLabel": "Weighted average common shares outstanding assuming full dilution (in shares)", "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period." } } }, "auth_ref": [ "r218", "r226" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "calculation": { "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20240430/role/statement-note-8-earnings-per-share-details" ], "lang": { "en-us": { "role": { "label": "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic", "terseLabel": "Basic (in shares)", "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period." } } }, "auth_ref": [ "r217", "r226" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2024", "localname": "WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Weighted average common shares outstanding" } } }, "auth_ref": [] }, "ppih_WeightedaverageLeaseTermsAndDiscountRatesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "WeightedaverageLeaseTermsAndDiscountRatesTableTextBlock", "presentation": [ "http://investors.permapipe.com/20240430/role/statement-note-10-leases-tables" ], "lang": { "en-us": { "role": { "label": "Weighted-average Lease Terms and Discount Rates [Table Text Block]", "documentation": "Tabular disclosure of weighted-average lease terms and discount rates." } } }, "auth_ref": [] }, "ppih_statement-statement-note-10-leases-lease-costs-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-10-leases-lease-costs-details", "lang": { "en-us": { "role": { "label": "Note 10 - Leases - Lease Costs (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-10-leases-maturities-of-lease-liabilities-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-10-leases-maturities-of-lease-liabilities-details", "lang": { "en-us": { "role": { "label": "Note 10 - Leases - Maturities of Lease Liabilities (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "lang": { "en-us": { "role": { "label": "Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details", "lang": { "en-us": { "role": { "label": "Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-10-leases-tables": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-10-leases-tables", "lang": { "en-us": { "role": { "label": "Note 10 - Leases" } } }, "auth_ref": [] }, "ppih_statement-statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details", "lang": { "en-us": { "role": { "label": "Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details", "lang": { "en-us": { "role": { "label": "Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-11-restricted-cash-tables": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-11-restricted-cash-tables", "lang": { "en-us": { "role": { "label": "Note 11 - Restricted Cash" } } }, "auth_ref": [] }, "ppih_statement-statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details", "lang": { "en-us": { "role": { "label": "Note 4 - Revenue Recognition - Reconciliation of the Cost in Excess of Billings (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-4-revenue-recognition-revenues-by-revenue-class-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-4-revenue-recognition-revenues-by-revenue-class-details", "lang": { "en-us": { "role": { "label": "Note 4 - Revenue Recognition - Revenues by Revenue Class (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-4-revenue-recognition-tables": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-4-revenue-recognition-tables", "lang": { "en-us": { "role": { "label": "Note 4 - Revenue Recognition" } } }, "auth_ref": [] }, "ppih_statement-statement-note-6-impairment-of-longlived-assets-goodwill-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-6-impairment-of-longlived-assets-goodwill-details", "lang": { "en-us": { "role": { "label": "Note 6 - Impairment of Long-lived Assets - Goodwill (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-6-impairment-of-longlived-assets-tables": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-6-impairment-of-longlived-assets-tables", "lang": { "en-us": { "role": { "label": "Note 6 - Impairment of Long-lived Assets" } } }, "auth_ref": [] }, "ppih_statement-statement-note-7-stockbased-compensation-restricted-stock-activity-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-7-stockbased-compensation-restricted-stock-activity-details", "lang": { "en-us": { "role": { "label": "Note 7 - Stock-based Compensation - Restricted Stock Activity (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-7-stockbased-compensation-stock-option-activity-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-7-stockbased-compensation-stock-option-activity-details", "lang": { "en-us": { "role": { "label": "Note 7 - Stock-based Compensation - Stock Option Activity (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-7-stockbased-compensation-stockbased-compensation-expense-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-7-stockbased-compensation-stockbased-compensation-expense-details", "lang": { "en-us": { "role": { "label": "Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-7-stockbased-compensation-tables": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-7-stockbased-compensation-tables", "lang": { "en-us": { "role": { "label": "Note 7 - Stock-based Compensation" } } }, "auth_ref": [] }, "ppih_statement-statement-note-8-earnings-per-share-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-8-earnings-per-share-details", "lang": { "en-us": { "role": { "label": "Note 8 - Earnings Per Share (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-8-earnings-per-share-tables": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-note-8-earnings-per-share-tables", "lang": { "en-us": { "role": { "label": "Note 8 - Earnings Per Share" } } }, "auth_ref": [] }, "ppih_statement-statement-significant-accounting-policies-policies": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20240430", "localname": "statement-statement-significant-accounting-policies-policies", "lang": { "en-us": { "role": { "label": "Significant Accounting Policies" } } }, "auth_ref": [] } } } }, "std_ref": { "r0": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "SubTopic": "230", "Topic": "830", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1" }, "r1": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r2": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A" }, "r3": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-20" }, "r4": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "21B", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-21B" }, "r5": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r6": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r7": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "9", "Subparagraph": "(c)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-9" }, "r8": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "SubTopic": "10", "Topic": "360", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r9": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "SubTopic": "740", "Topic": "942", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477617/942-740-50-1" }, "r10": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "SubTopic": "740", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478822/944-740-50-1" }, "r11": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(2)", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r12": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(3)", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r13": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "SubTopic": "10", "Topic": "505", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2" }, "r14": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r15": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r16": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8" }, "r17": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22))", "SubTopic": "10", "Topic": "210", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r18": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14" }, "r19": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14A" }, "r20": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-5" }, "r21": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12" }, "r22": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14" }, "r23": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-4" }, "r24": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-8" }, "r25": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2" }, "r26": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "260", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r27": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18" }, "r28": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20" }, "r29": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r30": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "470", "SubTopic": "10", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-5" }, "r31": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "480", "SubTopic": "10", "Subparagraph": "(12)(c)", "Section": "S99", "Paragraph": "3A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-3A" }, "r32": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "480", "SubTopic": "10", "Subparagraph": "(16)(c)", "Paragraph": "3A", "Section": "S99", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-3A" }, "r33": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1" }, "r34": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "30", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481549/505-30-45-1" }, "r35": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "30", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4" }, "r36": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r37": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r38": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "20", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-12" }, "r39": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "20", "Section": "55", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-13" }, "r40": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2" }, "r41": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3" }, "r42": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1" }, "r43": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "810", "SubTopic": "10", "Section": "45", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-21" }, "r44": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "810", "SubTopic": "10", "Section": "55", "Paragraph": "4J", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481175/810-10-55-4J" }, "r45": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "810", "SubTopic": "10", "Section": "55", "Paragraph": "4K", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481175/810-10-55-4K" }, "r46": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A" }, "r47": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B" }, "r48": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "825", "SubTopic": "10", "Section": "50", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-20" }, "r49": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "825", "SubTopic": "10", "Section": "50", "Paragraph": "21", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21" }, "r50": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "205", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/205/tableOfContent" }, "r51": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r52": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r53": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r54": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r55": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r56": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r57": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r58": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r59": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r60": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r61": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r62": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(28))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r63": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(29))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r64": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r65": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r66": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r67": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r68": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(31))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r69": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(32))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r70": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r71": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11" }, "r72": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r73": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r74": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r75": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r76": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r77": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r78": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "12", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12" }, "r79": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13" }, "r80": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15" }, "r81": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24" }, "r82": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25" }, "r83": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r84": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "275", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18" }, "r85": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 4.E)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480418/310-10-S99-2" }, "r86": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1" }, "r87": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "470", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/470/tableOfContent" }, "r88": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "480", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3A", "Subparagraph": "(14)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-3A" }, "r89": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "480", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3A", "Subparagraph": "(15)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-3A" }, "r90": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1" }, "r91": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "30", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/505-30/tableOfContent" }, "r92": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r93": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r94": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r95": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "810", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/810/tableOfContent" }, "r96": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-19" }, "r97": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r98": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r99": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r100": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(13))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r101": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(15)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r102": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r103": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r104": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r105": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r106": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r107": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r108": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r109": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r110": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r111": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-7A" }, "r112": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "740", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482603/740-30-50-2" }, "r113": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "944", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479808/944-20-55-15" }, "r114": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r115": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7" }, "r116": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Subparagraph": "(a)", "SubTopic": "20", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482659/740-20-45-2" }, "r117": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h))", "SubTopic": "10", "Topic": "235", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r118": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/250/tableOfContent" }, "r119": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org/606/tableOfContent" }, "r120": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "04", "Paragraph": "a", "Publisher": "SEC" }, "r121": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r122": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12", "Paragraph": "Column C", "Footnote": "5", "Publisher": "SEC" }, "r123": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12A", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r124": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12A", "Paragraph": "Column C", "Footnote": "4", "Publisher": "SEC" }, "r125": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12B", "Paragraph": "Column A", "Subparagraph": "(a)", "Footnote": "4", "Publisher": "SEC" }, "r126": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12B", "Paragraph": "Column A", "Subparagraph": "(b)", "Footnote": "4", "Publisher": "SEC" }, "r127": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "12B", "Paragraph": "Column C", "Footnote": "2", "Publisher": "SEC" }, "r128": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "14", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r129": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "14", "Paragraph": "Column F", "Footnote": "7", "Publisher": "SEC" }, "r130": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "17", "Paragraph": "Column A", "Publisher": "SEC" }, "r131": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "17", "Paragraph": "Column B", "Publisher": "SEC" }, "r132": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "17", "Paragraph": "Column C", "Publisher": "SEC" }, "r133": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "17", "Paragraph": "Column D", "Publisher": "SEC" }, "r134": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "17", "Paragraph": "Column E", "Publisher": "SEC" }, "r135": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "17", "Paragraph": "Column F", "Publisher": "SEC" }, "r136": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column A", "Footnote": "2", "Publisher": "SEC" }, "r137": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column B", "Publisher": "SEC" }, "r138": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column C", "Publisher": "SEC" }, "r139": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column D", "Publisher": "SEC" }, "r140": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column E", "Footnote": "4", "Publisher": "SEC" }, "r141": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column E", "Publisher": "SEC" }, "r142": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column F", "Publisher": "SEC" }, "r143": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column G", "Publisher": "SEC" }, "r144": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column H", "Publisher": "SEC" }, "r145": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "28", "Paragraph": "Column I", "Publisher": "SEC" }, "r146": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "12", "Subsection": "29", "Paragraph": "Column A", "Footnote": "4", "Publisher": "SEC" }, "r147": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 11", "Section": "L", "Publisher": "SEC" }, "r148": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 11", "Section": "M", "Paragraph": "Question 2", "Publisher": "SEC" }, "r149": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 5", "Section": "Y", "Paragraph": "Question 2", "Publisher": "SEC" }, "r150": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 5", "Section": "Y", "Paragraph": "Question 4", "Publisher": "SEC" }, "r151": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6" }, "r152": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6" }, "r153": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-7" }, "r154": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-7" }, "r155": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r156": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-5" }, "r157": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r158": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(13))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r159": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r160": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r161": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r162": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r163": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r164": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r165": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r166": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r167": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r168": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r169": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r170": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A" }, "r171": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B" }, "r172": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B" }, "r173": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4" }, "r174": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5" }, "r175": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6" }, "r176": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r177": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r178": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r179": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r180": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2" }, "r181": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-17" }, "r182": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-2" }, "r183": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24" }, "r184": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25" }, "r185": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2" }, "r186": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2A" }, "r187": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8" }, "r188": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r189": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r190": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r191": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(k)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r192": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(k)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r193": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-04(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3" }, "r194": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23" }, "r195": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24" }, "r196": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5" }, "r197": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r198": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r199": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r200": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r201": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r202": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r203": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r204": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r205": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-12" }, "r206": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-3" }, "r207": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4" }, "r208": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6" }, "r209": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7" }, "r210": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7" }, "r211": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7" }, "r212": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-8" }, "r213": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-9" }, "r214": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SAB Topic 11.M.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480530/250-10-S99-5" }, "r215": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480530/250-10-S99-6" }, "r216": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/260/tableOfContent" }, "r217": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-10" }, "r218": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-16" }, "r219": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-2" }, "r220": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-22" }, "r221": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-23" }, "r222": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-28A" }, "r223": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B" }, "r224": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B" }, "r225": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-7" }, "r226": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r227": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r228": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2" }, "r229": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-3" }, "r230": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-15" }, "r231": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "270", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1" }, "r232": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "272", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-1" }, "r233": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/280/tableOfContent" }, "r234": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-15" }, "r235": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21" }, "r236": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21" }, "r237": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r238": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r239": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r240": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r241": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r242": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26" }, "r243": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B" }, "r244": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C" }, "r245": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r246": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r247": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31" }, "r248": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r249": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(ee)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r250": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r251": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "34", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-34" }, "r252": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "40", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-40" }, "r253": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r254": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r255": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41" }, "r256": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "42", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-42" }, "r257": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476173/280-10-65-1" }, "r258": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13" }, "r259": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-4" }, "r260": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r261": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r262": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r263": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r264": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r265": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(e)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4" }, "r266": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-5" }, "r267": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-1" }, "r268": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r269": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r270": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13" }, "r271": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-14" }, "r272": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-5" }, "r273": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482598/350-20-45-1" }, "r274": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r275": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r276": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r277": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r278": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r279": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1" }, "r280": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1" }, "r281": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r282": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r283": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r284": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r285": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r286": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r287": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4" }, "r288": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9" }, "r289": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r290": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r291": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r292": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r293": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r294": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r295": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r296": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r297": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r298": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r299": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r300": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r301": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r302": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r303": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r304": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r305": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r306": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r307": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r308": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r309": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r310": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r311": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C" }, "r312": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C" }, "r313": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C" }, "r314": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D" }, "r315": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D" }, "r316": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D" }, "r317": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E" }, "r318": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E" }, "r319": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E" }, "r320": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E" }, "r321": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F" }, "r322": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F" }, "r323": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F" }, "r324": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F" }, "r325": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I" }, "r326": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I" }, "r327": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I" }, "r328": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-6" }, "r329": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1" }, "r330": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-1" }, "r331": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-2" }, "r332": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-3" }, "r333": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10" }, "r334": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r335": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r336": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r337": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r338": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12" }, "r339": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13" }, "r340": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-15" }, "r341": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-4" }, "r342": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5" }, "r343": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8" }, "r344": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-9" }, "r345": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r346": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(n)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1" }, "r347": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-5" }, "r348": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-5" }, "r349": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/718/tableOfContent" }, "r350": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-2" }, "r351": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480454/718-10-45-1" }, "r352": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r353": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r354": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r355": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r356": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r357": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r358": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r359": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r360": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r361": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r362": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r363": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r364": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r365": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r366": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r367": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r368": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r369": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r370": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r371": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r372": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r373": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r374": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r375": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r376": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r377": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r378": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(v)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r379": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r380": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r381": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r382": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r383": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(l)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r384": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.F)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1" }, "r385": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "720", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483359/720-20-50-1" }, "r386": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/740/tableOfContent" }, "r387": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "3", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482620/740-10-25-3" }, "r388": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-4" }, "r389": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-6" }, "r390": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10" }, "r391": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12" }, "r392": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12B" }, "r393": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12C" }, "r394": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-14" }, "r395": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-17" }, "r396": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-21" }, "r397": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-22" }, "r398": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-23" }, "r399": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8" }, "r400": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8" }, "r401": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.5.Q1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r402": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1" }, "r403": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 11.C)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-2" }, "r404": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "270", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477891/740-270-50-1" }, "r405": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482603/740-30-50-2" }, "r406": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r407": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r408": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r409": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r410": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r411": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r412": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2" }, "r413": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-5" }, "r414": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1" }, "r415": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "60", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1" }, "r416": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-19" }, "r417": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25" }, "r418": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25" }, "r419": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r420": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A" }, "r421": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3" }, "r422": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3" }, "r423": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r424": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r425": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r426": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r427": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r428": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(i)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r429": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(i)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6" }, "r430": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r431": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r432": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r433": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r434": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r435": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r436": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r437": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r438": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r439": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E" }, "r440": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r441": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r442": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r443": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r444": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6A", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A" }, "r445": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28" }, "r446": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "230", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1" }, "r447": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-17" }, "r448": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r449": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r450": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r451": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20" }, "r452": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-1" }, "r453": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2" }, "r454": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1" }, "r455": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-5" }, "r456": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8" }, "r457": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8" }, "r458": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "12A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A" }, "r459": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1" }, "r460": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1" }, "r461": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-2" }, "r462": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-4" }, "r463": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5" }, "r464": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5" }, "r465": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5" }, "r466": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r467": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r468": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r469": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r470": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r471": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r472": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r473": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r474": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r475": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6" }, "r476": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A" }, "r477": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A" }, "r478": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479016/842-30-45-1" }, "r479": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-1" }, "r480": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(a)(3)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2" }, "r481": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(a)(3)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2" }, "r482": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2" }, "r483": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2" }, "r484": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1" }, "r485": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-1" }, "r486": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-2" }, "r487": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-3" }, "r488": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481435/852-10-45-14" }, "r489": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r490": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7" }, "r491": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "910", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482546/910-10-50-6" }, "r492": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "924", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 11.L)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479941/924-10-S99-1" }, "r493": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483194/926-20-65-2" }, "r494": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483194/926-20-65-2" }, "r495": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483194/926-20-65-2" }, "r496": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478934/932-220-50-1" }, "r497": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18" }, "r498": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18" }, "r499": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18" }, "r500": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-19" }, "r501": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r502": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r503": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r504": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r505": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r506": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "23", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23" }, "r507": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r508": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r509": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r510": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r511": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r512": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31" }, "r513": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r514": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r515": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r516": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r517": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r518": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5" }, "r519": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-6" }, "r520": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-7" }, "r521": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8" }, "r522": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8" }, "r523": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8" }, "r524": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "280", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478657/932-280-50-1" }, "r525": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "323", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478988/932-323-50-1" }, "r526": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "940", "SubTopic": "820", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478119/940-820-50-1" }, "r527": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(10)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1" }, "r528": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r529": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r530": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r531": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r532": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(27))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1" }, "r533": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-05(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1" }, "r534": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478451/942-360-50-1" }, "r535": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(12))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r536": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(15)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r537": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r538": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r539": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r540": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r541": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r542": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r543": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r544": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r545": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r546": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r547": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r548": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r549": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r550": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r551": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r552": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r553": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r554": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r555": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r556": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1" }, "r557": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column A))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r558": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r559": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r560": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r561": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r562": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2" }, "r563": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4E" }, "r564": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r565": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r566": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r567": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r568": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r569": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r570": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r571": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r572": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r573": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r574": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r575": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2" }, "r576": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.W.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479583/944-40-S99-1" }, "r577": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "825", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B" }, "r578": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480424/946-10-50-1" }, "r579": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480424/946-10-50-2" }, "r580": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480424/946-10-50-3" }, "r581": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3" }, "r582": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(i)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3" }, "r583": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-11" }, "r584": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-13" }, "r585": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-3" }, "r586": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4" }, "r587": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-4" }, "r588": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r589": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-2" }, "r590": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r591": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r592": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r593": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r594": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r595": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r596": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r597": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r598": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r599": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r600": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r601": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(16)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r602": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r603": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r604": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r605": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r606": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r607": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r608": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r609": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(5)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r610": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r611": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r612": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r613": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r614": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r615": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r616": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r617": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r618": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r619": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2" }, "r620": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2" }, "r621": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3" }, "r622": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-7" }, "r623": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r624": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r625": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r626": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r627": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r628": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r629": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r630": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r631": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r632": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r633": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r634": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r635": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r636": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r637": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1" }, "r638": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(1)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r639": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r640": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r641": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r642": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1" }, "r643": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r644": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column C)(Footnote 5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r645": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r646": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column C)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r647": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r648": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r649": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r650": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r651": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column F)(Footnote 7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r652": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2" }, "r653": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "948", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-29(Column A)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1" }, "r654": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479196/954-310-45-1" }, "r655": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478785/954-310-50-2" }, "r656": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r657": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r658": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r659": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r660": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column E)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r661": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r662": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r663": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column G))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r664": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column H))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r665": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column I))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1" }, "r666": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "976", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477332/976-310-50-1" }, "r667": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "978", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479230/978-310-50-1" }, "r668": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(a)", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H" }, "r669": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(b)", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H" }, "r670": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r671": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1" }, "r672": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "8", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-8" }, "r673": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "52", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-52" }, "r674": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r675": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31" }, "r676": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r677": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r678": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "47", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47" }, "r679": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "48", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48" }, "r680": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "49", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49" }, "r681": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r682": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r683": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "54", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54" }, "r684": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481933/310-10-55-12A" }, "r685": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "80", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479294/326-20-55-80" }, "r686": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482548/350-20-55-24" }, "r687": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r688": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69B", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69B" }, "r689": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69C" }, "r690": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69E" }, "r691": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69F", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69F" }, "r692": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13" }, "r693": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r694": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r695": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r696": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91" }, "r697": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-11" }, "r698": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-6" }, "r699": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480547/715-80-55-8" }, "r700": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r701": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "231", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231" }, "r702": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4J", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481175/810-10-55-4J" }, "r703": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4K", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481175/810-10-55-4K" }, "r704": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r705": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r706": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "100", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100" }, "r707": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "103", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-103" }, "r708": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r709": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r710": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "107", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107" }, "r711": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482949/835-30-55-8" }, "r712": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "53", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479589/842-20-55-53" }, "r713": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481372/852-10-55-10" }, "r714": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-17" }, "r715": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-21" }, "r716": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "29", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-29" }, "r717": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-3" }, "r718": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-2" }, "r719": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-4" }, "r720": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-5" }, "r721": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-6" }, "r722": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479401/944-30-55-2" }, "r723": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H" }, "r724": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "29F", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-29F" }, "r725": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r726": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r727": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9C", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C" }, "r728": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "9E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9E" }, "r729": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-18" }, "r730": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1" }, "r731": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6" }, "r732": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477439/946-210-55-1" }, "r733": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1" }, "r734": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r735": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r736": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r737": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" }, "r738": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-10" }, "r739": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-11" }, "r740": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-12" }, "r741": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r742": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r743": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r744": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 10-Q", "Number": "240", "Section": "308", "Subsection": "a" }, "r745": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Section": "13", "Subsection": "a-1" }, "r746": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a" }, "r747": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "1" }, "r748": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-T", "Number": "232", "Section": "405" }, "r749": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-10" }, "r750": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "855", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-3" }, "r751": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r752": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1" }, "r753": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r754": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11" }, "r755": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18" }, "r756": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "SubTopic": "825", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B" }, "r757": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-3" }, "r758": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "SubTopic": "20", "Topic": "842", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3" }, "r759": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-8" }, "r760": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-9" }, "r761": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(i)", "Publisher": "SEC" }, "r762": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "01", "Paragraph": "a", "Subparagraph": "(4)(iv)", "Publisher": "SEC" }, "r763": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Regulation S-X (SX)", "Number": "210", "Section": "13", "Subsection": "02", "Paragraph": "a", "Subparagraph": "(4)(iv)", "Publisher": "SEC" }, "r764": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Staff Accounting Bulletin (SAB)", "Number": "Topic 5", "Section": "Y", "Paragraph": "Question 2", "Publisher": "SEC" }, "r765": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r766": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1" }, "r767": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4" }, "r768": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5" }, "r769": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6" }, "r770": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14" }, "r771": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r772": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28" }, "r773": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8" }, "r774": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(f))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r775": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1" }, "r776": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23" }, "r777": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24" }, "r778": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5" }, "r779": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4" }, "r780": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6" }, "r781": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1" }, "r782": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "270", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1" }, "r783": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-18" }, "r784": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22" }, "r785": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30" }, "r786": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(ee)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r787": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32" }, "r788": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "34", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-34" }, "r789": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org/310-10/tableOfContent" }, "r790": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-2" }, "r791": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3" }, "r792": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-1" }, "r793": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r794": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r795": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r796": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r797": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r798": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r799": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r800": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r801": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1" }, "r802": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1A" }, "r803": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2" }, "r804": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482130/360-10-45-5" }, "r805": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3" }, "r806": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r807": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r808": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "405", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1" }, "r809": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481931/410-30-50-10" }, "r810": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9" }, "r811": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1" }, "r812": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r813": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6" }, "r814": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r815": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r816": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r817": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A" }, "r818": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B" }, "r819": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B" }, "r820": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D" }, "r821": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "505", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4" }, "r822": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5" }, "r823": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2" }, "r824": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "805", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "15", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480123/805-50-15-3" }, "r825": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1" }, "r826": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r827": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r828": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r829": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(bbb)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2" }, "r830": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2E", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E" }, "r831": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28" }, "r832": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-1A" }, "r833": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2" }, "r834": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1" }, "r835": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-4" }, "r836": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3" }, "r837": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3" }, "r838": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4" }, "r839": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6" }, "r840": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147483326/850-10-50-3" }, "r841": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7" }, "r842": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7" }, "r843": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r844": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r845": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3" }, "r846": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r847": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r848": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4" }, "r849": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r850": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r851": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r852": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r853": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1" }, "r854": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479432/944-30-50-2B" }, "r855": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3" }, "r856": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3" }, "r857": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B" }, "r858": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B" }, "r859": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4C", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C" }, "r860": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D" }, "r861": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4G", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G" }, "r862": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r863": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r864": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r865": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5" }, "r866": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r867": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r868": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r869": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r870": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r871": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r872": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)(6)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r873": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6" }, "r874": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r875": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r876": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r877": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r878": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r879": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A" }, "r880": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r881": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r882": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B" }, "r883": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2" }, "r884": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2" }, "r885": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4" }, "r886": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1" }, "r887": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r888": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3" }, "r889": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1" }, "r890": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2" }, "r891": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3" }, "r892": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6" } } } ZIP 73 0001437749-24-020133-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001437749-24-020133-xbrl.zip M4$L#!!0 ( -Q#S5BU*&U89@< (

U; M77/;-A9]3GX%ZLZFSHQD67;B[ M"U(?MI2ML^LV=[E'GZ/#H MA>AV>]W#WO&A&+X1[?:@7U"0(LFE\Q3.]JJ0M;_>:TJ-+.AL+[.ND*&=4J D M*&OV1&)-( /K0)K*W!HZ,W9O\+3?J5WNCVPZ$S[,=&QN0CN3A=*SGGCVOK+A M]$H5Y,5;FHIWMI"F+FR)6-P2GIS*3D5LY]5OU!/=PS*PI.U7^29[T1'P(=!/:4JLQ"J)O&+3/31YZ6'0[&ES> MY&JD@CCN'G3[G=&@WV$S_)2#IRM3776*%Z?I[:$G_Z?-])D9^?+T Y/[X/(_ M[$SW!J];XD).5"I^.!!OI/&9(IVV1$(NJ&PF0BY#[Y,Y-U^B.'R0(TUB9!V M?[9W"(B2UJ5,4V7&BV=?RF3^W'@[56G(N*N0.$]C_&T;/DZ=/D(#< MW'["4T^DGD\JV#):L5%ZI]/CD^AGK/SKEZ=[$)>&!^^$=.[B?;WY3^7Y%3]H M,(E<3D@XFBB:(E.'7'GQOI(ND-,SE)?(U<(:\1WR+1JU_R5L)H:$Y-L>JI+$ M:R1=9R2G8*3T[ZWFEXL17YODX/3N9/'K^.WAET-C%Z);&*)'VQ:BWTB/P$0( M%C-Q;>Q44SJF5AVI37RF%AT;&Z(&D,H(:6:B,L%5!(\A00J\&@Y<":) O"J$ M:B83%#EA"Q!7L+7=FH&AA+R7;L8FA;PFC+O2IT=9"F0*&\AEI!M(FI"CDFZ$L('!Z=^RWAFDTQ M3<13K:M6EF$'MT<(M^-' S<2F3((:,;&,H!;P!K,4>U6ZI6I]3E8 ?].=)6B M3X!D)5I; )ABCBD1XPQ/AJW62_PUH>_O# V(IXH[;K%%I6$ T-F2MQHH]=&? M1/I<9-I._1R1CL;*!R\JS0LNL>R MW7VY3\]CT^[+M'ZJ'U6M^O2\?\&$M +2&C3LR[T'RFX-E&$@GN==Z,*"!6OO M >%X)^3_E@"=^[E$R58!66X;D"_(HVN$=)1S?XRW%BO-1%;^_DU8\HT(V&E& MJD6DK?":*[#51/G(@; B$_OAC?^2/5<9V)&6$8R-BEP"JM6P,U93*HI4OG /DE1PIK<*,%?"F83G=1"Q&F-69XI;IRBXU M2HZ;9D)EY4K W$?%GB0(^NA W*^.XYF_!MI10R6G$3;!7KQ&--*-*L'Z.TQ_ MQIA.M@W3EQ.IJ\AI'/"49?S-:()0]1OVAPM9?@^.KA\W;QDCA-$0_.KKC>G( M5N'#'MQ'1B7@SREWOD/AYXO"=-M0>%$'^#I0 M^+2VV1;&FHUH_ @^92%LDZ1R#(<5U;FAU\+Z@/*$#Z R^(>.FJ\?8O]VDZ^8 M!2L'CKMCU[B< &?QB)E/GTVU\.AY[4\N_4*<,SO&#$!IE UQ)1I*GPFMKDDW MY\UW[%O_]^+L4/](S[)>;AN:_[>SK/BU,9TG@M:2G9@L5\&X)"H&U4?(\+4] M[L(UB7UNL,XOE&\L0)=%H4(@^B]28&2AK;D^5? O=K(/X()Y/3,[?GFW/<\S M]+Y2<#_FE,K$ZRG^^>[(ZF_%OEMW9'6NL:-#YPIPY*-4/I1-% $_C8Y='!U- M25ZS,*UW>%&:QKUI_%HZ_\[R4:AL3GGJ@^P-1"=3-/2TX+D/(KC9T:()8(BH M;-7JV//$JP++B1G'R33*8N,7J1T'?N;8V[HSI7,(W,R!;EI D6&!);B]_X& M=*U:)2HSL7I"+!6-'#?7%EQ#JE24VLX(M=/HR2 M\0*QM:8Z/@8)#^W0#Y4A<>MNYD@FUV-G*Y.V$ZNMZWV9Q3]\5>ZXN6C9$GQ# M>/OS]5\_?+\:='QGPVW0?J?Z=/=3-[GSB5P9.@@7!G/4!-_FBC)Q>4-)Q6=O MXN=Z9_+)O-L?UL?A2+UK3CW?CAN\J9J(1$OOS_9^.O_W57MX_NJR_EZ(2=B,7SU]IRZ5!P 1#0 T !E>%\V-C(V-CZ_=J!R*6(&@08 )2L M_O5]"U(_;,MW3JNH MT&EG0V5YF72%# M.Z5 25#6[(G$FD &UH$TE;DU=&;LWN!YOU-#[H]L.A,^S'3L;D([DX72LYYX M\:FRX?12%>3%CS05'VTA3=W8$K&Y)3PYE9V*V,^K_U!/= _+<"H*Z<;*M)T: MYR&V72_:-&6+IJ1RWKJ>D%6PIPRJ_$)(>B*>!+H.;:G5& T1&R;MG]RSN MWMN_V97N#=ZWQ <90HY^%P?B!YJJY$JU1$(NJ&PF0BY#[]' S6]1G#[(D28Q ML@[$/]L[!$5)ZU*FJ3+CQ;DO93(_;]!.51IR'O+PCPU:A=AA N._9O8\>_X, M \]$3J^:*"+:,5&Z6W!CT^B3CCQ=_^]G0/XJWAR3LAG4-\*)I_5YX? M\4:=2>1R0L+11-$4D3KDRHM/E72!G)ZAO42L%M:(MXBWZ-3^6=A,# G!MSU4 M)8GW"+K.2 [!".E_L9H?+F9\;Y*#T]N+Q='QT\.176/GHEOHHD?;YJ+?2P_' MA L6,W%E[%13.J96[:F-?Z86 QL;H@:0R@AI9J(RP54$Q) @!1X-.ZY$HH"_ M*KAJ)A,T.6$+)*Y@:[L[!H82\EZZ&9L4\HHP[\J8'FTIP&!*S5F6YV"#1+FD M*F!FT%U$Y2.FN4IRX2O^;]E_2HZ:07@!A?(::@7>)J8JY%B@+R%P>'8>MP0T MFV*9\*=:5ZW'W6_._4->QH!SZ'?9IG":731]T(ZBF2 D%9+6I&$L#YXHNS%1AHEXG;>I"PL6 MK+T-TO&6R_\N"3K'N63)5A%9;AN1WY#'T'#I*.=^G6\M5IJ)K/S#N[#D&Q&X MT\Q4BTA;X3%7R%83Y6,.A!69. X7_LOLN9J!'6D9R=BHR"6A6DUVYHL*F118 MO-4JC;MVOAIYE2KI%"] U5HW:@+#(U6>]6>,73Z*U9@QK2< "LC0W*F4[(J5 MEISHL:P(8JECT:-6Q:MB'G^-B V1B]&?TEWN_8JI/=IN:C\XT=UA^,-3Y(.) MCN P42GS5WIKHLM)#^YSEG(5N%^! ]1$7)A35QU9[^^*21&\WH^1B6J[P3PG/+@.Q9^O2Q,MXV%;VH' MOTL4WJUMRL)X92T;/R.?LA"V25(YIL.*ZEPS:F%]0'O"&U 9\&&@YNV'V+_9 MY4^"%K+[,3)Z'3W1H8O\ A^65AL>EG;LJVW M^>]V'B](GFN4T1A<(0;R_C7OA">*$+2:XF&Q7S<750%U6QWH@;@C$5]3S MEUN?%0J;K;7Z[<$:=2%3=/2T$!?WALUF&P%=$/L0"EIU2>)YX56!VXD5Q\4T MB*.(>QNI%>\\CYTHV\6HK0H9;T"; M.Z7#EXD:?ZT,B1N?3H]D-]]!MP1_P/^4^//; M/\1^->CXSIK/MON=ZO$^)%\'YY&@_%,E)(8.BI+M(F;_5.\C M/!K$_6']\@I0EJ 8Z/GR_5:#\>5V?'Z?JHE(M/3^;.^'\[]?MH?G[R[:WW^\ M./\;_P!EY>KPW=O+C[?:\JSM[/1N(^<6,7SWXS\^+&>#!?_,9LT!*#K\LQLX M>?SUT'\!4$L#!!0 ( -Q#S5CI>M^()@4 %49 - 97A?-C8R-C8X M+FAT;>U96V_;-A1^;G[%F8H5"6#9DMRXCF^ ER9INZ9UDW2O R51%E>*5$DJ MMO?K=RC)CG-ID!1.W6$+ @@BC\B/A]^Y>I":C(\&*27Q:.?9P###Z8C._^QT M@DZGV\390:L:Q-E?7!=.J*"*&!I#N("+M! Q5:]E1F$BE2$<7.BT_* 5>,%+ M\/T>_@#C!H"44J4IF;H%"9QNTX]*DA&ATXB54:,&U-#(\.D<""2 MPE"!TH9RFJ=2T*&0SFAGT*H@#T(9+T";!2\_%\9-2,;XH@E!^6+HW+B$LRD.E-APTX']9-/;XK+AZ&B>LI 9: ># M5C@:M*P0/O+1SMI!UR%9U=1K;?KH3W;.%R+4>?\;A_NF\B.D)%6;.VNI[T.J M#$M81"SS028P44Q$+$>C.IK3J##LDL+'!"6HTM65;!/N!,E?$+P3(\'OPN?F M>?.P"7Y[W]L^MMWSRG_ @=>QFC0IA7.B0B*H=C_..5W .#)V)O"\8.]1@/\J M-%[38I.(ER3<'H(+5%#IRC7N0.,&,&&5QA1$)"<1,PQ7)1H.4T:3VW0$(N)Z M[I@)@JQ%TB[G+),I^G5WPG(*;^UUBY+C*/-&\IB)*4)[*Z(F[-J+>O&\&P1> M_XQ.F38*&>;L50J*2@-9(#!B&I9V5CJDVM17C&B_"#GC-)[2!H1$8Y JJDIL*G@BA$P1=P1G,,6X RQQAZ4!ON)]2.*J5R5):,@:):XOJ&",3$ M$->$G,MHZ 3>W'=60U4("PZZ^][5X.70>?G* 18/'<153AYC;/2Z;<_O>/Z^ MY_N^]\K?=T;C7#$.;:\!-G8.6J2F18WY2AV-&VJR)RA?_/Y>[\$DVJRSOL%A M0T*.5R,5,FKHH#HBRGE.8GO7JW=MB56_UVAG+#:I7=+[M4;+4/O"6/QS&V&? M[3S#)$4MY2\M(R+"EX*%7PRGQD;BLLG-!PR_DW-V@66TM@-KW]H!BU= M>DTL6 MP[LFG!*A$T8Y^I#BX8G=IE'=!6=+4";(+F8=REJB=BN)VQJZW7L*G;U'HOIA MKGYK+#\E!EW"#(Z:\)[.6/2%;97E=\'9$I0_D#!P%]5OU20_ ]6O0%F@XRB2 MA3"8%WPO\Y^:Y[?Z,]^[X?6^SKM"4+C6W E)]&6J4!NQ&TDN5>]Y4OZAL-^N M.S7+(ND>#6T*[];M_M^U_1-D8F.HNA(@%<--T6+*M(AA!8(%A:$"06&R93\^OW GXY,C][>SH_'OMB._-CLY.;XXNS&6)JZ2L]N#MDZ#RB:-G?(3 *ES^G_ -02P,$% @ W$/-6%)K6T!0&@ :1L @ M !L;V=O+FIP9YU7>3Q4W_N_HFPALHNI;$7V+4LD(<1\$$),'[(.AK)FN44A MVWP0BE#9DIAD&5MD3Q*RC"5FC)!]D'$QRV_Z_K9_?G_\?K_GWG/O\[KWG/-Z MWN=YSOL\#WV"3@!.F)N8F0!,3$S ;<8%T.< )^-P'T\ L+0$Y 8 ..,C,! M1QD:$Z.9,S/_Z_VG =8G_EW_\[#F!5C^_3MWES7??^M_^@%,\2\!H!I-GP:, M@"-,3'_N_Q#FH\Q_Y!@+"_-1UF.LK'\:&SLG.QL;!QLK*P<7!P?G<8:PLG/S M3/\#^C&/=Q-E:VX_]GH7\">-D :0#'S'06.,++Q,S+1.\"8 Q+ MCS+]2X#_$*8CS"Q'CS%,XN!D=*@[P3"?F?D(P]BC+ R(3-&,_P +[U&^,RJ& MQTY:_\UZ-HA?]6'Z*S;)*]7M C;#)"DUM[NQ[!R"0L(BHM(RLN?.RZEK:&I= MU-8QNFIL8GK-S-SVAIV]PTU')_<['IY>WCZ^]X)#0L/"(^['/7HE+_]4%-;5X]M:&SJZ.SJ[NG]W/?E^\CHV#AN8G)J MCCC_?[E-_=$KQ,J!6DTZ=LDC4E$E:+1$)2Q)<&3)S)]2AY[<18Z'O.4#L2^D<&O=[D05ZL<2B@ID04 E'%A$IYTI"[<7"1$/N'.JO*51 M[=;GQ&OX"QFZ:A[\L<*8R=N!_._#X54XM-I.J&MR9.N!HW^(9_A$BFV%\PH) M#%NDM%7USI=]&IP.P!$34A6"J4CK6DB#Z&]NEV"Y10<>5I61UE.S^D^O:##Z<6LZ++ MD2SAT2U";WSO/TG%A/"622'<"N:&[3P:O"5N1&A6;9ZYR Q$.EKYQ [XOCLF MDS^:6;<;Y(.8R5Z]^GL:J3"HI-IAW]ZY&A[AV(.K'[BDX0S"/U/K25YH=3#Q MOC/"^WY60;FGW@?9NBR/)^/7W LT'6SLLN9RS_/'&CKRX_KQI!MMD-PCD&1I M2KH DF+[YLU:_)J27](F1'T=D^$?XC)_?G$.FXI7/J8)<]HOH[')'EY!+*@<;J+4V,OQ^P&ZV_.,)*BYCNT 'D<^A 7)E)B-)# M@]UU(F*I&%?X-'!&H.O&]@^GI=+]@G67CM,\%:MS[GI5+ MR#[%)K\!JCR-VZMA>%=<'RX8Q3S^VP7VUYFBIGKZ12427B*09SO,]'L#/6J?S%IH/W%0_BS"D5F7 M<";G?I;L(GIZ>GZO(U^+QC:(FJ,#)Y$%I\8T!KS:14/J'Y=(_[#%:Q8KO-J6 M25.V0,MA&+4[,RH'E D8B M+7U0[GZYQPTID/^"3IQKFJ1T?]!%C922A.!;OCV"BYFVEL7KT;:X,J]M8M%S M]W-$5]$2.YO?/S!W7C@YC$]%4VFTQW2 L(Q0VHSBM#N <'2@07X5!4D/4@24 MP7;S"Y0P+#G3P^9DQG.H#4/70O?-!&B&\C M68./VM[3@4X>V'(;GYYA=)$K5Y5V'ZO#22E*?8K MATO;I\&4GMKXCD64S@^O;8J'I-&!)[<,TKK<7'2RJGTM9W_ONQ6Z5B NH0?S M3]*X?<=;@C3Q7+1O!]F8>A5=*0F9C @;M10U*7LN[!N1/I%-U^5#-K ](HKY M\#;E1C5)L6WNH\7<8-+N$U$NE0",S2&\]078__Z%E%]FO9AOGVB%P)1PLYQ6 M!QT@!:!Z,2Q13%#??+Y1KZL*J2W.3ZE%"S!;?O11F.J%N:0S64]UF;X- M9R9ESI>6O:8#[9=!0J.^:"L$"YA*3='I28U^@Q0,5 _\ZB>3YOSQ>H80[VLY M$_'J1;UK_-7I6I&3"<<7#)R[;KO'!\];G?J"4<^UZILLUY+XN%FTZVK%H_?U MTN-3ME6E2XH.\&RMNCU[' VV215E$$@)V&Z+H[&7:SV8IP./^*%QN%BJ\0/: M)&U T&UDK7'I-&8,N;LA;KYD M/JJ.J:=BU]2ZVI]&M-Z*Q'9*J49W]SY/"VJ@,-,!5C$SGA30%S^YU[$G$BZ5 M1C!_L&M1L7H1OGA&DE2!)Z&\4@):66/&8!+ZS"N9N@.E+OV1?L_W!:/UU]\I M3MQ_+K ._WX!-WACKN54@YOP2A#UP,IR9E4B3!SC?Q)^M7[W4N*2\./\?D[M MF!5*N:/WONTL;@R/L9UE!&DQ@N3L#)M@G=\M>^ ? V-$9%#XE)Y.Y?IG7$]! MO>6%C+>7'=:VL_W3$V0EGYR,RSW D&T@4F$M'5C#$]H2K9?;)E:)5!GQZQ/1 M1>LP=Z];M3&>H_C:GP%3C;V&B(=@74R)['KFECSY&;2P2"TR&]I=U[+Z_A-V M+N/\!JW/DQ!,!]"Z?#>#O[[DJT^_=" ^3Z/12= M9W$4*QB-PX<.',VM9C@C+,IMB"+$\X .S&F.AEB>1@K!J8W4W'J5EN_&?/-K MVYN*;HSCC_M(6G/#'GR"D]Q;36VF YX*8D3I@HPFEJG'W6,EBUGDP7K-0O63 M+9''FT^&_F0_O<_*ET0IRS09!@G%C!!V5$JU04[U9)9"*(OAD %)JX9117<+ M#V4GT-U9SV^)Y?DBLK8GT/#O%([?:$BSC/QJ).KDJRA+*(P8C8 /S3LGHW@G M%'8[+I>:(FIT156+'N/<.9(#L:S!V5+@D;O+--U;:<:2['6[A.^40J MY)1GLU[J@JLN5"C]&/BF8H_PG,)'1^%M=XEM!FTH/*087%AML*Y;'J5:#=EJ MI2BI'T::&2]1I&#N.[-$C71K-V?'F^D-W(VR+S$,9\Z!X3RT!!0;(R*(>#J0 MC.DIG,9U3UDQUH\5@&#V-6/JJY7G]>P(RZ)DL:<9,W8RM;/7'ZPS!=Z]UR/? M3?A1$"\O9'-QQ7;FI5!>.(.1ZTR*=SQ35^?_*_?8;\VHGE( M@S1NYR%P[A)VF"8;);DE],!?ZIQ,2_TH=XET;O6G; LO;"SB K<9.O($]ZA[ M=[0=PXL<#"UX-WNPG.EM(_N0:(6 M^5O3%JCR?K]B"1.%V3-IG]Q3'(9LYBA8_OY>^M9B8_9!L]_+R,H%"5/ MJB&K0*E!1#1_.-A9_S[\F_,3J3&-[<@]M M3QA72M=H9R3"R[%#93%W+R## >X<,9,+5^X9KXPOXI@=+,C(C*J^/^V"6W!? MX8%D410!-./$I? ;K1^XHKW*P]U[G"S?M[0,[0J:B5[3DGN^OF!4[YV5+_"$ M;<7Q[@/5[/U!QA8+1>>N1*CO[H'OT M\T'+ ;33/IK&'DE]OB5/XVR,QD2IUWA'L1XK)UK::]0]:$<)9DEI\5XEZO$H M"A9$NJ7_TVST>ETL4#6A%SQ.^PJ2 N&)E(AY^>5:_/'PL.Z#$<2M;J3"2)?, MB&+E?%>0O*ZG8Q'LW,5O<"#WMP^IP!FN4LGCMF)L;2=I^<72NN&6W&F)%@L MQ:[*HTKF>SV76N^?C@G=/)KM)-S>95'*.V\]-V[9ICOB(F]GE;>FJ$ZS.-9 ML>=.AX2=*6^GU[>9U3\X]6HW"*]MMZR8K4JIDMOUCS*FC:<^56J)F*M /''B M>I?C<)\KSQ$9V-7\8O+(MQR ^[6,CQ8IQO1'8'4NA.HJK#--:O-0FIZVA\KF M4C\XA^,"6OV6W,DN;AU[?/U^7W6[=?JY=_O2D/:'GU2QS:8L-2E-^7*JM45" M97LY1P13,")EEA-" MEH?O=(W3>"!KPLS>VI"F*F(H5/N$B"W\M2P;3OVMJ.!8HTGKMD:?)<2&? M'JB?@<-G:ZD'?>0F(F90"\^9>2OWAW$Y9-OCYQ=EZ*\MNU2=[?SLW:802M2R0F0XR$\9A1QPN$6]!%%9"O%RES<51*:=?JE(_-YSR=7 M_H[M8ZG+G*W#G?6J$.(QTDC@E)5AIG8N-9\1BM.50L+=M MEA72-Z<9'P)5PDR&?_=23A1UZ22LBS!LN[*5@[8U0QL/_48<^YB:7>@7-NV= MG42VSPTMJ'R8+EY9_5?7D<5C[OVB*R!A.6>[#O%@G3J-XH/AKF$P("$-K+;/ M/!2/&?A>^>$''EEP(5N>BG!JK(U4*]Q\48[=^2K SDA49!2M-/F\OVT/4M'[?B-")M4DR@HQ% MK:?=E^P2%MZZH7(WJO9\&7;J&1VXXU;R3S]WCH9CG4P5 M]BX\6K!_I'H.\6&3(H8A6705,)' %#W#*LKE\3:L>H6"_9*Y%IFKW.J-9"0Q6X=LA+L5'*15/_-*'#+V=_542-TP%O04\B M:_)7E0W+PS"O@(5O*NGCK7#>+N%WKCKYUSV\SIGX5*QE1$Y&1-S:>[/ KPSY M&/%8FM@DPYM#IVAMDML@C>WDX0F*'/5=*W^4<1N43*A4ZW9PTJ_S]_?0&/E2 MRC:%OW=N8D79N0"Y:T& K161=LA6I-;*TBA=TD?TXWY985 M3/FNU8#-PIOL;.=FT^;I+;T86*?;^R_YHA/&@IB(G2M4UWZ$PN!7&'0&MZ9- M@$W7$$V3:V&)@DTEW=G)<_V1TVKN,>0,(_DO)^H=-H.&E"4G<&]C.F@RC 4D M9(,DQTNV! QYK'LI-LJLTG3NL+AQRG+JQR>9[U7<@'6@:+B[YU_\^Q]2V\)0 MTS"2.1Z2G,%13B*(0HEU_>C$>IJ&2^2U!(L3IG,[I7F@XN7#/;'G6*]29?V/ M;PO7-QE5FD,Z]M6"#XEYHC!QY: M40AD)'JV"I'6?Y)*L/UVB_'\NJ#VRX1>?<'FT75!_(+UI<6\>[?-+I'Q1N+] MW"UH:T0H;11&,LO;G#*E<8@04&FI6QS39EC2K0.]HBLZ[ W(K/?-R(S7\^MR M)[]Z2NK;^J_N!%<60G(P"E_>GSKBJ4%<55X/7[BL+2G)]0K6>ED>)'^NTLNL M?IBMJJE^NKSO<+-7NTH/^^3NBA+[E=I-BTES ?7L-/M(9Q<;!XHK.AK;$D4$C5GGP77 MBY:4I'Y8:A+._ ;;)44'(>!@NP;HS2A*O92@TQ;0I!-_(\DR)[%@U&S/H\7? M?+VRB)&BJUO0@2.8,@-?G@G7WOFV-B4CDD/K23/A.8XX,,OH[ MZ</64^#YKE#34IL!]=2.G+7(7686=@+QH[$*," HCM5'XU0C8)#V7>11O M>(TI]GM(=='RO'G&A%C.-BMZB6+YFI'-%0-V%UJ[R?M>#1DN/4JJELW6&2H[+Q+; M-Y-(,.@\#X4W=XF\2BT*9ARR/%UO:!*KHE8YJ-N=--Z=-^HUSH,7AGXD""FO M>^P<(<1U(0>%,;;LO2_VZ\\X5,TG9&3$U>RY)JF:*?K[S594E7'%""Q\L@XN ME[575#1?M1O3B@0[O2,V*49,)'=:PF 2;&_/D@[\-(=XR"^I#UJD25HTCB=S M^ <')I5$>30GTFG\8W3?-=$ULP.PD4:,U"_5Z M553F;; @:3]_4?1>QZ)!+;7DRGZ!O=J">'.3IO8V="]-Q1ICO1B>T-^GZ%QQ M..7LL=J:$!K4R2]^+MH\:7'187QV SMSP ]ZT0%("R3 VA%"3JM.->%E1)9Z MU0M#$U#L(G-I@NT_ RPG>J0ERL^'3X38W@1)=]_WKHG-%1Y*O&O['4]K,Y)? M@D/G>]=$#!@9*X$[AY ,"AH1ED;J?FD413N-,;,%UQ>7;^/&XJY?C%^7LC8W^R@Q$QJ7KH7 KD>A;^L=RK2P\2O!Y8(6^ M)<38KG+=OC#RA56#@[ F3*X!(;V0= W!!+9?C3D>GMQ=H+@EFZ+N7,G)D^14[>YU3) "PHCC6/!-S BE8\X3PY$B1H%!065 MS"[C2>E;VC)7@(GH[9C$&H!>K.A2Y(7A4!"#DB".Z,A65C[(&^XU7S/ M"6B@;CVD+CU$(B-X&- <,EQ84[-HIEJM3R?,]ESL.^#9?9LMQIIZD!7@5"=O M;OWA?G==U=M^J[3!S]MTX+V7,V_\P8!N!_]3C]#:#&?O#9J3>-E:T"$+18WZ MJ.5,2 G%8&AJ?/[&N:GLB@B5QM$0SYYQM!3=EN74:FQ M16EM[="XS^+T8/-<,G@7TG@=D1J$>B=[0;*!=]DA4\;\GQC'LZD-EVXX;%3& MN/^A211WR>%5VO<8=>@Q:BMWVI!! 5C[/%L+)>CJ[-Q:U[-]O>'[>=6K=?<* MLI9(I1'F EMV:J>,'KT=";+UM?&%7_W=/!)2/Z4>XC7I8F;SZKBX]+F1W = M:8\1%XW5UJ6)0E:0D L[TL:(HB>BJ&2*.&G>>"C*K&B_S;TMUG'JFM[G J%/ M/FS[1>FX].%4 9(LQ8@+ PZW*]'X^.C =D_2"Q.7IV[2@XD#MV9Q67*IT_68 MKV\O?NU(B?"YS>_@<5&I#U:YNPU;9U ARR2$)$:?/>=5W5 W%*+@R"*H>?UT MGF%38SKOTLAB^XD>Z&OV=ZGW*C?N7'LFZ):T?PLKX/3XSJ^^GLU7F\3WOU=& M?%_#1[#7=8M[]9,/&'D>)#L0'LT&<9SL+HPL?1G(<*8/O9&"Y: MO\Y"5:-/\2VHHFO<3QH[IC%N$5\;%"LJG,XG==O$CBPB5#-L'.K6D*?694NV M0^I&."+&^Q"+=ZW[ F]X#'+XTL+ _,&R7Z^32(-_G7N=!/QO&WWRWP!02P,$ M% @ W$/-6 7=R3KE$@ \]L !$ !P<&EH+3(P,C0P-#,P+GAS9.U= M6V_C.)9^7V#_@]8O6P.,XCBIJNX4*CUP;@4ODG(0N[KG;4!+M,UIF7*+4A+O MKY]SJ(LEF[I8IA.Y;*#1Y4@DS^7[2!T>4M37?[S.'..9>H*Y_++5.3EM&91; MKLWXY++U8V!V!]>]7LL0/N$V<5Q.+UO<;?WCM__^KZ__8YK?**<>\:EMC!;& M7DY?S$]>;M,].3SOM?S[<#V395E38<@/N M>XNDPNO(Z:_F%.1 MT5]600O@=AMO8YU3\[1CGG7BFM2RU2+@1D8$Y<'L+%LT=,[9:9N^^I0+-G*H MB<40#\!2F&>(953]U9KF"(([&4D.XW^J[0 DSMMX>T0$C8MSPBRA;EK>RK0] MG[.E&HP_4^&[GCB94V]&YFQ.3RQW)BN)JH16LTD7#6]D*_MS+D0]W,D4#84X(F:^W'-U8+9RC1WPG4QPEV[Z* :>? MVN'-=%%6 "'CV)FM!,+7-YN+AHR[LM@_B^QT:!3^]<;W9#QR1P0)N M_Q40AXT9M6'8<.B,OY!E]K MH\C(<)"Y=RW9+0JJX%]F7,_$2V;GS#SOG(#H5KN"%@6#D$H)450E_L/$/^II MD.Y_E>0O*X0_MY"=&E8JB4[*RU];"%Z.S97DQL7QQV92%2-,H<2U\FWJ^$(. M.O6M77EN56-9ND[R5PTEUH:?BCTMKH!=[%,]NU-#;R6;D_+R5WV@,P-S7;AE M&YOI4!Y/Y"E35E/^+>H 7Q9Y5-*HK)F:]$@B@VKLB(KCCVW&O"1FJS;D1<7Q M1TU&KD0*U0B9#D9"4L;-U-V:)?P'!RT?9" MIA8.2Q?XY.]\7M6#<.[ZLBEY+;X*82T?N]$EN(@1TY7!U M":H(F!_40@H;&$(!@\&$&2)T7TXU3-NU OF#'3[S%R;V19A'H)26@?5^ M//4J3S9"3:L+2-2,%5T"%\ZNJDRE?SL]/35,XR:2E?[9Y;9Q*\4:O:78K^T5 M66MJ!(+:??Z;_+W20:+*48FBBED25J^W"K2Z9G0U1K8:X!;$!:[#;#E0)Y>% MZ8Y-I&\4. 2A@??L2* M_.W($05D@#0(GF*T^4RA(\/?U'1<\5:4J2)?%X/.JC/H.JT6##2HEO'A'O3Z MVY%2:Y".B",S1&)**< :SJ!]$\C!7'MG1*HJ51=]SHOH,.E? 8:M;_.$*Y:LBTN?JC_;!BF%_M>XE1H='VIE<0H14W/LN"]O%ABI M!.IBR^<-(B'0P[A#/8X<0N H?XJ3 M2SYYI1HFDJI&=>':4>**(7Z4B1JBN ,']+/)9G/"/'D%0B7'Y1.'/4,@382 M*;,FB$O%Z +]3 DZ1NJ]1 $,S>Y! 5-J8'2E!@?.@U_"&3:ZT9;I9,J%SF@\ MOWU=R)\KD?]%SM% LBE%RY1T+/K (?_5I,3C$)\*S-698DH\76&9LFE=0']4 M HV!^6TD%--[Q@"%'CC$%Z9-1[XF4*/&=,'X20FC#+E!S($#USDU'0J.TO7\ M7;:G"[[/ZO0'!M/W4M*A(]B!R8KP/69A5A+SD+J@7&]8%Z8Y*:V.G K%(F4N M\]#!/3/'$$R:S\2!2:DN8+.-Z@)5G;&2@?(=B#-^1W&'CN>Y3!_A?JPPL0-1 MA#GW7 Z_K6@U01?*543IPEZ=P)*A\I-4(DYD@1+&8T:)0V?$1]/WX#D6>(MP MYJ(+_K5V-6%]IDYCR6AY&$D,9T*'CNPG^)=;+O>AE(.]CW&?XB-57Q\O$J$+ M;W5Z2X;5WS/"C5XL_'"1%VS"V9A99&7<=1UF,2J2']L3H+(D/3RXN/CT\?/: M(WZP5"(SPD>RC0_QKT-?@E:N+)@^KN?HFGH5BM!( O6S/F<9P_@PE H<.OYE M>6F]5*@J31\K?E%'!17RX4>&E"2N]5*C5(Q&3J@CAZ),^9$,^7EMO3PHDJ"1 M NIE,G4._0C^2@Y5+^)KS6J$6;TFEDK2'K'-2ZIJ!CFW?8UHJQ?&5.G;(^SE M6P9-F_J$.= MZ:L?$.<-=BFNB=1(#O5R6_'&1>/#3:B0,0P5.G2^*+<;[H@H MU61I9(AZ12]GM^.1&I6F^;NA1C59&JFA7AC,S2T+Y+[E$'@N M1$#NE"SETC721[T$F4>?Y*K PQ_C$M>H7$*M(Z74H%HNMYC#PLR!.S;]*<#J M"M]DW*2O%D8=<'7$Y,+ 6S&MIE(:";A9;E0NCJ9TQOP8Z&Q<@\X&X\:MU!FO M7D4Z'WFIW,J]H\=?B1!]O/E5G3U=W4)^?.!MFN?>#2\V%JN1*>J<:J4\^Y$\ MFZ$X<5W[!09>S4^OS>5JI$_MUQ:@Q+=(K^-#J'0M93?C3G5Y&AFS^>L.QY&F M,FYYU^DK_J::1Y[M]=#(*W42N9!7!;=N0T6/0U,UJ$UW+O\@EL^>\8B3-R5: MKG2-]%*GH:O0R^A+[8QNI-V14Z6HII:<0H#?G%?E&FCDECJ!7<*MU,I82+,C MOZIL2=!+H$(1&AFBSF/G;7LXXI]Z[V]'L7-.XQHQ5R>?X_<,CT%Q[G:4W0"> MW[Y&S'/>>TGO>SG"G@.+".;S\(L[Q,F>[9@^H1J>[(X\;\UW5_#4SI.M%=)' MK(N7DD8LQ@O(?N5:T.WJI9&AD3,YK M.AG&R!]R>>E(@I+^GQSHV(3!:%-E--)*G3 N&(B2$RB/@]"&_'NA;#(%)Y%G MZI$)C08,']@CY.<;;( !MT>9^,'*W3&OIAH:.5>^F]@T_HBT-",UH[%MB&H: MH*9L -4TGE#-(]W6<(:>&7@,/Y@B5Z$DR@XC(^:$%W?%KZIR-1(J9\-RAE / MB5IR_4NRZ7ZIUI% ^3O,13";$6^1G(,L_X=G9S\31YXS@,/&:B7-]-*LE4;R MJ3/1RMWR^"B52L='.?\]O'Z[U%J.;6N[[(_<5!]ZL*O<0JD4I%1S0<%%F^ME>_3G'2];^;>9X^ ;#7&# M(@ )S ]0_#?/#>:7+?GEZR\,&-4RPL_))9]F_V*[,\)X#^ZA82TC+!M^_&08 ME@W"SVBEO_A8;HUM2S"(,^C?/77M?P?"QQI71#H6X^G^.&9-^#63%7NW:. ] M/9+R0*RR&+I+:QX)LWO\&CH^S&J?J-RS+H^ZP-M#-]NO8ON63M':9AT_A5=F M+H=N[BU6O12E-R];ED=!N]K.BSN[M FX[4^H=?0OOX$9I4XCF;I7EBBD3W\&NYZQ+DB_,_^^/:OQ=R_'E&<%*\85EJL M$;U5)B][/-P:WQ_'3/M.D[Y76*)A1%PU2W[3RKYSO1^X[7ON4 CQKW%( &!% ME_O,8G,BKSD.M5#K<$1=L7V+9NH[*(9/%\2A$7VNLD%I;V[1QH(.SPAW1KT; M.G<%\T7TT;!.8EW^_7=Y(E2QZ89:."FA/1Y]UI-/9!04;="+32LOUMQG7I[N M<;9H$>%49JNB?%.96FH"ABX;6IVILF^&/V'VV1W#[$-NCR\S>KUXTSIP;O@0 M?\JYR^U;^2'G7OK[U)'9Q67JVXII+HB$=8=$M[VK_E,V_,E>:D2H@UO%J!V] M.)CHN7*QJ1WG%M2888P1;WA+#%#<:*H1=XQC*T#KG#$L6C18R%-.,)%RY<@C M7$-3ZU??CG]^W)+VCA-9)*WHCQPVD4V(;%I1-. P5KO.,U,/#5U9L*BS22*N^!I1Z9&TJ*M"(81VF*S)&6,8* M\5SE#^9/XYA?,@Q&CF2LB.VK7_T]1MFZ'EF9^70*K%<4;9JEN6S^/Y=Q_WZ8MD&Y1O17^^E3NGA MO\MY@/E;[L=T?*0>GG)/)DF MOOJ4V_EFYE>HWRMQ$6U"/3W6);$8D##S4%^+WS8H_\X!6YZ)*>(]DL4L-3VO M4K"Y*1@,5/KC:]G(';'"+$JXK"(S2' 9QDT1[Y- (B:&UZK:U!F*TAIW!D+E MEH G.@\\:XH9B*JNJ%!YOYP!,V6H*#<&WE[UAC?=)^37 ^-L%LQ^<-LC+[S[ M3)BS$FAI:ZUIJ1[-_H))Q!U[IOA1>FJ!5<_TABQ*.*9-QE[Y]H:.2>#XR_7@ M>(GW*;5V6J=B,V('A>)W[)7:UU/B32B"CAMU)=)/N \/2A897:%N??1A9*/; M/VP56G\+B >>HM3NSG#[<9&%BK+-Y;/+)[@''-]E[$8[6Y;)G?7T_P;E]\+F M:(UFN4OX]M5R IS ?'<]?]J%&2A^!B632E'YHF8[3?-1[FPPO2]B &,U-'ZU M6,[L" _&4"W M'[<#;+3PVT::.3\.(/KO4OX(_$0^*S9I:4::IM/AVXX*V+$ M&<2[(:.]A<-X]BWMB9(. M#^3?KA=G!)?8Y-W=:4:B%C!]3F,%L^.#ZD8CTF-1$JL_CM8D[SQWILI(]WCT MG,/4-/QG#\EK;-R6;>P\_*T%Y2-N&W]D4!J]YCETEV^HR#-.Q._P]S+Y/U M!_-G3 C76ZSO+\VYU\BG_Q/E](4XLMN&T6HXOY'+B#\$!FX# OVUZ\$TGO ! M*,UL!G[.FKQ],PWU3IXUMY/%W$_,@"#O;-4A-6KNNP]JNV!?/?# ;-NAMP1& M+X^G#>I4=46%%GX6GU3N(15:V#.?5!M"?\J14]J1GAGG6)U?KI'V#=:W'PZ: MM_UP0)QPH7-$K#^''N&"R!6@Y3IVLE8HLKG.6C4;M]B8#U^8E>H_PPB#^WJC MN3&?8#8>7X);@;9R\6; CD&U/,$R?8!EUP,8)[(HC"E)D0C%[@OQ;'Q)'7?^ M@M?D9F#1]Z?4&TX)CT)ZB/#'-%Q=[7M/U&<>C2-_&>''1WITPV3_-\R-X_MC M=X1YOQ-GN0>VV2IN/1N5NC<8QW#"!?.RGA !M7LK[R"]A^ M$E!R#KE_WFY M9]E"L_?M(_DC^YQBCM-?/+(Y#-"#!1@X$V#AM2MWR:P,[%5+-V-';$9_"'F&P3SP M'RCT@I7D]\:U&CF1*[2B'_AUC%=6:\03Y(_LP8"2IW(+%SSRXM/VY&%[:O;7 MK]Y4ZB\/_]GL8-G0'[5K-VXUN8(EE0\;K.R;ZBWNH[^V/QR[LB,UB-I[#V]\ MVF\][VXN9A\]ZZ/&F_@HJ;"/UM8]M;>R=VH+V"-OZCY3M,RYVN7MM:^K=MB" MFOMCO^XO6I?H:[JTO-U]]UW%CEI2>7^\4.,3O26NJ=/B3^2O MB@2JWL[^^&:KKQ>6^&N[MG\&'Y9\5;2V_\K:_6E\5^4CP-MYL9*$G\&?%0>Y M"@WLCS>*OYU9XHF2RGONA8IT**Z[%SX0#&(]/$X:?A-+)@7P"/JYZS +4Z+Q MCR)?;-#&F_DD/*Q=6%,Z(_#G?P!02P,$% @ W$/-6+;2N6:Y#P Q_$ M !4 !P<&EH+3(P,C0P-#,P7V-A;"YX;6SM76UOVS@2_G[ _0=?[K/J)&UW MMT6["^>EAP!I'>1E=^_30I;HF+G%Q<% IB&+ MPX0S\OF \8-??O[[WS[](PC^11@184KBP>1I<#O+6$S$&9^3P>\GUY>#8'!T M_/'H_>CKX.[V='!\>/PN./PA.'H;!#]_2BC[\Z/^,PDE&2@BF#1?/Q_,TG3Q M<3A\>'AX\S@1R1LN[H?'AX=OAZO2!T5Q_6N/,CY07!\,T8U#/-_ M%M&$&E0!GP;IC 01EZF"'Y#'B$BIGTYHHDBZET%,TI F4O'$D#@39/KY8+&@ MLV#U=HWBGUY>GCXME*A*.E\DY&"XP;@H3*(L,:U>JN]%<N24LU2$42H=M$&J=4#D>2@8B:_S3BTCI[1 %R^6 M*9UKI:I?H)E?^G);H3H$:'F7*]4Y#>7$Z*%,!O=AN##B/B1)*E=/#*V&SN+! M'RN^_T;3V6FFQLRL=P24,U(FGZ5 /$5AT7B@TM-!+1@ ME M.#\?*./[0.C]+"TL<=Y.**(7ZFG;:!0EAC*;SW-%0Y5J6M6?"CYWBBR'R91Z M"PC%4;\H:FL)**Z=]PY ]_(F ZE!QP58$5I&V3/$3\,R,[\KS^GH,$B(\M1D MH(!G0AE]8NRY>:C\N)Q8_;"9<]2X?>_^3TM*82Y.:V7_A3+MME]JHM:B=!4^ M:1SR;,O.UZWFU7!5$36:ID3\FX3B"UTV!5;:!BJ4WY3DW#Z09$F^*G4Q>^TL MM6T&%=:6G8FZ'PUQ/!-ML&U41X?M5KVK3<>]J(\/W0-O@^VY-AYDUV0>4AW0 M&D^_4*G,IJ:T"4AG0U[Q7BJOBY#Q0L?LE-]5UPK6K8X2&\0JMFH+)6J@E6S; M'$KL'77V7O1SA15MV@Q:K"ZKVK@=O&BM5K9A*_B0UK&Z[1O$%:)K;&=Y5]H, M0XC/)Q<83*8NT"])P:R<^A[9A!WT?7[8P!W-=Q1&[R= M@<9MX':FVAT&S?.2\E$@5"U!HY3$013*66 8(Y[T*M2PP7GW;S=_W+T+G%X6JP^502,6*P_SI_)'*6GH1!/RD/[-4RLL?I:=?WF M6RF27I%UO69Z0?;+!QLE'6A;M^F5"UODP8!"J^$,;'733;PI.S YZYVSHL& M[\'"19Q)GM!89QD&Z\=RK9.G"7^00<;"+%:\B^'&JV'#/NU2*Q);I8!?L$AH MY^>,Y)\7S)H\J$3(EOS:15,=I$>74%"\]8PLN*2I/ (2;JO6 9%7@D>$Q/*+ M&O0K3_,+%SG\,9J%[)Y<*]3GTRF)K)GIO1#AE<]G M9$IT6O2%3HHF1AQRL3A5#ZG5ZX!6\XQE(4B4;ZQ1_T^(L>(L'LVY2.G_S',K M'GA5KYART1A/-\5ES';A,>_P3;VE<%T)RB*Z").5*@1D:UGK>$7QKY"R2R[E MF)U1::R1DL#QU)A1&PI0':\HMK7?*(IXIMU0%H_3&1'7)")*7"8)L:%JU 82 ME$J$-%FUD;VJAP3-,Y]K ]JNVC.F<^7?\R=""M]GY9;2&F)8W43/&#>,41A5MUZ+/56SRS1,[+LJZS?0-[XL M-6<*:-IF)/I3YD99?1U%*5W6&YMU&NL9]Y4@BY#&*X_Z_'%!F"0KV^8T^.T: M\XI;R9EV#M7T=$EC$I\\W4D]>X#W4D;D>)J')@"P2LO[IGY*4SV7LY/[JH!O^I94'Q#TA8LS MGDW2:9:L7'T[Q955/*^W+8HA.YZ>D4EJEDJ,3V3" .-)0N]-W,>^\E:W@=[P M049 9?G>J#>^B^8P@/*MLEZI-F'S$]7Y\2F?:]?+%7-T%\:Y7MO BO,V459, M"[1ML=>)F&-*I6R'&R+EF!(GVZ&%6[D&Z9+='\'2#>@:<><&^9)84=_(26%PW7+J# /^PA<.@Z -B7P>O(-[B,_P(O68#;XV$C3VALNC5*!(>ZE&PA;9VNP M.](["US!W,UN;ACZWH/)/90#+8/B^R ,KI6V%PGXE<&X/>AW(-@N%IX;A'JP M]GV--+H]"/E4@/:3;HUI5VT[X0"NL.U#A*B!*NP <9]AH0:(ZRR)-;!_./=A M-4_ZYZT<4G1V%2T7._/%?"R]H.5B9UZ-#_O>/Q=WOK<"U\9-GFLJ5:#CC9NN MAI%LW*PFT==9 5PJB2N_K<99QN\^%W-?6**3 .(Y951)N^+>DA3Q0@O=P%I^ MD0@N91[QLE&]7<)W[C&?$QV.TSZX7KZB+%,Z;+P6V1,RY8)LQ*[/'Q5GE:I6 MZEX\72@QE]^X^I6E:D HTNXO6$KT 1D6Q![>V ,'%9V%H)TH.;3W=T5ISY3G M;,MI*@AR[1YP%_>=>_PL2!:"2\OT1^4H559[DJ4ZOG_+:XV9QNUX1;N>C!2R M8>L7:[E^J*V4(T=)OQ3KT*GJ;_Z2'K=9A%7Z*Y/Y19ZI\7U6YNEU/L?:S]<+ MENJ?CN!9@+1HR6^.*C':PRU)Y85PYJ26N56\PWYI$%;977RN JS#H<<48[-; M!=[0R<<4^P*A-FW\-1P3S&-L1(7E?<0XT"E22$\J8A\8.KB\O!!EZELGA9OW2A:QA9P MK3+H6YP%F2GY4DYA0 VN(%' NCXM$OX>)&L0M2GVMB2Q05RRAG9X6(;^.6L7"B?64^DIOZU1J<"><:?,6_Z&\$B#&95". ;UGI_IJ>A8] MW8J0R3 JML6:;X4EB?^3R50/\(H!L]N7[7/HL,>,HAT)\6[D*>\7>,")\N3. M_F;$F,2CI9KIWY-OV7Q"Q!E-LG5&]\9N@&>U8K%F+5OS:II+:1U/;=3605S= M"@:D6\2=A))&]7"ZV\#IRC3M,MX)-S!Y,[OB1-T1WY>U.3H,$IT)*P.9+1;Y M/KU,2!I0-N6B8*7(M[T$*5]5;'@?5>+)[HRC* MYIFA"'*B4]V3%+MNOK?3YVW7IH#*]D]U/E.R]1*D2O\8M+]>'\9VK7ZRU4!2 M5%$: ^5N28)5PH"C4IK ]7P'TLHUI$G:L ?7 )5PX+#G,4.JX/2T093S9OV% M*E13%^ANW -,43VW7U!UC6VIWL0TMTXMJ-EZ;PD%C>AL=27EZT/DBB%0>G5C5=D.[FN\Y.P^ M57PKCC%X=7Z!U1-L5+=C<@MN? W33)BMV>>/Q>+.-V479R/%.!J%[)HL>;+4 MXY*RU_L .FW3JY/XZAA*]]3#7;@7NI_/A=-;[T'4NZKXQB"R%T=<5P)PE^^# M^HWS.T'4V\OW0?U-F"@Z^'Q.I3Z&&H3 7<J*R,)-F*^7N3BG9B5-'\::)^S?$Q;9[SP"U/".@#-SR)RS"RS%/--J.26]TKVI M4;-W1,!0=YVJ7C&MCFG>O*/CF; D5([!E)*X4FTU;J<7M&O'L]"VUC!R=85^ MZ=_P06N **_E%8G]['SW0 +7\WL$$.?Q TUL3MSKGST? )/?S_'D.O1ENXA7 M&C>Z4=E98[AF/(F)D-J%L*Z 0JOUA<4MRDAD=U,95&EY9UG/5&\TLW O=ESQD%3?;NXIB6,C_*R$!48++M5ZJ&D_O)#%>%0B) MI8[_?5W Z;RSK'^JZRC[Z@J>DT#,O3*E]\FXAW6-FM][6LL.CM&*"9F;)8C2 M'3*Y([:*_8SF>MW"@JU-4YXQ;Q[-ZY8]9UG/5*>A\H3B\V(OS8MTFBF-'/<# M0ROZ/='9^+)D)-'Z%PQO*KB7FF_8\H()"3>N+O*+?;5%7 F MWY4;!=["EF#*W:E$!^TV3&<958*J'4[&=(1]-;KZRRU0?#ZNEJG$!S"@4#SO M,>"!YVY 8?V 98]A(@I/],Z$=L\T+ T6(M/C;M1 .:=^)2X&Q)\[H-/@5=T M%CS$@4]WNZ%!%]#P:8E2Y=W)@/*G(^P86ED<'YW@6!WAFZ6J8ON8.L6-:0>I MMYA4/ \++L;DW:'2>DN]GKX4/ P=,!T6$Q>.AA899(X)B<=AJI^*A(4XX]H M,-;,$H$"_ D-0& "/138!VS ()GI2+T5MS\,6=9'ZK*4 VNQ[PFI=P*;T#1, M=$3JO-2&AG)56>SN'T&_29XSU9UFTEI!K[V@7WJS29*/,>T[VF@M+80S(7*; MG1S.=%1S4S<21Y>@(OI' #8[P4 %0 '!P:6@M,C R-# T,S!? M9&5F+GAM;.U]6W/;N+;F^U3-?\CT/+.3]'7WKMWGE'Q+^8P3>6RG^^QYV061 MD,3=%*$F2#OJ7S\ J9MM EP@07!1054JMB4 7!^X *P[_O&?7U;)FT>:\9BE MOW[S_MMWW[RA:/"R+-*+9!5O1-_]]=G?S)GCS_KN_O_]Q\O'-YX?S M-]^]^^Z'X-U/P?OO@^ __I'$Z1]_E__-"*=O!!$I+__\]9MEGJ___O;MT]/3 MMU]F6?(MRQ9OOWOW[ONWN];?;)O+;Z-\W^&X\8]OJR_W35\-_?1]V?;]+[_\ M\K;\=M^4QW4-Q:#OW_[WQYO[<$E7)(A3.2.AI(7'?^?EAS$53N5*"ZG%M:54,8YO MYYC.29'DW2?Y^3A*@G?4OB0U3A\ISUG&OQ63L"+K>$V_#=GJK=S0WOWP_;NW M)=UB/\BI>&0>I"RGI&_'GMK4$X YN11O]DE-Q7&PWM1UY"0M?O6Z^8Q=.PV\7 M[/%M1..2&OE+.6/5"Z?QOR[%@_/-Q;-5E9 937[]1O5U14TB]VZ6;:?*/37U M3-H+53=T09+JV9,O,:\A3-&B-4USPF?E0BUXL"!D71%&DYSO/CE0N/W@7QBU]?LE]SPV'H?2"SA#;1^JR1CL[# M)CS)PC[ MQ*<0GBJ(NNV+-1T";H%H9"K%ZWK.7PRP60,1O;?^:IZ?9JW>3?V1V!71]D.6 MYH*I+Y-R7H6@1!?R%V/$1TI1FR6FVSDVUGY]*YA@HOAWLY_*3E\"O!^;])QC\0UBA@@_IXR=E+ MSEYR]I*SEYR]Y&Q3 M/-:(.>>"8:0Z*WY<_EG$0L&2"F[-@E=(0,;]O?#OQ68O-GNQV8O-7FSV8O,Q MMI9'Z4 B]-\"2K(T3A<\$+T"OB39?A*!0K1N"-=B=#,M7I#V@O1)BYJ7VP5P M2[-[R?Y-HG]C>R\H>T'9"\I>4/:"LA>4;0K*P(/'O6 B,='DH2KA"QJA,#:[WL42\_E1I-1WZNL^J2FR3&(7*XDD_Q2ZS&4:78B75T=90],>J;S89G[+10&-;& 3OU37HEEU0XH'BS?<*W( 6F.PTB,BQJ')NOJL9^T/9 OUY&T M(\WCJNA(P^;3T/ZDW(\ FI@TB2Q9JMZS54UZI.J>AD4F)N']=[.'.*_5[55- M'%!U^24L<_84>XBN68_4"=572IGWF]6,)35DU7X_F /PJW&0@>Q0WDW6YDWU M["8#VSJ9B;71\6M4N\Q,X0&T<2"V[Y!BTXE]0&C?HX.F<68!,?V #A/,[P2$ M]R,Z>$!_%1#?3\CQ*3Q=0'0_HT7WVN /A/0WM)"T+B @NE_0HM.XX*"'=O^! M+JVY4>L8@^+#*I6H#(I07%@E$@,;'Q0J/@G%P"P#!8E/9 'Z6J$ \0DM(#Y0%W84(3X!!EU*!T4$S[Q16^>A:KD^"07O8$7B@N?Q**Q MPT)!X1-7FFW>4&Q8Y1-(E 04(U;Q!.*=A6+$*J%H7/Q0:%BE$XW_%0H-JU " M"&F!0L0GE30Y]J'(\,DFID%Q!Z1NBS@%,\)C'K!YL!;DB<\-LVP@HS@OYP0A MQZ>B#Q37YU/1W2"89@N2QG^5K'_.4LZ2."K_F*31[=&RF,ZOXI2D84R2?<*C M0?&JOA[C$]]]XKM/?,<8U^,3WWWB.Z)=PS#QO=_S:B Q_KM@ME5^@RW+!-G. M7&,HRT.&SM96\O>WO9V\O>7O:V M*7L;'T$#B=/?[RZPY>6%MO'C\:L RM':,5P+T !BO.1\RI+S:W:5G_QKFM+S M0G#3BF8?GRWS[=/UC;J+73S+CT0N\==A:L0?__I(_LVRW;-YS>SH&_5.GXSU MF,Z?$5#+7:"VXZ#6VL)H(WIO[XGD=_L]K)9KH9JU#NTV-!:9UV4&XV6/81%(:LR8ZW6/\2(8=F5LA8A7]&D/<& O;T(V MNPNW\FNEBX-&,^N)"I=TU#'N?'K)!]\8;1E+^B>64RP0).DFC:;ZDV1'%<"=/I['< MAJ=)NCZ)C;T*M9]P3G.NW6< /=PZ@HB8SCOZ2-."?J*YEG9M6^]N\^XV[VY# M!Z3!N,B,['J8@(%M3,S6J@U8Y%LS5P$Z_@5+&LQ(=4;)OWU(8IVXV5)]B7ZYN=YCA)^1:W2$8Z F MCHRQ<'-+'0J#)-'35@4+. %"M50JQ<)RA419H5FA,)L,@\6VH5J*'>U1G=:= MI9HV/K[=Q[>?<'R[!>_;0!'O/P19)6'+^'"VJ!ZXHPP8\:X=PW7$.X 8'_%^ MRA'OK4*DMPDJ'RA;9&2]C$.2*$.D&]N.@UK[H0]-5.\6ZC$MBMC^QK8^],L( MP<W/+UF5N^*N7ZNF3]!_(%GJX!Z>(5 M4Z^8>L5TG(J;EXV];(Q5-H:?/0/)PS\%0FXE<59^PN9!PM)%$C_2*"!E)*NA MA P=SK7,;$:7EZ)/68I6E.FZE=QT*[CIG*0D(C=YI*[6U=36;<$FR<'7>_8^ M7Y)L07F35 SLY;:$T+8 ]23\LXBKZX3+7S.J3T ']SL--(,FTM=1IZFPI6_M ME5^O.'K%T2N._65?-^P_K/4A,CHUV6A+1J=WP=\.,Y+14-D&^N!:[P#U1AYO MY.G5R&.D2@UDY_DYX/*"U!D1$Q>(UFO!OFUN(6T':+>7:MF[M$7LN/N;S29:1 M=%'=/7BV><7IY;(_K/TTNDU(*A- M4:\/A_EYPS^J$%MI=Y>AT&:]_:Z\=CK MZF4LYG)?':UA3R.?HM.P>WV-S%AJ0F4\&G0M8# 7(N(?@.SJ3:G>E.I-J99, MJ59M$0.96G\1/#C;HP/:59]WLL54$00WB:*2NTAR/[VZFT3_ M+G@NV:1<;M/T0;#4='XMML%,,%E5P58=)==Y, N 2N=O3-*/+,L79$%EX2 U MQ_4A-1\;>&A5RRC M\4)L\H\L>8S3A3S^ZJ\I@3:W0-0-22,A(YX5<1*)A_#K](;.2,H$WZ;2XTXU M[\NTKP5RCUGVGH;B!(W.-H?'D;28BS.WR 0Y5R2,$[%WJ.GO/)@%0)\$# M5%Q*C_PSE^_LGA11/,G(3&QJ]\6,QV)WRS0OWM*05L"I"+ASP%$ M-_2Q0-Z]7CBJ^=K&0ZOS=_HH&"E>+//#71)"_I."M88@LZZ]5Z7#?M7\1_(E M7A6KV@E5?M\_54+CUU)5]WWO5%FYZ'Y;7:9@4TG NR61I'J>%T&+7M+HGB#>_I&ZC?7W(!^7>JD;.7DH[OF9PDD8' M)^*!9_G9Q@BH9@=U^W"G\WJ;,4%$OI%13A+,Y9]%O"Y!OKI5[,6D&/3$@4A2 MI5T7!CU/!Y&/?1\^]MTZG;\)#58^7"I?FB6L:C88K5IF5C<<"[TF:VWHV&N? M#X$^'Z+>PLL:3*W8$'2X2!$OL#9"$NL@B6#$KK$[,%,]'R,^C<60F5CI,&)3 M2@8,?AYCQ.58DV.6S0V8IK39:\*,7%>C3:EK\AR@2[?0;DFL5<0,JFR@[ALT MA@0WBQRJU_/0\:?F8#DN:J9Q+J)DQW9G:B=6_ X-*VJB4=#PGTIM8HTA5*CX M#:H68MCD.KP-=9@=&@BP#:U]%"80Z/>H=@% I VJ':%9?-V]0TNI;.@VDVY2 M?J=MY@B4XL_#,Z%C:.Y4''TR8>LQ,\ M _KS,R*W$AC9M,$U(=#! V_9MO*G@3/P-S1;&20K%,VN!8MJP,ZVS9:##K$= M&.S> R_,VBH ;FU^;F8 5*3"K<5H(.!=7KDEBX4;Y/!:$6[U0KOH+=;)0;?S M 9P:RD)@Z#8Q !BC\FKH-BN("ZKCV^J?]1I<@H#L:+<:NLW-I+E,F%N1W28V M:$7%KO+MS%?H=52A%Y(G?0#IM/+N^W=!0@FGIK?6O^KGNOZN@@!?@O=K+,$[ M*RZ60FJ4)LP;R12: KOZIC:*H):VTJVG)UU,TJB*7J'EXY17B[7JZ\M[(2KO MY4M/H2T]]545ABCWBG.6EA04))&15IJTUZ;F@].N32MM[C!6^GTJ^O"IZ#[M MV*<=GWS:,?@@8.;;KEN<%F- 8*CT M4HGPY-GY>_N,$7FO0,]>@0Z&OJ%\!#\$>2;H*K)-P/,CJJ"^ E5_YSX#/2'> M=W#*O@-O&?16G9[H?-AN*N6%QTU5L_6-O37*6Z.\5.REXJ]-*C;9'8<2@W\4 M/U/) ^);,?PBB+?5"WA@*A$#AG(N'(-I\G+R*[W#.4LZ2.!*K+"I?24Q5%_@U-1V$ M5N5]5LV-QT*O\PNXID\IS?@R7BL8H?9[=U0IIU#1 A]E/G:H$X*/<,_LZGSNQ,*YZWS!++QIF!4J*8]Y.[0C-WNV,@V%;NIV-K9?N?= \ M7J3Q7!8ISP,2AJR0-847P5KP8RC8#K.\8 M37L!,Y=VT&$$$,YLB3^.UZ9M\"T.PH&BK7\(,BI(+*CX&;)%]< @ETO.M%8A M9"C7T=9PFKQ2ZY5:?@ M9H(6COD*&87BJ(/E]46O+WI]\>3U1<46P#H)#>B4IF:4O8D' ZE3/P5"M2%Q M5G["YD$B<"3Q(XT"PCG->3O-RG!4UTI6*_*\ON7U+9!F\H&QZ"E.$KBFH>SA M-0>O.7C-P6L.7G/PFL/I:@[@@W @&?GGJBC@C(AY"D3KM>!6TM[M !W.M51L M1I<7A[TX#!*'+P7_L@VE]S1[C$-ZOR09/9,\=G[$8I.DI&MK."@=7W_1Z)9F M,1/M>*Z\'LG9\P::O7KRRRI8T\KX, GS^%&\:I"8:6_@(>=C]I+L.[';97&8 MTZ@$,$FC%Y]\%OMEIYGJY9%>O?/JG5?OO'KGU3NOWGT-ZEVOHMFHG4EVI#'@ M%/1_!7GK*>A1S!K(>/"W@)(LC=,%#T2O@$N4[>P&@)%HOXJ002]Y0=6LUFM?*O%;FM3*OE7FMS&ME7X56UOZ0'$BF M?O\N2,K[T-H)TJKNSF]6T-+A1>93%ID5EQ=L;_L3JV]_!V!Y\]]-3&9Q(I[W MD>1%UN3#L#&4!3#WQ7I=;=HD.2.)I.9^26E^GE_6]'I@V_L-&U'9 M&M,RO'/"EU<)>WI-1AM@[4:S .EW&B^6XC'D47#,HKIT4MZ,S,OC@)<9I7>" M#@">CD,Y51:VET'S'*0U-+3VZJ-7'[WZZ-5'KSYZ]?'TU,<>A+ 1.NY (L"( MO'%6)5 @;DOU=[OCMB*I D'_@ 6T%>UP*///^R#;.X+!J2SM0TSC.#4(P M@KQEZ)0M0Q:=J8=0";F?B[4N?US^6<2/)!%,9Q!4;3R2UX*]%NRU8*\%>RW8 M:\&GIP5;.R 'DJ"_"V8%%^^)\V#+"$+P7+.L+*8?T9S$"0\DOQ1D_[J!0G6; MH5W+V>UI]**W%[UUE?@+N9O(W4!RD]P^[BO^4@FDS1V\('UBE\-Z:$Q%4GGN5'LI/XZ_"6 MY%V%SW'7O"A]H][I^T16],7;J65T4-MQ4&MMC7:X_8S?[;?76JZ%-A^8]D^T MX=*V^K9NJ4X2]B2]KU=,,$ QR^=%\IHZ%0RCSDYQ'8>"W&QSN&OV%VCSP6FO M7_(T:QW: M;6@L#^+Y9C!>]A@6P2W-Y =D0=]#(=1T&1:#G%&S!?*ZQW@1#+NZMV+I*_JT M(B&PEU,D57Q;G"X.,A&__+,@R0/[D%&2T^QA2=)?WEV0#;\E/+\H]&)OY_$& M1U]5T-G2IMGCC/KB0J5=QZ159)O:]27EWA'87 ?1PZS\C@E6V%[4(;5A+N[:M]U)Z+V5%,#(OI1Y( M@ZF3&5D9,0$#VUB8N44#(TZ(8L9::! CP5JO2^L :^TC&%&;B:6LH]PWNE"* M#M([NKA+TS?6 +^%FH8J[L35"N@G_'BPE0!S+Z!C?L IS%HH%"@YVHYTTHEO M+67?6N1;,U,Y.OX%2QK,2+5$R;]]2&*=N-E23G6_W%SO,<'/R#4ZPC%0$R/X M6+BYI0Z%09+H::N"A;^XK09@8;E"8K[0K%"838;!(NU0+<6.]JA.Z^Y'-,SH MTP*,UY9/"^@W+0 0/.A6X;"&S-R[YE86M?<*6P1.NCW'.T,%Q[>[/1*LO4)X M[-) Z3D_!%FEQTX(XGY[S%:;GE!=W75=FRDAL MP)]3><%P0F6]!"97=)CSB7AP&*])^5F2T%#R4F6G?D&KS2%[SQ#9Y@]^H&R1 MD?4R#DFBS!!I;#L.:NU'&C51O=N5CFE1I#8UMG4:&_(QCJ*$7A*N#[Y1-?-Q M-R=09NMS.HO%YA0=N>?.*W^.@N;F#CYNJ/>XH>9]A!EMZJ,+.3#83%&9#IO? M!X-NO*@,47:8$H/MWML0O0WQ=&R(]K65D9H:H6++0,:;'X-8OA1Y@>T7RCM: M;6"#N3;7F%#E[32G;*?IK+1X=Y?.V MP[N6V+O1Z67X4Y;A%;[66\E=MX*[SDE*(G*31^HRA$UMW=:PVA9EGX1_%C&O M]E/Y:T;U]0_ _4X#S:!U'.JHTY1XT[<>A/)SMIK%:7FPW^=T?42:O*XAWUP+ M>4O>PG6]GW8A'R1%)(Y+>4C2/PN9:'7H=8A!:IB$_A_L%61?A0&E @DL5M"P M6[#66_[HU&6C#12-=]7\[3 C.025C: /KO7.5V_L\<:>/JP?KH6P@:PF/P>B M2_C'C'!Y@2Q;K07C$PM!Z,;CNK:3M"30&TA.V4#2O5+[$\FBAIK M6T1V)OC_7"R7G"3W2Y+)B@J<9H]EN,E5D1<9O>:\D!E0"B2MQW'K>!9;"MM0 M>B]HBF5!$$'BF5SVYT>K_A,K-Q$:E6^'/S!YI_W1]S('1"!5#>IAB!AFGN5JFJXE(=H _\;V3JD_W&9:TJ.E M7-O6K86GEH\F64;212DJG&T.36[)1GY4,E0@0Z31;4)26>%!ZR3H\U%^ MSN"/&M074Q([:UXW,\6ZV9^PNY3Q2MS335]_3QO5S/WF;MITC_+^'N_O&;&_ MIUYS9BY/N=$ZAC16!W3NH%Y?(S/6H5 Y'P9="QC<38CX!Z#)>E><=\69(?:N MN)>0.IJ91QI^W;N1 S@OV,JR]:\? 2<&2Q$WI_HV<&ZP%8)SY),!SLY/7\OL M -PKP"G[&=F4.3;A#Q0=\HL0F&9YQU 0_2"NXSX@U/@@CU,.\E!DP4RBJ.0V M(5U.K^XFT;\+GI<+6:[@:?H@6&PZWT5[56M4G2;3>3 ;)11E9&Q,TH\LRQ=D M0<7F7']E+;"U#9*HK%R2G)'TC^G\\L_-.C^?49E$J:$+UL4"<9?79],[-2$U M7UMXZ#:;\HX^LN0Q3A?RT*F_$A3:W )1-R2-Q*ET5L2)C&,49]*-D!I3)O@V ME3&15/.^3/O:(+<B%])WQOY80' M=ED>1C"J&SK;(%@PW'1^GE&QOUV1,$[$1KQ5RH40(YY5R30[RUC\NIQ'UV'Z M G$P,MS1=9&%2S&?K6! !^H-R",5')'+,X9?GET_7$SNI&CY44A3JV+U.8TR M\I1.'H7X0V9E#SBRMB.C@2I-1?&CS-D7PD@A<_GEQ7[]38#^>3U-RT4EKQUD MD)V@(8]-*%;0(#T!N(J_"+U*J$\+*J<\$WMN.<]WM(RPK]\,.XS3$XP/!9$V M."I4YI6\-0!*MJJ?#3)9NA"O<74A="!Q2I>'QG26Q(N=BA_6UI%MU=@RI@5XQ[+VO=@?!!><;0YR M$DF+.0DE:>EBQQMJP:OS8!8 /9NU&T;26Y+):553#>MAH\A!QE8QYRS;Z/4@ M73L+9 B)DCZ19#K?\U2U]DM!_C.7[^R>" Z<9.($(8MJ.XA6 %@4, A\K$-'M6ON=]&R30T8:!U(J]H*/U"LE\]6-9 M].6CC_=S -$-?2R0=Z^WZM1\;>.A)*D4\AD)_W@0PAPGI>YWL"J09.L4X&K9 ML/TH-B!4(L14B,UIO%CFASO!A?POC9J:.37KVCW(L^&R#_4%B4>W?#1=9MDK M?5^D^E@[HJ4FK55-5]WSM5C==X'E'8?.7G**AU?CG.G?1A*I;)J^_< M4*/DPIIO\5#D_EJCD*9"8F&?4[ZF83R/::2^C*FI[3BH'>[JJ!U)3==&U;7K MG9!D^RVYM&M-^N%E53%*[!.SG%(B$Y^&U44%--K?4R##$N)H^X<*6L?A MAL/.]=3RYH74;;2O#_F@.TQU*<=>ZSXCB5R*]TM*I61]B&.1(!+&97C9V<8( MJ$8&=OMPI_/Z.LJP)%"(DS7A1&:=!L:Q=9S+,T:E%< Z#8RCBB;?W0H)AZ+H MYQA-+B1=O@N!FA8YSTDJEX%6PX%VJ=]1 MBQ%<(ZRGYFS34-[9H"<.1)(JK39HT/-T$ VJR][1]3:N:SK?1E-I-H>&UFZ+ MZ#52.SB%OBQA+W0>>\DTVZ.JV6"T:C<*=<.QT&NRC_E2E9V!U,?(L89@-6P( M-,&PS"BV$A.P-@(:ZR %8<2NB=5@JE8X2J'"\&EBKIBJU5BP*4].!C^O,.)R M[#LYYG,;#CY,4]H<=\J,@G]'6^VX*?827C9,=V9VHG5K149]8"*VKR>=#PGTIM8HU):*CX#:H6 M8MCD.KP-=:(B&@BP#:U]'JO;JLJ6=@% KA*J':%9?-V]0TN%&-%M)MVD_$[; MC*6ZUXCN*NB?:94&3-:B#@XJ9G1Y X.EJN(6I?@AXC[1,+4M,\IN#;0K'8IJ M-8S6IM5I75JJ9V]Q73;E).);0TTF=V:WS!O*5=/-.]&)A2W=+V"1A8WCB-#Q MM(G'[ 3/@/[\C,BM!$8V;7!% R_,VE*0;FU^;F8 5*G4K<5H(.!=7KF[>] L((<7#'6K%]I% M;[%8,KJ=#^#44%YC@VX3 X QNAP(W68%<4%U?%O]LUZ#2Q!07\ZMAFYS,VFN M%>]69+>)#7H?6%?Y?>8O3^[UHDJ3RG)H-A5SB+J20>A.-ABLF]99Y.A.NC;O M$5J"#YTDWO[MMD@E1R>)Z]';N?P-G<30%K3957'HA(F6L,VNY0*B_@4[ZGXN MCX-*)>Z\/LZFI]U$8)'/;%R\!\6,36"[::PV D4V!ID-5-P("AB;S%:[E$$% MJZ"(L0EN=@IB0M%C$=PZUVV! L8BM!D5UX""PR*:[5>O64U *$Q4LEC76[2@ M1A%<$E:'"\VA@'%)4NWN0H=B12=!&=0EA6)$)TL9U)"%8D0G/K4O50>%C$5^ MZG"'-!0J%F&IAWNFH5. 37RJTP^@14*AF+%(52TO=(?"Q")5U9OKX3>60-TQ M6 2JPWED4G,:BA*+%%6GX.DJC4+Q89.<8'2N#LZ?R-_?KZ[W@.) MTTOPL2*9/R(*(YB1,> MR+ 4H3COJ%/=F6TZ3H62QZMU0G= :W!N6S][0_T JPBBI8Y,HV_@]2PY#;]= ML,>W$8VK4I;BET,%2U7B\[9NI;ZP8XOJFE:IL58#N)DJ10KU$6':1/=.5[U/ M9L7%DLQBF7M5:F3JJ]T;FEH@YH)6UJGK=&M&%]J0_+N,#. OZ]^:=.F1N)MX MZY.L+TS?JJ\+8[CAENC:@CU'MT-K"OKT255=4:=CJM1%G_J^]5UQU[>BBA:& M.^CQ431H9?UC<_)^'WM!+ZCM8%27F]ET_KE^'S3HX11!2WE_B; M*CH#&?]-%6!A@9D?S6YQ6BP;!).<'+_&9M,QX+TP$QL4-%3-.I_J*@+9850, MU7]\]6E???KTJD_C*<'@MV&3M=KW9@=C./P-UPH\* M:<U$QY39CBXRL)D6^9%G\%XT.7U6QW;*NXPL".X_3>SQ%$W$522]] MGBUZ>O^5>_]5#W0^>^?117D#1%5LXGY),JJ>9VA'[X_S=D%O%_1VP?1@O2C^)G*12Z^%<,O@GB;2M4YD\=\9.+$D MCF12>_E*8LH5B0!-30>AM9;[88W'0J_]N.0&NJ=/*W=4*:=0 MT0(?98-&FI>6>Y7&_/Q+MQ'P6Z])K%3G:UHXI?!CG++LJ.CE_JT>LMC/-K>D M)N6PPPA.$7ZB>76[ZPWC?)+G63PK>4WY*-QN97U\0]C7;XV\T.:#F WA/ MEL_$2G863$R>G^9,K'I]D0&4-FQ(&DT@S,SX@ E?AZV)P0_"T7DE&PP>J-)Y M5&N) >V,J!RLICL'A@0?1%[P_CE.>0@Q,P,[*JYSZ=;'DY+552Q%PY. 8T@! M%SUG]G4^=V)A2RY]2^TJP3:4/UF70;%"DI(ABV6Y=GNM+ MFLPQ7DK GR617++M@Q2R?%\DD+.^/ M.Y)?Z@NV=QK#* MPR*0]RC!J7_>>EC*CRZY@I)?T\7[Y4\@P_1AFY5?ONKM6]T-(@>+"=M+0GM7C"4$:DUJ3"+$>JV_*B?Q<\+Q_[P"91 M5.*3=5#CZ#K=7N NSJF$76=R>W>B[V^'N:/<8AK4J3B V2 M+:JCIY2CE1/AYK%#&?&T7*!LYY3:K1]33"U+57L*J.VXJ!YT1WSF45=07=O& M*96JS582=,4R&B_2R@H0'L=X3M*H_*N* #PL<(%G.G\@7Q1P^WV8X\2[7# 8 MC2Y)E@I9D#67("SI+R5*W,/Z\KII7_ MG[V4*)1@6H_D'O%6_:[86P>HMN'0[BSM1MG8?CCJ*UX0.WF<*;W,S1V&+TM9ME#J#+YH#0V_^K8&BM;"C.BYT+^$U,$2'0O-% MRX:H\**Q>Z3;948?FN.@&+A&=4,GI;1(,$(NF0!CJ)SZ-=!)-X""_OUYV4<: MX./" #[2T" [ 4_8TBJA%J&1YD]VMINZC_0J+W/X(4:A(SG@9@M^B6DO R"FL7ESK2_]V$'"7C913\/=WT?1I\H?-+A M*2<=*D+^SK8L\< N!*.]>+2FA85'GPO^Y-?I9T_GN.:^K/0-;VR.IS-F- MINEG*2:(E9W+S;2Z#?;EVS'M9H%(:6Z4US*5^T =.;4-;#R8Y_&J+,^S-7C6 M/ES5R'&@4#7OO\?Y\EP(;D+:R\HZ&.I:XI N@V-X=;!-^UM$>U'M^UR:DC MH=ZJ=,I6I<[JUHY/8BMZX@P1/)H@?Q1$TZ9VT;MVGH8LFQ#:5EL,NT9'MM$EMC>_<) MOZ^B<":9V(L7Y7(_VQR:W))-&3TMY[RBG%]^$=)6S"F_3JO@G@>6D^0ZS;-8 MR"RAKO"#RT>/:D[%N3BGL;S\CLOK.;ZLXZP<80^TIPD%/_>T9O-W(80LL#DQ\= M@?Q4:(XX@.Z21O SI$UE1;169/A_EYPS^J$$+][0'I));^CB M>B'"_3R_RHUYO6G-6F]:+R#?4MN99E5%JK*=^/R! M?*$OU94/XHFYS->\(G%6%]4Q%G)1OY2]QE,)LHI@L&&)&.,$(F/FKE3:> 4Z M=>EN?S*5S4I0VP5(H]WRBW9+KW;N[ _OXY)KKB!Z-I$--Q!IVN**KE$)S(WK MJEPQO870MGS\23N?6*F;4(0OQIRT<;P3@:M"^'H&^H[9;?%H M7'.*._;4S]D8XW5[D=0GBT4FE/N3XFS\?D==;ZQAR/A\HD\;7%X5G71;ZVR+M.)N.Q!N+A M-/&.++X/@X]W9/%]HW#:CBP4L%]G[L@B_L85XC)0,.#[=T%"!78>K(C (IY' MR_N^R@^#9%M76W[8+@2P]?BN _\Z$NK#_4XYW*^S^?HJ3F6BT(UDIJ:+F+1M MAZ=ZNTGR"Z5S&MH-%9;)/*?9/RG)KN+'ML!JQT"%\I/8IQZ>:/)(/[(T7ZJ< M/FV'086UX\M$_1Y+XEBA"E4P[8X.VX-X5I<7]ZP_/G1/K NV0V\\R*I<3B'_ M3^=7,0])(BEM U([T/!X/Z>1H(H5J;RRJKQ":+*2?YE ;1K#*_(:R1J>QG*)6T*C U=#:ATWZL,F]S1]3V*2/A_+Q M4*<7#V7K@!UIE%-7V\5(8Y+L*($CC2?J9@T?:5Q0)^UA9-$[G:RO(PN[L:0) MCRPPIJ/O8&21+W9,.U !Q6'JB;5WW![M*.4QI:D2BGI48EAGM&.5OC2^!RCT ML%B"/5?)JAW9L,E<[E*.2MF"V62CT48A<=B%CD[M %FNH 604XI4*FMM8 MYO?'13I#PIE KMYKW W@N\%U6\%]A[@;T7N$\EH,5I.U*'K]D!-%+W MKD5QPKWN)U8Y9TDIJANW'?*^NS!/VQ(,B)44DDYSA:EW+@1UJ;)TH],K8 M*2MCBD+RQ]:;Z2R)%]7E-;6UR.$=+!!VG8:9?,8%K7Y>I[M;X7Z/\^5Y(9;% MBF83SFDN-B-5S*B-H?H!LWWJ!5TS'N?\Y07IIMTL$'E#4ED?XZR($UGZAU^G M-W1&4I8^T#0M[=5JKC#M:X'GR,VRL1PM*\SC^QG/(;1E)Y756UF,4+NZ,A%>>W$$?Y MV>8L3L23%U)4*'C3+0J6AG4[%]&_Q3HJ7Z5\1^+4#..$?J*Y6'!B==TP+CZ7 M4HUX^8^Q.!+/-I^YK!FS-^1/JKN>8LHG,UYN):KYZ?%1X[%:";!)(3>&BYB+ MC8LD'S)6K$6/"^GU$>=:6M!HBU@LJ#Z,7"U)&,\<5U5]7A\96]B77\*EK'%S M)W:FR_F<*CEV&"*U2FFBC6F\V-VF:9]V,U[?-)@N>FW62P.F35) M=N** CNHCU,4'X3>)4_$:5IMTJ5N/)V7DKD*!:B/4Q1'V\,MB2-QUBM(5S=T M3>^+W7HGU DV+ZN<'8EQ:BCF8R!!*5A>XP8!]T."YC#/QH!>=QT8T^5JG; - MI5M]:J>9QP9LV#S$P!B?;0(E0XE]8#H_^KC%&VTSZ.#S\"C.'9:9O-R:/@.C MV&MMYV0=YR1IT [-!Q@:G]S*7]*H/>$,!Q@:WZ'T]?F2AG_PO2GCH(;#L1H, M-C#NVXRNA0BRTW NO\C2J'1W=FL%L&Z#.<:=4QF7UB26U;9R6P>"I0M!Q>J" MSO(&"YRNZ: T:R\QTS<>&]V#7I\F>+3.@ C?NE+[C# M^]0,@!1?N_<)& @#WAH#OQE.S0!(\;5[G]@\(3L3V0.;A'\6<48%P8+$?".O MX)(>9&D,7!\'EKW :3Z 6WQ''L_KE!>9M!+>TSROPN;@^U#[@0;#>Q.GE$_G ME4$? *NVO6OJYW$N+:!J.! U"H\&/4\'T:"R<7F6 MR-CD*Y9=L&*6SXMD9^Y40VKLXCA3XA!$<1Q"H7TQL$YCQS$H;]W1]?8@G\ZE M.EC& I?VK)?!<4ILI@,,A@]R+C:V'XSZTNXD9QA ^:NV;C-S:F]?4Y"M;^PS MH-QG0-FGLUBO*VF9)%(WNDK8TW4Z9]FJNK=*KU 9]G:*[',Z$_LYC>[H(TT+ M6A]Q#&OL<]*<7.AN(H^S#D(O1NS6PEQ9.Q$-XYQH'0_,S-0_NAQ,ZXPQQ&MN M3A<#\B@SVZI1Y:<.M\0[I;I:FAR+2\'87H..VTV.*M8I\P7E"NCO@._$Z98R M@"UR>K/+'1UK-QS"S#R[#R4+=Y-).K&II1QN7Q_"UX M'YVUOKF1UL;H/]D1'1_T"OEH:LUSM=#M%.ZFRB1-#]U2@.J19 M-/0E#"&[NBQ/0'*Q"-TITD[ MY/;*YJ!;^GVMA=IL4'2'@VWTT/1*X$2XNWK![KK05V4"@G=W$X/][;!MNBEP M:MQ=WV![:LQSX8!3XNY:A[YVS,;* ,"9<'?;@^V9@"7#0J6ILB8*X-.\; S+6U3&=')FYWV"G"&ZECV M"@@@Q>*X44>6CV5K,$0/C*L?RP[0 ;U)D@0ZPX/]Z5"D*J"3D^P@MU%?!=VQ M8&=J#"KYH;-%=)L!-R6:T5DI[+!-V[H?Z"P4,.&J]UJ?Z.P5#B[[Z%CP%Y]M MP\&<=2I%#9TQ;!%@K7+1T.DSIBB>R2^:LF+H5)=.0/5E;0]8$=P(Q/;+S/*- M0+J!JWD8^D:@9@K]C4"G?"-0]^L*&!?BU#;1ZP6-VC9.J;PD62H3C6;:M .SE%DG&.*_"RU54OV[AN@CM-AQ1ZNWGE=PK&.$@^)Y1(6_0(W'B M\HN862$*"04UVY22YB>62HE9''J"M,5.Q%(@=O#$ 690T+EEM#/!A^KWW=!Z MD$*\%4U;@IHK\JJ:NRYW>& D!<&U;8:CGY7<*J7\ MW>'Z,E)X;_:246_BGS3$*X!T&,EM>29:[GUZ3JIOY,MSG4!YKM]IO%@*967R M*#:)!?U42(/:=+Y582J'TI&74@&DY2@8D+XB3J>AMAH#)H MQ:)S^3;3S5J:@M%M,490=6H-NDW$"%F#E0C=?M(.G,HH@VY[,8(',Q6CBP,U M>X4&IBET\9Z&;].1QP9=A&>+:6IP[:"+VC2"V+%2EKN82R-4';TK^*(GVZ-' MOD'#9-P^3#SH!&++(%M,7XV!$)TL[7R68.9B=/( ,'8?%)6%;JDTDJV!. 8F M[X*O-LX+56RPZ+;.Z%+:5!]I$)='52!FU':HL,%S<$0.&Q/L XE](+$VD/B( MGRJ1L"P@I X0 /3 @J!#\)6E4;',Q-[Y<"MKUHHCJY>9Z?(4]V%)-4!*AF;<=8?5IB4UQ=M8& M]F%A/OC(!V7XH P?E.&#,KH;K['%6M@^)]&9;2P"!$Z;+1$,W0+I9RI[%?_1 MK4KG<]C;G#F,B7 ]9T/;,5.6T^#G@,NB1S-YJT=II=M=ZZ'\G%9^.B%7Y"1. M]MM]LSW3[O,)Z(EGT\IK% ME^37M7&6U;MU:(VK<]R3)93JOTQ)QM#FVV9>_*R3[,>!K) M8LJ?R(K6KEL7C_)S!G^4M7W36^F\E6XX(/J=O_$&.IO[SNB,EX!3$YVUI-?7 MR(S.9E2FW4'702=#L:7Y\<9\;\P_/6-^&WUL('/0WP*Z#;H+1*^ 2X);6GH@ M0[DVXL!I\O89;Y_1V3'$XR,9CAH_TGL:%EE9]/SRB_0DT*A*/5JMBYQ45]R^ MBGI=R?O,5/8/FV/[XI,G7'RR=$1L*RZSU8JE52C_6X'-SB"D =1QL>N2\J98:S?5$I;P'TJKU7[;]*U;[__%-LH7Q6 MSD5TP3^=WK;5/%IL19AZT$:!,X$M5=^V4C32Q.KN-1C?K-&=X$= MS@SJTA;[_EV0R.A)'O"CFZ."&4GDS90!7U*:!_'A JD@JRY@#'*VZ]C.,&W_ MP:[-V'TA\$;O4S9ZOUX8Y5VHQU?!U 6^PQFZM\&%8K(J2M2_H.J-A M7+*[^#VAVTP((7]D>?Q7^?EM)NN?Y1OI]Y:W0LL+%M<:$Y#MX9W.S?&;NHG) M+$X$ZRB :ML.3W65XZ)Z2Y NPV.0*1'F,%[W&N;B#A 7-;3&0+F>DV"=,.!H MY"9POP'1W$EE>CK_S&EYD("0*/JXSIZOW^?/-@V1[08]<2 J*TJ;@GG6"0<. M]45AD"XX,$@.T0:8&_0\'40^ GYX3Z[W?UF+@#RH_ Y;M1^K'[L>X-U+'-EP+&JD7&VXD'*ES MVLA\.%+/,\!,/5(/M(&1:Z2>:!/;*A"BNQLZ.D'LN @=7L71":8*W$ Q!4_; M4"U2A6I5'P>Y&(H')(V$M,Y#&9D4""P6(@FZ/6ZX^ $;=/NH@5..&K#J#GT1 M0'FQY:X[P5RW0HV&>4?A@V#!>4QNMZ;X]0,,J 3K_4;;3L,'JSP MM]IV&._,\,X,I65MY 9];_7T5D]DFDV7PW>D5M!N)]-(K9U=A,F1VC^[25ON MM?EG5XD]BVOGP=::(BNXQ"SJ?+.:X>@.=?7N9'K5_)15BT MOO$@=-_1D,:/DII/-(=1K^OB&H,0%Z*C2^H; >C;#T']SC40 ZE7MQ^"^GN2 M"#K8:A5SJ1:"$.C[#)4:!;G80HVKS2AND491*761Y);$8@F<"\$J)XD*D;ZU M6\K+0#X5H<^^'("N!HZO:S,WGA"^% MQ"A_R&"F1[$SBP-^DI^3+-L(L>HWDA0JH[%17[>HY-E2UE/ADD"62I6>IJ$X M,E58FGLX1\#2LARW]A4HFCFF-2T9^//JSDLH'PA(B1+%Y3*/&+;?U.(.@W8OZVUU7F>#6W&%8^H^D?@,0];W< MEHU=K1.VH?2NJJT!UG; _9RB^.R]P^BFEAV4;-('5-G-)X M]!K%.5L>7$N61#3C4H10YLQ#NPV%1<_*2'CW-1D-DFISAZ'H;SREM&V'IQH^ M\4CT!&E>Y=/YN3AXHI$D5:!#2MG5/M'5^+PS@*GO3^ERU".,9<:X"W)% $,S0W'0N^@95J. MR6FXRU?5<#!Z'S(A GA.&8I/]L, M3*-=3=UG">3S.(S5$* =?;S_"5Q# [;](+'VO":C08EO[N"4_H=,R/-%MBG) MJOQ&.L]24W.GM'].A5"-0@@C9W\+DM3@IUM3AB&5R@&UTV3U?) UV5 M+LT;4L =34$NVZSKRW#YA#2?D-9+C:KFL#5T&Z>>YB-P+:*LT+U&,%B &HLN M@Q ,#AX^CRYA$(Q1'6" +B,0C,G8GHVN-AH8*E1O0E<9#;Z=FH80W:?)29=G_(PF/8K^;D^\&$XH6&E2$]\&,CZJ$>D!SZ0 M/YOC")">\C!\5J"Y/MY-H"%?7K#S#AJ B>[$ Q!>HQCILJ+1G79F$ VCV=&= M><8O%)KGBVYEFB&]:0QV17<,P@#V4) !W8%I,!.P B#HSDTS9NZA^+0[M;C5 M#F5I'W971=P,I7DR(A"PNYKBK5YK4X$/J#"!56"RQ+;NSAQC<7=T-AX8[<=@ M 0DGF(5>/*65B]='C*ZSJT M,\R2L($%$)".@UD0!KY-:R 'D8-A(+MGNV 6C6%S "YR@VZ'@H8VP2*NT0F/ M ,)?O$9UT1]T,J,9.%#A.70BHAE&6&P].C'0#*1I.@\Z,="0;[N4@$2XWYI@ M;\K002<,FL$S*SYS .OT2KW\5H\Y'[#I2Q=*@.E :,V[;M%3PNDEBDWE1EIDM\RLBNJY(0 MM-LPK).OC= KD$8!B1G))IB@M=GH6*>]Q"UZ"_GS,/$8C8L"QH@,).DY=DWH M*P-T7H4G4L^AM6R"AD7;[1ZLW:F(BH==;+<8V-S&_M3:BH4&:FL^[VP-0^=O M[6$*FHQJ;N? %^KQA7I.KU!/9\L9NHU(C]NRZV<@U_+[=T$B UMYP(OUNEH5 M) E"PI?!/&%/09S.F1AMZUPM8R""G.TZM?,TVWVH:\=S']1[/_0I^Z$[VP.O MXE1>?%^&H.^"6F_)1G+>])!]H+ +FG4>#-=M%J=AO):Q@25M*CL[J,^ -W$T MD*]O[-9K]KPRRW16!?5=IY=?PB5)%_2*98KT!Y7WK/N(WHOFWHOF[?Y>:_-: MVU>IM1F?Q7:1P"H 'T=HJL).I<+&T% M[:^^'U 1UY"I;NA6G5N*UUGFVC?0JV[HU>43"#J]+V9)M7?)5$(5G;6-O%KO MU7JOUGNU7J/T@F6($U+P:Z6_D]#J7Q_^(]7HFV0:("QT=4HTQS00DLM<>5#I MOJ87U-:2\DI6*NFF-%J]O90V AZ+N;Q,BU6Y .2P/']A+#&0O>3@_"!\R<=8 M,)9TPM#:'M)*=VLL0_E2F0-6*.^43VNK#/%Q@JW=TL:=A.LY27@O2Q=1I6?K MG%I5^6_@SOI&KI-C&^]S>9TK"[P"!B?;*6:]TR4WKG8]=2$U]<;75*O6E=U- M6U#V)?F ZK,XN:O70KLZ267[N?QO)H0=\\7H]OMW]HO3JT%YW2R>I[<_7<>%@%5$J>EA$F0])Y;_^ MD #)8E41))C$@YJ-L*>[)1"92.0+B43FO__/UTU,GFF:12SYC^\^_/#^.T*3 M)0NCY.D_OOOZ<#9_N+BY^8YD>9"$0R[__F?__O_]N__Q]G91YK0 M-,AI2!8[\K@NDI"FEVQ#R?\ZO_]$SLB'G_[TX5_GG\G7QPORT_N??G_V_@]G M'WX^._O/?X^CY-<_P7\6048)1R+)Q#__X[MUGF__]../+R\O/[PNTO@'EC[] M^-/[]S__6(W^KAP.OPWS^H/FX'_]4?ZR'GHR]"217_*Q \_L660"S+V+H$H1\"_SJIA9_"C MLP\_G?W\X8?7+/R.4YT02;J4Q?2>K@C\^?7^1@GSEQ]AQ(\)?8)M^A0L:,QQ M%E.L4[IJ_RY.TX// (]? (\/?P \_L^VV?+=EO-&%FVV,?WNQ]&8WM$T8N%5 M8ACE]FFMX/Z0!VEN _O3B0WC_\CR(#:+^>F4IG'F*HP:QOED2L,X?Z&&^>-X M0G/X(A#-3Y'4Q"Z&49_XW\J!,&&'4A7P2A7>F)B^YI3;HU)KUG.SY<$BMMMH M?0:FZ?WO?WXOT(2?_.V2+8L-3?)YPI5%'N6[FV3%THW0[Q48@::<06N\1"L& M*\'2E2&E4.&LP^3$SU6 M^<)R^LBNHX3[ U$0<^V<4P!\2?,@BK-'SH=%$+RC!\$V(P$6Y)&1 M&@]2(T)*3$B)BGNF&K@); 1E1S):5L$X:_PM>DJB5;0,^-^#Y9(5G-63I[,M MBZ-E1+/Z+VWL9V(^#%..@6N;51_V>)!YC0>Y*\&[9T\CF\2,4]X"*R=@$P7[>W[>OIHSS; <\)N_Z1L^M5B0&YHREY PFQ*@Z&]++H]I4 MML6>']Z?Q91+",I;4'ULE!&/@3CAO@_O.?M]$F GQ')*>O?R63<1=9D+5I95 M=URK(%N(M179V5,0;'\$KON1QGE6_43PH>#!\@=_^Q0%BRCFKC+-OG B%&D* MH;%%EJ?!,C]BO4'?#.0XK;EM,UH#^(SLP9-O%0+_GU/6&T9OAB*B-2WV@9_" M.,!H";<2RR!;H]19WRQF]9H*FAL%]T&!'WI4A].\G M)!5C]QL9U!JXB:XE"LC)[8\\VK'56;[FZ+$L/XN2,_JZI!Q/_E-NHF+A9YL4 MM'&@G<@?#D7O8ME$&\)O'&URP=$F44*N!-KPT_,2[3.W=_QE M2_>>N;]V4?VR#X5+V5+A,1N+(K4"0S$L$WZ*8]6[X6.'2VT7W(M6( M'$H\+8F5-AQ'HM6+SQ3$JQ&VEI+V1D5,?_-'B-G '76:!H&1)9V)["="N)2& M]DR(2?*ZUN;@DB+\AJ,:=YP7\H*S_[;Z:.#X*^IR0MM,IX;^I'J2CW>(^'[3OV8*]HOTEM)93\'*"NVVUC\)HBY[8WA;3&7/THA2+Q_ MMY32. "#DK/J0XPF-P_64M[16/1<9RR!]]1 F9Q+E+G=X"@WW\YQ3TJ@3')6 M?3I%JV*!408D3)G=??LR+/X0%SMCQ;)C)DN2U@+1@_"(OXC;QJG+0]<.#6#Q M7K([MCPB66<5LQ=W5@<)TH7%&8B:;VL#F63DFJ/[V[$T6.; 6IE1.VY?5E]H M]+3FF 3/- V>:*D^8B8P&(5B-(_S$96GH[@X0'M26.7P:D!6;39#N #GQ M;_$?^H\B>@YB_IV4\../4+)D![;M9PAC$&XH0)OD$;XR4S^_&J/N+!X MQ]]-4DPM,0[FT80Y;C!0X2AK*W;3*I3]H[&5C-IG=<'XF:)\D8S-589ZF?"L$ M@N>[_9"[8 <_FK\$:0C&"6K"<>Q%F;CL-E_3]'$=)#)[*)L_/:6BJN)-PA5L MDD7+/P=Q06^+/(-:N%'RI+B(G )*R"M/GZB[NESUN4;,->[;VI-<43.U8V,: M\&8DJ' B4844>0:LO-P>3T*4V33P\:7@EVL:%C&]78F5G1\O7N2A58LH$ZP> MX;5QWZ,EUH!*P70Q3Y/P(Q4G(3:3#;K$RTG>W3 +\)!(GO)U(&]Y;9 MVS"W3M()NJ=JXWRPVOC(I\BSFT06)J]BWG,9NQ6_O.0ZY3J(4J%.NCRF*>$W MQGV:PCIL*P8!D88S4D7K277+L4VC)27OHH2$+(Z#-"-;FA*12.@VS#.Y/5': M\RD@-PWC?N+9[".&0K?.D_#H)U^3*!]E]JV -.,0&$7-NZMP\G3@*"(L?P@K MF+P[88=GU(Z&14;X#;@@7UCRS%=/)^A]#$=M[3M M[#BD&]4QZ";^]HC;WHS* VG?G >.T*].G&\LSSBSQ@)A6'5*UWSAT3.516(^ ML2R[9BG'.I'O8):[1XYS!B\7.6F24/PKEH0*_UYD.:S_"\UO5X_!J\*^V@6& MM)AVD+)M TO,RM=5RQW)]]B0H$;'BYA;WF;F=N_4MI=->+63-1Q I0(X"1. MTS(1)X#YY,]GAZB^?:/H(?KF=9):"RM M$4JNO&<0IQEQ@G&<*^I-SCS<$;RU!*YR$7\6!RUH\OFZI4O1:1A^U#@C'QW" M[NDFB*#&Q05+1.9:$<1@9CZ83N>RAJ#KY"[C"[&MI[L#)&F%%EGN\2+PPHB\ M^RL-4H\J9A*[8S3QR#+O3-_1TR; EV*SH*EI1P\)WK6C-Q#-R3MZ ]?CU-&S M3FLS=P:R/F&F[_N]33*-B_X/)M+4'&2L?C+A((_:X3=C>:Y>:;J,,EH[^J) MUV&:KR6K,P2T)XNC@Z)M:U/A$$XR_=W5_AN4Z.&;ZK"<84*SV]5%2L,H[RMH MJ!Z*+FEX.J5M[KZGSRQ^AN,6'T_)&?G"TGQ-YAN^,\L 5]C0Q"HP,7=8 +QQ M%I ]A]>[N(,-(=:;L60-B^S$?/7"\V2SE'@YC:O\MDQ5_UX;M$^:&_C&8K#2 M2RYS5H\K [@ Y34N>HC2Y!^S=N#N])&J41HB3'HS;_V@V'T#=VA1V9K?#@NH M'L%E,R(7,2-R&> HR(5,XW1N2^B,1XF[N.#-J,0Z!=")5NR!YDDQ*K!Z*[I1 M@;X/]6B,DIXU9+V.WZ"2[)-!@WI2BQVIFN9S%:=U"5U1]%HE[?"^CC2C26[7?(%R^"DAJW<84?E[= M5/MIHC!HF]@8VK^96,0U2U'2R%+R4KBV?KVG98X_8:>X!CE+(,1%(/L,GV5P\V]7/9I1I_M M]!$$:-<*9 "*DT\;&; 6I[D05FEL(EW$6Y:( \J,R1"9QJG*E>8Q86#0&^JA M:$K5MUV_YHGRB]$E2TYFMEYQI 0-1ZFZ@?WD"H:H"=Y:[Z.'BM/Q5;*A*1@V MSD-6D+#EOQA%UF%*TF_IF&.'88:8'8M!9J@;J><[,:*Q*JLK$FR%N1J_+]&MX^JK-Y96^K_0V\7+J.EB*K*7Y:Z1*XE4/Q*:NG4QH6V5+B*0"2;X!4#^^ M4 )VXWZ4(B8 )X 1G"+6>$T(P*KF33#%6+\& .OF+T((X8W MF0'R>U+REPR*#VFI^<.A1A2]G-*YJI=@IZ#LCVBJ5/=MA'*G\%D<+7?UX5G1 MZ59S-%:1M\_J3&FW@T'T\P@:2R_45"FCVC/O^ MFRC+N-^N=8W2_L?$:LK"X82^;FD2 MR@B#'P4_G.78>+HZ$\F;9)D*11?$H"58(E\ESO,\C19%+KJ0L=,04",W2B&J MYB9&BO!X!*PGPXKN>57\$>Q.NF^MEXE?OD3Y^BAW+X/XY1-4@28A%'(I?\@! MLQ>2KVF=\K<)TE]I7OW>=WC3(#\P>YOL4NZJ'(B[( J_4)7)4P_$R\71A-:] MJR!;@Q_5S%B)>BZ ['&ABII,GT0."\\=)USU'%G[/T 7H5--;#TK8 ^Y+MY& MOE70/=WY]Y.9#:>=,[8Z2D\^+$C0>#%S&<4%'[9/.[C)Z2;K84&SDR/9U0P2 MMEG[+\=9^DMAPTH[3=@>3R]<;G@GF=WM<28]CRD-."X[X;[U)7=U#T9R=_ND M]K,&)=2RZ[/WQ*L>TK)A]')YZ1@6R_PS[7CZW3H&?W&XG\LVCY3 R#<)S@]C MM%./:9'$7?PURVA^L^&>< KGD NN^IYHUJ=.-+_"QF"[9[?^>@+ DSU\4B+@ M7]7HDITA:>F6ZU0AF\-?CN$A9^7B)#1,Q!.+)^:NRCV2D'0P#$F1IT "#51M MREAKD*>-"NXRG8OM-JY"3$&VOH[9RTVR8NE&ILIU'X8&?HW-.M:#8CV>V4"# M+"'HLX*89+3'Q$]BY< ]8",)Z_P9Y@--GZ,E;<_EK,L.BK3-3(AY\_<7+,N_ ML/RO-+^G2_:41/^DJN1[Z_!&/OLTCI4(4W1V3'G<\]MC,RWT"&B=?'NO8DK>61K^4-=Z86;[<4DM"3)]%U&OI# M)9FJ6DGG6*0Z:IW3E2II!8Y1 X96@1#A&K+LC3XC6JNP)(G=#,(&T>OM.P;R M3</V^0QC)\-CSV M)-0NO!4-CG$8=%C$8$9D(H(RMM V"!U":$[F[)7Q 534VU0LWF.2$SG0,P&U MS&KQ%-9HW7ZF1QMGK'Q)5S1-&T5?9#1/G?#4_P&2Q=43#V?W9YHNV%#+4"$ M25!:D5;[Z\")K1H#+Y*@P3%L./G<24B=W7"[:AJILN@6V*KL)(6Q]Z;0T*Q8 M61L'W7JDNMM'\W_A:&KWF*4M\5 W6"5?G?;E?'KIU8H7[594OP1M=L M-HR79U&KHSNA2( OGWTT [#3*P]MBS-:BTM;W6ZO[::$W57[@3J?&&PO54WM MRH?JP@'C%9I=$R+N42%0>K9_$F$-9:NL@Z9:BZK5UN0;:)TP8$_CK/8=F$Z9 M-F5E:_&?1X[G/ GAK=J78$,[*RS8!.6\NKL:)>LY< "9 &B_Q1VL;J>1VNNZ M>^1,V.[KQWN0*L*Q@C_@?>=S$'<\E-3]#"D$?=.[LG=]>&!LGOFU(>S>'@F1 M\^1%6K5YB&&)YRY#M19K==&VUC'8?-7F7"ZUN[\J;>WD8UHT<<8'W&F2$;I/ M+%/Q0>L8)!\Q(TWEB3G-5OU^"-C8?E M(%*>3:[)DJBVR]39&W$7R\]W\V4>/8MGL IY MQD]DH*BB'D '#Z@:10:C"B>2TB7C.F8GD@&V91$1>;C6J_OBH,C@P"U3U!K$ M[(,''U^\)>Q\Q-(?.8\(ITX%FO!D&S[$^D8;F/37;"DK,&7GR81&RT M2V)G]8@#)RR^[/_S[I-P6^9'-#A$CMQHD<"%!S.(8U5>SO"-<)]X"PI'EDCO M-!&]X\>FLQ[/Z_VV3R+CUX+T4[TMW[";E,Y8K&HV>\U2&CV5!1V7NT=.XRP6 MP=./091T')J'3X!D0GU MKFRPF0&WC/@ G=/:V!*4OY!5RO:5P37$C)6! 3<=DX(P(K< /X2;%$C>0<-_++>P+8$4"/&0"=YF5X1(E[AKWCK7 MT,D923R]^]-B'X:AH/-H;D^LUE DUE6<%>!RWXL3RD =I/HRA?:)[E0RT MBWK(6HY1=T6@?=VLMWK?HB](D%%(*#DOLBCA!QONT"_X@1=LI^IV?@1;4+8NF\?Q/7*@!*#.O+]>Z"0K&T(K;TS3>:'2/=@0X[BY+FEG'9^7)3W$ M[6 ?OWVK4[:*\HZDGM,!>+M53N3\10DR*()&U\2+$5^F]'BS63])IG!OQ_\5 M%]#8Z0[BF"RQST,-NZ*4!A%&U>WPC/E$&J@]8+4HT*P)0MZMZ'C MM\GE,PQXYIWMQ@=.8$SH M58#\";@*(S/";&"]AXDVCXA>&X!#6;%-!(OC?:_JBD77E<[N- MUD+HWO_^Y_="\. G?_M8Q"MXMEX^N$E9L6U]PZ(W>*! =4]J_1V\<9ST5&R MK:S8MCBNV 87./F.(YBG8F^J\S^+'LV).%-EA7@?0;9>DK.A=/3&7'VM$'K'&V(O M9ZT(:O[BD(D [;_11S^1.QAJ9%7_J?CWDW#?WY1W;EM2_*QJ^BZ[HS=P)V,N!&= M+Y=I(7K7[ 5#!B&"'23!R+O2B=RM:+!BY^V*+JU="JR\BRV[BIW3A*ZBCLO. MKM%X,6R;U7X^3G45SPV= .R+R3IIR@82:N1A9A[^O:IJ9J-;FQQQ!3.)AO0N&[.MGHW+O!&B!\V5+FG _ MM@HVEZ\+WX6EMOU>Q)KKU7![$H7PHZ5<$'DWO[NY^)[[IUD1"_]4O$M,C];9 M16@/KJP5\6'6^<"C \K]"^"4*@-)V^M4?&?,U3R:WY]_>82(&:=R].IPGJ2 M.;&\.A4C=3J*G?0;:>*;+[7XP?$30+Q=Q-&3$&@09U$4M]5\#_T68YIU83AJ M.B0>Y0$^9"7*_U'":F0&FUI[:T,$+'61F= J$6KA\%&E.%H*A,@>HQF9Y&+' M>D9QS;EAM?)8K)PU5EZ9#JE.AZ<&X&*Q^USS=(5C?*";_)M M>D_S*OV"_UQD34\LO\L8NM.Z2AJ]+.O%=26"7'!E*@Y',!2)0?)UP>33O#P0 M&*=1_]*;ZU4G8>$OM)T&660 MT@?-S JXIN''4MF# 3 (RE-LA0I;2H6W%*@$(KM*%)SAAU?Z+(KJM;',;^IJ MQIQ6LG^)8U@2QAHV8,M[NN72L.9+N4L99^W-O,C7+(W^2H1_K=L@;<'3TK49F2/7//7I?\Z82*,\LL+, BE MGI8&(-VO7>3V!C6Z/A3R&*%EQK;!6<"P?NI4WJFHKJ65XY !P9/Y7 4 3P!C M GX&L$>4D7B$3PBK8%?7=GXNA]4,P;3IY(S+X6"\]S\@&*)@<_5 ))^?3NB* MT4\A8SC=!/X(HRE"57NX,R("6._^2H/43\F4#L9@^M0RX9G*1*=+D6$FDYV$ MUYT=M:\5GG=]1*[>\F\#ECJ[,"3OO36BH^L3ZHK]W"QMI%-+9>O[Q]2YOK%Z5$&E'D":3+#Q5' M-F93+&F=\KPU1-L]4N5SHYKB[69%B;3&9=IE7'L=HHHQT3>UNC M*TU]2J*5[.[:"M&$(Q-#Q[!P$R41O#O.HV>%&AGX%;8)4??LU@L52?"RC=P! M G[C;KI$9TA*6C)(U5./W84ZN6[HMR9-U#$,K[;J&!ECRGW\*@U;KQJA&9G> M6FTXPV4F%MG*VLPWU)@[N73*KK:/&9M&.;Y,1 M9&ONPL$?D%#U',20(C7/+X(TA0IF;9FOJ&^Q+2UT8-A68@!=N.RBV!K=XX%J M-6%G10A5A5R6K?81@[B)C2*H,_&:QX+CJ;Q).#].<^P^"0_[&"E@>D N]!Z0*MM^1N%SA,A0S#QD]7^6'LQL:1&"6"&5W^\,2>?PQI)*6/_V4O M=/P??YMSYR4$!^8Z#IZ.Y$KY^X&B?4X=]M)K:^5$:5[PD\B<'U0N6'CLBZA^ MC5"9S6FL>^QPC 1@!* YUYBM%&-]9/"4N/HYR(N4(P5O7Q3JLO\#(XFLS8G] M)+0V,1B?V#IN/2827"L,2/^"G*2XMK*.,M5533]GHO((\9LBW8F3294.)O*] M%*+2_P%25-03NQ(5-08843&RGC$YHQ4"]8,AF?2HG2MJ26 T&(@-IZ+#YI8O M99D5R*),6<+_NI0/+^]8'"UW\K]]9;^QTZ ;6PX#9UOD.#YDCQ YQ&A&)#;D M6_FG[_+AZ,UBIG; &7M+$;LM\BP/$JCBJ^!?Y3@D@Y[,YTKIGP#&Z'H#V,O[ MGX<\2/-A:OX\B*&^$/H1@/$U7"4##=7P%5B2=Q3Y]9_ R]&KDG%>6?HH1F\)[Z M?'?UM-OF#\4BB\(H2".:J7LLHB?!Y'P,!F:;ZVJ$B,2(")1$!0)HDB6P(DVT M\/T:':Q]=!_'*!'-O\1M5N,Y5EI3:2FI% LJ%0=4RAH+\) !@>=C9F:#;(4] M9>;%=90M@Q@> 7/+W!($TQF*"8W":+RE-;M>$[:VPDC8UAF12!'=-3LQMUK7X;I<)@H]SA<\DM\ZC(EXN&@;+M0O>\--);OK$'8(.;M M[!HV?"? ?<, !,)>48X M;'S4W-PZ<+'QFT:BPF)'%D4&0>(,'E4M1+L;J."0DHR*ZP&V(E$21L]16 1Q MO"/1AG_*?\4/8&U?^@B;]S(;&T1Y2\D(E^5FR2MN67[VFO_LV%W3&HM(1U#. M:5M^*L!50H($301LY_D(_91E@\CER1/H"$"I!QJQYBY"4D?VVF.,IX.82K-L M*.HS5*- THR>/CD9.5J;U#.ZUB4BN6D*FN24IJUZ1$$HAZ\;6"H:3/1I$?5 M]/N&XPEM\XJ *!NY-M0(>??!5VZ]DJ),GTSN[SD>X;ZE[S57S^BQ=R"'L]IF M' %V1@ P^29 >W^ U4??MIN'+J)9MDAWU3L81;9MY[@1UNA@/F>VJ'1HO>78 M=E.3:9/(F6X1I>UO5U_+TO:WBSS@!\GP)KEZ7:ZA+>@U2Q7U]!3ZQ\",2!TU M K+KL%==@#'R% (SL4O, NFG$78:6R$=KCPW> MT%NA&]7MI:\E4WZ5Y%Q.KJ.8RF93+59<-01AP(^GLLU"$AX!@$1"=&ZUE=1C M.B2QNNM7&YH^<9;[F+*7? W%JX+DV/)JCD;S0NNLCMBB@DTD<%)"]\0BW?1E M XGF*0/I.EB678NUDHU.AQO)*]I/ZR>%: ]_?+;0F+682 P"^$1G,4X2@%H8 M1IGKHZ*82RK^49ZQ2?.?S:.28#1-:UQN'YU'R M#8#ZN9SMH*;R#'I*(JO:HBROE,R78$,O&5Q1:*F:T^%&%,Y^6L=J9T8 -/DF@4]!_;106*F$ M5&0;^5!@'H81N$1!_'![?3\/_UYD>5E(B(:W"=QAW:ZJ!W-2)P@]I3]8O-,B\%_5#!(17&OV38TC27%Z50=5$0)]@3 M9U$1!WI.BI3 LO]D5!'+6_O)\0S.S.Z7,TO2K"76:4/4 Y'6XW1"VX)[4!#. MK[WHH";3)Y$S+BF+QFM5G^DRBDN9JJKF%@CPMFI$"'O M*E2^YT=,TN(#36"9HTO&U,M*-9?EK#A,AQ1UEH+IHZI5@,XG2!W2-;4KW=&% Z[KL1"+UD*+XR[V]_0?191%W-6DZ7.TI#)"QC4!>TK$ M+'\.XD)ER%V!Q08Q+*-G_:P'':'.9!1WV<"NJE;F)V#@:L^9KXV<@ M=E6'; M6V3]^H8:N6Y RZW^.6_68)K]?DT44QUPM!)-W1KO84,LK[:6R MNSHB4)8>M!!<*'&%#-420=FD=,WU3?1,RY\N,NX<+)5%1G"S8"N0#(-FWZ25 MZ,!5Y $>1")"OE6H^(G 8'>'&2*YU82HQ^#U)N2(1:MH*[VO8/BJSP:2SFU4GSC[Q31+2U_^;JK-P%>/P>72'\[E*H)-0 MB0!+.%Q?F7,*:C)M$EEEBGOZ%($ZD^E52IYH'X9FBG,8Z-:_E;04Z-:G.D*2TI%,^\1-R+%F]Y0JZ8P1"LQS-9+_H M'@='*A7C_MZYBWA,@R)6K<@\##GILO*/3U%R<@FD-19M7UKF=&1L2I"SZB^B MGRFY37PY&UW498-(-HIAZ#(L3=(RW#,,_\??OG"E5,3TP_O%OWZ8I^ECNDGR M\#H.GHX81FOL0(;IG-,VPW0"'Q+M-+P*Q,T@AWX&X G /_M . 90SDZ6W*#I M!FKMTY!\ X3<:DD]KF&#B.A"M,@ RM' "V M7WW90M4V;:DBE25=J:THC6M)?RK2C'[TJ!RGJQCUM*)UE:C'[_.0;3FM-!B^ M9>1(CF_,Z)KE&Z#'\/RH%1AD^A*/*7!\&YNTL+R23NO8')'#"H1, []!7_:J(W*: .RGG+R7^? =E/CO>8FE\82HA?C^S]3N5 MTZL4 .WSK98.G;NRQE7$'R1U?!Y20Q\9)G5]*NJ*DWH^&6FP M37N4U.SY"/6"HGJ5?\W22U8L\E41:S]H'/8Q]C6#%A!G-1JTL$$5;;"T3E-5 M'"96OV$8Z[%Q=/;G]H"M["R7H_&%*;=G/[,WM\=G*1T=2G'AV6:29#!W)+9&FCX>JN@0W:&HZ4[Y1[$E/O! MSS0IH-)99SISYUBL"F^;TS9?E?#(.4V6ZTV0>DY8[J8K&T0LCZ4;.WFG;[BQ M HZ.:O6>'IG]\E O?3MK'([A)$69PWN:T)<@OEUQ?F7Q,]=P,H;P"?HV?>5V M]GSW$!1A-$^#110D#\4BB\(H2'?J\H>&IL2411P)VKY"$^C!R:=&L([9 (H$ M<"2+'1%8DA)-LL<37TG1.6E&5UA,:Q(M)8EB0:*BE419C:^':HNF.)[9V"N/ M!41N$FX#N?1& PJ&M'QCK$!(8VY_!4$:2)@I ();U>C*<]KK<%;DHXUU.HMZ M*"EGZ?!8AKL>=IL%BX\D0OE[Q)'P8![;G%[%\"0TYX>\=IJQ7D+XS)FH#S3# M$B=:/S.7/7$PO8>[A,8Q;U)Y%.UD[TZFZ*"E1\:KD!IV=:7XS!CC'4[OE_$F M=9.E(GPGZW51TQGKW:9/01+]4V#%48 2E7 R"Y.M8- M0 ESR+.Z8L35(N C:N3)0$R%TFS?Z$ST*@CJAF>]Z[:D 3!,R0S0W5:Q$2XJ M\=V:)519&T\U!%-NY&@JZ_5& !X1 'W5O%-2C^F0Q*NVOJ<;V6SOG*4I>X$@ M8;#EO\N/B^"-F\2@SE8#\ZFVU5B9TMPFUVU2>==XD1HQHK=VA]I;@T-[%+@N M^=UF:MUD6=&6Q2)^>;L%%S*[>J7I,LJHR@7#3S0FDVL00*>978,P0V=ZV5K_ MF*>4-;P981*#::1YX9CS..UK!,6="?5'KF,@[_XVX8>\+0B<9QG-53%> MK6^0HMHYMRNI[$0"(X"F5C5&U@ '\HX?X[/O"; \"04J\EY_%;U"(7R-!5H2 M.SV>8BB2NGOJ#]DN?=&_]D'89_T'DSE[S'\ %?6$?R3>J"=_.NA[7/P&FV*S9@C6]\4!@]L*E ^CVLJG$P=ULRMV>11K<1JR@>U M7K[L.:;I$=ZK]%X4:4J3?(ST]DUA4'I5H'Q*KPHG4])K;LTFI;?$:LK2V\N7 M/=*K1WBOTOLU@=31"C%XY!&)+F[7E.Y[)@X0Y4'S&91K+;@^A5P+05,2;XD: M)L5?HEC+_(SLL20<3=\=1\?S=H]N0&R1,T5Q3V.( -P%:;Y[3(,D"Y8BG'2^ M:_ZF(T]O^ 1(5: /R/XS!@%/Y(A\84E:_A/@1_QDZ#%[#[$9;#R%O3!K9PZ? M>J !YG.3I]?'9#XS]3K(JV GK]EXW3%T^._Y<:=:U(53YTQ6;IQ:(=KFS/)E M%*8>FA%$\>O)*7*%^O62S2XZ=]'=.]==KW,1K[X8SK1:G$ MC,-OJ2BD8&^=3Y!\W#6U;8:M81/^OR)9LCBFW++!8]BJ8Z\7EM0B-\/0T)UJ M;>7X1CF;\]U^R%VP@Q_-7X(T+&\M/T(_O.PFD5+T,669LDJ+/4A8U6P>(V?9 M N911Z433(&"F$HS@-29P(HT,3^HXP1/=!OC2O2)P']&RA7,B%P#X=:Q*E,C MUN'?7EJ4-^:0!=RI0AKSZ9ZN7F$5JCA:^R"L CJ8S+K;)Z$1*L'Y,9D*^C$] MHC@,OP8+"/WPD]H\"87/"'XPUS17_RBZ+DST/D,'4[NG=Q-N M<+$I1+SADJZB990K(T.Z'Z(C17T [$>.) :$EBAXBA%I$YKAJ>>NCI1(!_O" MURTO^A3LI1J&K1MU-)VS>M)'<%&5HT?CCM? +'DZXW[]QFQ\V"+ZDV!)J#2FL5 M.H0!/F391(C$WDJ2(W>%&2+UR/IL=WPQ49:Q= =IE^JB:UWC,)74VN9S$*O^= S&JE-%;/:YG@ M.ZD*"GW490-)YK'XW.V60ED4D8H6<:]HOLCR-%BJ/-?A$Q@K2Z<"9+T4SAJ" MC"+VRBH42H]1'-P;!_F)5'CKW9+.$?B63L]:J.7YTNP;W, 0!W565JN3W$\AS%9G;]08EM+_#UGWJF]]Z M(:=:>\> 0:VX=_M(@)]Z3-J$9VAJNKO?6JYI6,04JO)R,8B6.>2T9NMY(OZ M*%/N!<\:?K+X)2KKP]B:$%[)WE((X#-2@_>[ M$FRDFRDLGZ\C2Y\4]-LY;T&8%>76-93AS,?@5=QW\C_E4PY55IKN9^BP3/?T M]N,S$K[(YGVWH E=1?GW50J(IPB-)L49EHR^#6R);%X[U *'2)Y]2S'KXMK#1M';&LS)Z M1(=H2)U/D)S9-;5M9BQA3TTW:E&;84@X"1ZK8Y:->M9W99&HJ]<<[L#YX?Q3 ME&&X/MA\7K*Z3)MSW: MY"HI-E2V4?!CQ0S+B:;&P6ZJ7]W4&_'7_,JD-G$7[5<90K^Q?EV2]S&F]SA_ M#U9V#.*8^>UP\1LQBQB$C5E&-]0R:ASW*/\6[.,HL='71).WDH?AEOOH: M@PZISU5@M<"J]?SM*^.@F^_[?-PI6MNO21AEHJH/#:]>EWSH? /_PIC>OKEL MV&$5S$D8915RQBVT 2J,:=(!N/V)! (D2>E6=N8$4QV5_?S>@OGN95]=6ZZW M&UX,^UT:\0/UEI^H2W]#P\ KOS%@Z$_F=A//!39P>[&O$IF<[._D5<096[,'(]_W_Q;@_\F<.HD@[7O>K1V'>]I_.9INM!$12 M@L2_ZS>!..Y5OZCE#+*>,Z$9#A;DX8U_!T,P36)-TCI=\PTP8)R:TSBP30!N M,J;I%_>F";=^^Y8)\)J\83K@5:1=.MT +T;"KA>!G12K7G$GT=D02D[.='RA MK_GC"XV?Z6>6Y&O51?_8Z2P;D&.P4SG%_O0'M\9E/!WLVI=C_"9M8I2\C+ R MW1LS.:T@[E5?F(F4A/TL+A(27MAD1/_?/*0C8);O(!GAA4U:T(_Y%)N(<$Q] M=V4PBT5&_U%P7*Z> :$[%D?+G?QO;^'+(=]B2UWJP+#-N7LDB,1B1B0&Y%OY MI^^B.<.V@HVBKSO>'-3+VDJ[:B\=J;NAF^M,ZB3:*'JLG2T MN@A4S<7]5EU M;T"#["GUP!;M:C1;=W6.Q;X#;IO3^OM?T7YH$CVPNFG*!A%J6H[[/=T$$7=% M4XAG9\L@!J]DC _?.:%-=[X5L&///HD22C;BM 8./GCQ1Q[^[QUZ^(8H8M'9 M;\5PNGY_-V\//0)H;(_[PA-EO^&LIX-)[_BQ!2>.YW57;,)K7^A^NK;57^@F MULC,]B\%Y!S?KCX'?V?I19'E;,.=P2.^T!B)R7!OG]$V+W2 'ISJ;FH%F,XU M C1ED;L:QEA0\)EN)E) @QW !]>/\_"/]C W=# M?#1\FVWI,EI%XD3"93')9?H"2:/L5[*@R7*]"=)?9^1E'2W7)$J6<1'"D_U% MD4,70!)'FP@R(W,V(UD0TXRDE)^>"SJK@,-/EC1ZAE87,T+SI8='!3URR ;L MZDC=<9O0:F+UHQCE((S&.)G,NN'@'E\%$?\BQ@#:HX4K2KC4;*1 <,L"#:S+ MES*,K[$2,P_\K&80ID<^9V[470K./7?Q.(WS>1)"*>HM;,IU$*5_#N*"[BM2 M*SPKS!1(9VL(*%?'AB$X80Y.=M>,L-(50C,B4)J).NTU5C,">!&!&-%=N27? M%,69S 3I'79/X=IP&0D=R/\>4_@+1[7Y$D(AMT,^17=1Z0?A2DYU<$&U>[2R M1H1<-A$1,AGX?@TSB,/8&)*.]/H>TR#)9*>:>7X'SU=ODL=H0[]FW)^X2;9% M_IGF:Q:J74+<#!A_<1@DZS7#]MB0("<"'TAT XR(0(D(G(A$"N]OVEZV167%8D S,#VS-2>!_@B!S$W$Q'6P[L M89?E= -MIBZ8B#6IA7;8EQAAU8-@/2F@PH)(-$B)!YE#AQV)"5XR;:W1HD0J M"1+L">)!!@?R(QNQ 2-E[HZF2_&DY%Y&DZ[Y(BY8(F*Y?XGR=76VO1$!*8X# MW##R_T'KMS9)-#$?1C['P+4NM2)D1>.>R.:FJ^Y?8W RN9IM"ART;R72WO0B**6M(0P:T;3 MYVCIHX:*$6YGQC?7IA-]6^1CO6CU%,;=Z%-0$_"C)5)V'6D3"_?N23-)J&FZ MTAU@RDL$P?H1PG+#8?WU^6Q8[O M@[S[C7K?1Z,2#U63NTVE4V&!3Q\TMRY$?%VB,"-'12DJ/$C_TJQF O8RU$FV MGQXU/0K3(]=,MZOJ,/-!6YX4WQD3J:/Y_4G5$2)F!&OTZLS)%J "Y_\*&?(. M,DZ_GXB4J=BL4] ZJ>M,UAY3CDN1[L23EPNVV;!$/!]1O8SO'8^4+>6\]L_; M$C#) #)YQP^1F0#LA[GZZ0;8,Q(4^9JET3]I2/[U_>S]^_>EAOZ_R!]G[S_\D419 M5D"T- DAXI?E@7R^%.1DODVCF$!Q32"L& &?_!O\[OAUDQX;T]T,=P&2 M\.^%+/63/;)["HN+8BIJ "W9AD*UHD=V$63KNY0]1R$-SW=?,QK>)/5;C_DR MCYY%F[*^X(I%4-C C 64;$M5 V>(F:<5UB2A$"P'O,F[F&/^/?P:?BBZ_VS+ M%<"-X_[!7U"C[RH!S/[-:V-&R);U=? MA]KM9J";A/X8[$888EWF.AQMBK'DK&Z9JG1 )L=01Q3N8J8VLOE@I+L@O4U% MI=I0.#MW-!4(]C-5WY?C&4P%P2VSU8ZQX+>0Q7&09G ]+GG/.^OU[D,[&^H1 M=QQ+9FG>8$?^KSTK\G_\[9YF58GD^6MT' 'K&#&0M5IFLLU"]_0YRB"-@JW( M71JQE'#Z1I ] M#=UG_J(B33H(XK'KAD4.2@FPL.QXSC SF7/TZ0\+WRPA$Y M3[FAC48^S-1%L(WR():VD^-'TV<:7K/TNH!>9V!,(8C4;[2&S3/>A.G!Z!T>S^C(0,[+'1#/IU++CH")WBQ/124.[W,1IV]Y65?%;#+?L M9['^%@&R>;,\6G)M]5G*_Z\AQ8*LAZRN*]-)7MU=W>7[QX\MBK5P:3N M2E*U]),?5D3.=K6J=F*WE:KJH*!5#?(Y>(TVQ4:I0UI_C] B!_/8YI 2F#]# MTDXUUDL*NUL=)=U;W?9[S%8WY[&^U1*8QZUNI1KK)875K?X+A>Y<-)P_<_72 MX2%TCD-L?>M\MEF@ DI*J/YXH9N<3)M&5GGC]B7A)\IUM%6&H!0C$/QP-)-U MSZ "Y\]C5-&.:1#$ZK;?R2>IM^F#?)"J"$)W#4,P0-MTMKF@A"D2 XYG=,+F_A2&_V498/(93_JH+K$.OX=-N+@ M0E,HXPV>[JU.:,(LTM!,6[U)L1A.4!&(9XSI3A^'*Q!F9"JM8W4"(6DRCK9%F89F TEQVKO-B6D959C1'7 MS+IYJCM=^3GC=)"/Z='$*@M\"3;TJ*&:\E33.Q;! M$,HYW?&%KQ--/SG9(!HY#YW)M_%E*\_^&)IJ^,A@VO&TKEZQJ.!C;+"!M?PB MUY+0)X@M#S.U%7BOC>Y[V:0E7MA-+V<"\36!H#T-[^M&FCUUD?L_0 J%>F+; M8E%!;FLKBA$)DRM!>)_U3N@B ZO,N0*81 !U MZR1K4)/ID\A=Q;0X9B^0DW/-N)]>+/)5$<]+H[A7QSV-$S!S8&N<#8%EO7A9 MA8QX!!V6Z-1.A9\B9*C-8$8H[(YK3_#I3=S1^03+DQU3VR\-'(2TS8V=D1AR M=((#%EVF-(QR O7TJ,C?^9<__/[WBB*4__*'7WZ93 U*K=UCF"UQYU,6<)4! MG:^V+!7MOLK+7Y5=[O\ ZR,J)W85CE!C@#E]F5P/)O8OP(,T[1$@>NNQY>GV MZ&$M\G7?;9@==EP+ A#/T/=1_=/[R;;,BIQ0&92NEH: M[E9:X,/YD"&I;W#$LG< ^!T#&+(7[Q)RM(V*J^I M>S2Z4''KK/9K#5=@17[I6920I83LJ5QP-VW90(*9T<]7(K?[=G5>9G:?7I5H MCAZAC5MF=:6$6W+;9U!V&JM]C2P%T5AOTNL99T142YJT]>@2%#:0Q",%O9KW MD5V>]GWK&($1Z,.9; LQ=,?8/TGA;! .;.!F!&<<=Y\?H3U-;E9P!M,@W4BN MO0K2!&Z(1(I2&].V#L#P[,%$MEGV%.)@?AV)+\*X2(A5HW/7"./D:[X1?0^Y M_- #[#UDQ[9S*NNGCLOX:K$IA/ZYS= J)Z5KFF31,Y5Y#*W9X^CO\9%7 M/3C6CQ:W%S=DGN=IM"AD (BK[;L@]5:'$K\3;#1YQVKZZLWI5?GDM%7;JP:A M-/[Q9+;9Y>KD6>UP)3H>9YPB/<5]FJZ*FD.8'@D=WM2SY:]K%HKI/\#],V]:F+[-_A[R+\C5,#V='_?2ULVG&#NJKF"GO["DKJ Z4'6H8*? M]#["5G?MG-QZ]A% )^_*7-'ORY9B?LJYZE&9X4CGC,/N4D GW]UQ.N?S) 2V MWX(9.=\]&\FP$ M.=V93'E#*:\LN6! 1_B80>6M1_J:GW-XOZILI_Z76"/:#\&Z-94HD!H'LD>" M? ,TB,##4XK<@"U@(^CJ7R6"E+2^4$)\:5HE[B%X5(D^GC-A:*^C%%4$=?A> MF;N>T1(NF8-LW9T.USD6_>:X94[;S+4'*JKE>7I_VT5,-HA"(X,GGX(DY$QY M7D0Q/-7-;I)/=!$D+'FD22*:AZO+/@S]%A-JT85A72=!BB/\O\8$;A9+7&:D MQ@9?$,+>2D=7AN#'"O%:71:17 3+7PD_LR89/-!@"1"",WU"Y;]>HGPMOH@K MDBVZ2>8AHCZ8<]FH37(7AP2A)2GZFUN-8'&-7=.;%MIBB!$P&=-,#C%;3A]8S6R@>5 M?0FK,?*@3_5XB TGI+M:TT&4BAZ]^U-BUA<:T/H&6UFZ:V[KPL.!$P&]$0?( M_ <"] C.4%1T>.H**=V()R9\Q9#=RT023/7L7UX+7 1INH/GH2(-07DHPT^% M/K,-!VF;73DF9PU4ZJJPN()1+M:'>#6R1XP<8D8JU&9$(@>M5R5Z1.+GZ8P[ M@C>9R0UQ5R4[[;%D6Q!]35FSY%^ +<3T:)04-RS(4W/NVH7^0*/A0 M5P-1?1/:;>":G"M#ZS3?BB;?#WF0YM8TZ!E9T* MLP]'\?N=T!.ORS4TL(.RX%>K%54RFQ\D?#@Y@Y%]$V[. MX%4YM\X.Z(XX)D(-\JC$2=SA:MOJMV>;\6)JRCJ/Y %G*KGJJAA1U9&P9012 MF35F@LLJJ0F6BMV2XN[*\QVTMJ=WX^VVRB7-0( MXS;R0AQ&GRC'32F6&E]@/6CUS/:+QM2@A5NU; +WU/FTG\P,03MGG"5]I=M5 MTW^Z36S8=1LF+I1GP.L?H\B,3E1\Z@1$I)A!BPA:#" 1D\9"9J\QQ#$=S= M.^W#)[V?6*:R4QTCL2^R3V=T=41I 8TYBQA9 >+0(<$1X$?"-"]:;;TF[V + M-H!2OD_V+8TSAIWL.R:PWD/%\\F^!2.#)WLCZS5ULJ]+($ST9-_%A:CN,=.2 M4NA.G8V1THX)S$II"R#/4MJ"D4$I-;+>,5):<#3 ,XPJ1"8JH5TUMS.6B*#C$MOQU]FXG'=.BAS,>^)CR4P57 MF*M(I7E:1B#WOS&3*[/> (FQVZ,P1AAF 0]\YUY\+?%LVV8S#7HXX]?S(!/Q MU\X2MNV#D%Q[.)EMQ@5H!,#Y+3VKH"#3(XLS;KBD*PI=6F2 Y#%X;21!J/N$ M:WZ%Y)>>V6TS4 6>Y,$KB3VGK.A2FB')Y]!5DIU__A+EZXLBRSEJ:8783NDZ M:7R#=J4ZYG:6*=J%!"JQT]"J#EO4/PY/]:H0:0K0GTC=YN&@C\E2M#:!DPH] MK:Z,:PAFS2'584B&VH^15Y@701*$49!\9FG^%#S1+TQAXC5'8ZXMU;-:/ZN4 MD$D%F@!L_$6ER958O*(,R*9:;P+K%5V]6GI:?HTJO+^?QGJF"H#" MB\,H3"WR/[SSOMI$D'23R^VAQTL(?K(^48RMEL91& M3\GAA7]'G:S^X:@J6>IIK9?YD:#)4>[*B I9)M=B40A6Y<+W^2IEH^M2I7// MRT<1+0T&8T,I/>ZTDJ5YXZ3"_[4_I?!_@*^6L3@*14^,)!>$:ZGGKC-TH.AT M36D_RKN'2RK /JJU:]&5#2&6#&/'T4!ML][A^>YA?[#9URP^P(Y4 MZ.'] (>T<'A4/#@3MA\%)U/@>+P(,+-[Z>[]*LWAG>7MZD*X=+=%GN5!$O:5 M4M3]#/O2M6=Z9\]?>_! O8DUOC;,0UF)! 1')1JD@[YZ'.W-C*TJW36K_O9Z$NE=.7G-?>BC+ MAI%KY&'\(8AE<7[H]/*X;_0R3Y(BB._AM!7?!3OY#+S-J1XY"^;X/1R:;0Y# MHC7XL.UBY0@7 - B-5ZD@1CWQ@5J1.)&*N3TO'1/%,#%&22TNIPR*W*HJ"PO MG5M[*?FX=Q@AJ,S0#MAUBZJRUI7M55Q1=([#N$-M\[ESA?S<1W03D6E3QID# M] AUV(IT)SIS0WT3EG3Z0+WCD6Z0EV( Q>@(%+"CUL>>GJ%H<5%#$="9Q)4>ZIE MFRFVV;)$G&).SQ"#OD'*3^?]BD:K[ATT/4H31#D,]=21^6T^PNV$'/104WM0W!EN5I3.6L\$X#)JJTSBB< M$;Z= $BT,+95)*=MQYD.29SQ[;YBW35'718G+J+D:=_RZ)Q"YG_]RI=F5Z]Y M&K TC)(@W=UP]R!K;S*J$ ,'$)%291$S5T)J<0D8F9\41?&E*-_%? 7?DX7 M%=J_P ]SP-:+6G$A02*NGH:2YB<>ADS98Y79T(6H%C?/FQJSBL]3/,(%=I M4&"$9)G1L'<5UI).NQB$#:*7NWR=: ,.^TIDF:UH>KOZR%AXFS[0]#E:TLX0 M^J!OL7D\.C"LY_0()(#%*C3@[X (82DI4?$;=Q^V%VP4@9W7!I2=UR@46]6H M":@8/;(6X-&L[N[66\'C+M4-K01[FWZ3905 )@+TC/2NPW))0Q6CM)0R[*39 MR.C$:1/;JE#;)=VR+,JS#VW1B &?8:(/&M,[B39HX#'X:&UE;0BIJ*!FO^-> MBP0\C;7@P@*/:[KO@/TN+!'ZGH3R53_4RMJ*4X!HCUUB6:_<0S1@B @Q++T= MIEY+"\[5U3R_8U&2WR31*J*NB:F,J0V=(!Z!FPB38H0'&Y'65VCTHRKNH M2O7B"O#ZI,O8UVUM1A1,9E726'90$51L5#>>A@$=). =1G7XSHS4>W:+J.,Z^ D%+>9]S06Y:G9ODOLPSK@>_QG_F\: MMNE$BV P^M(".M;?Y(EG"TPBQQ5&B9T0!W'U3D0'HE1B*1NIUHV.,X$H>1:8 M#M8@DZ#6Z!I=X(B+![11(M[/OBL?TG[?I%G62V4- GM023;EB[EB W<)^;($ M6<>U1\L(;++]?B97T;,&2$S$;!3&F$?^94F\?GQMO0)HV6RF08^QK0..3M!E M3[76L%??6%3; ,64RK=:=7NY1T@&?J2O^3F'^*OJ$F3(M]@K$1T8UILD'2 !+%>B0;X) M1 A@0@0J?H(\PW:"C2+O5*Z+.Y[Q#?C2SE6QBR=]FA?%_I[Y#=D%_4MBCT_^ M2N&H\H^/0P9]ZG+HY^@\'STP]LNT214I*B;5';)>."JDPH6K3\^*<_">L+&$ M=L:MGZ,PC.E5D.6=ES*J84CN.Y[.>HET 8\ 0+_W+$HZ,EWB...,\R"&!(.' M-:7Y)]A@*/>EMJ9]PY&787+C)08^K2A MO;1G0PEJXWG+OF;*/=URLJ^AV2OF@8ON1,:>N/0!]/?(I0\S,V\\S*_?Z$.7 M9NV@/8(6WKJ8IX.QURZ2!C)$GNYI\>;DU]IBYK[$"/1;700:F-YS\6 3__YI2&ZC+-0[XS93&/Y_=F((\1 M,6('QJ_.I/G;8X,MKVQGC6-33N#5#'G:+^[ A'ELS3M(GKH,5C>)4?8IH\L? MGMCSCR&-I&GB?]E;)/Z/OUV6N_+_<."<"^,=MY4L/58<&B,'JHJ.&:W'Y4NP MI(9+)&"GO*-#4C: 3I;X0[0 W,%CR93#%+(KC/<%<&C*G:SPN&30P*\0?*,Q MN_629@(%8D( %>=<-83X#$E1=[65ETO (4J>[E@<+:&):??# M[_X/L%65E1-;+ZE<0R85:/*M NZIFG(_E=EPTEFV<>)N2!PP>HV<:N@(*W<\ MI3,SMP?LV\XIJ,6%GI9/-/+( _*/(L.$]3"SP$TS85G$%>OR[B WIY?N&Y;SS^9I@LV_+FJ3//;U+A!Y"#FR)\!]AJ5-R:Q]F&R M]ZE>'F XJ]0UV2,Y(S6:1.!)*D1)C2D!5-\ ;3"ALO]6!!H39YN18,6Q)442 M0"OTZ)]?WBV^)Q5X;RQP0D*F0Q?7\>E,E,/_Q((DFR=E+29NL^_IDD;/ M\"PB.]^=RW(!$%@OLD>.8$?VI*EIQ\6ZT>!M,VD)E$BH,P)P?29<&MNNTZ"Y MH3UPZ"ON$6NBU9GBI/<1VG/LFMQ^9*R&3@[9UF].DR;)&8Z.SMCM:P)56&A8 M/JOH[HG4/1C)7NV3VF:K"FKUIM!S#Z0>RK)AY!K[6!N"$3>RP5)XS=*O^]H\ MU9,;KDOS:!EM _$SCH]("945H-MBKX:F1#W]'@?:2:K=2!R'/REW31-T':D* M2;)B*6F@6;]MX]Y+ U.R1Y5(7,F[O](@[:G%/@42&2GZ$A9I_5HZARIX\/(O M2LC+.EJN9901:D_M2=I:=XL$*25!@ZHY(PL(4HHU>BGZ8DJ!,!O;.U+?UB%* MF<_X">*V7S,:GN\>@B*,YFFPB(+DH5AD41@%:?MEJ(&9,-H5!]'!*]@R"%ZF M]PJ\""!&%CLB4",E;F2/G*8/X)$,HY7$_GJ@S/R-!66*5LID-;X>)'XD+S.# M.S-2OA]NSF_OU4+;\FN,)#:FL1[E!%!X81F%Z6@)D"PN,EW(>9#\2FY7*PKF M\)XK>@]\WK;]K(]2SLZ'?Z'1TYH;P/DS38,G^J4 7"ZCN*BKF]T6>98'"5R\ MS<._%UF^.4WX,C0;\H2)A&J_O@W' )+$*&? I7BC066G9W!%:)))3V[+/\K( M.^[$R<)[?MH*C=TY9G@[QN87T2RCM.QBR*%4D4'Z"8J39JJB(JAO4?E"FC"L MY\8(/&:DQD3D+I2X$(G,@'HB3E>*KW;&/XKX"0@2-V*6%?RO<%1B!S18E32( M)0T@:Q5"&9*-H/U+T#D!T-&+7&XP1+N6DMJ7I2&X&-5^WNX[17E64 M"8KN-Q2/N(&X^>;[94[*N M*%O*8U=Y0*-SHLX?(V%;/[0T\*N?Q0L,20-%5R;MV'5!B=!&Z3Q"Q9% M'*1-R\<-6]:DW**D7"8HUQ3[1K5H*>L^#E.F!(!9V3EW:17<@PG+\T69Z5%G M2-)0%D_;;(N\+$!Y5?9GN*.I\,!;JQ]8F1N;8&$"![=E[,%I;%91%[],&,B0 MQ!H:0(C"[7O,Q;M]>3+:]]#@YE4>!4\*U2SH,B@R*F:18.NR[F3+X8*?FI(G M>"5/0GAJ6_X06G)0P ^#.2QC&R"]%WE) M-A;1SJI.@C)WI&>\@83C@WE]I!P?(# VZ1B[&E-=<,73 98H8OG>$Y';F4B1 MBMQ!2[\QSMN5*B0U)+;9/XO)F*8:FBN9&X@61A*MKQS3_+2TT=H&T=?2&'=C MARVMPJGV"PY= +9'!X[VA:B.O2KB6/HMX(+X]A*P@MD7LM;=&#/QLGD2UH$Z M<="H>V25+Z!V_>&!D5.-B+4-!>DJ$@=.^3ZV+3";D1JW6?7$<6*E]$)*!#B=S5R-=ZG8_#[L4 M!&1Z5''8MBAA:54 CF;Y[4M"TVP=;>\HIRY7E4_T?'<7M-3R&S$#NMF1-B17 M8<\!*&'B@E97C.EB6V?+STB-"]DC,R,Z:[4D<1A&9 9H[5YQWZ[JU@]5YX>> MXKY#/AVKY#M ^&Z/X;GX[Z!=:+,4VJ1UQI/'-^!E9%S!ACVCD9RGF-51Z<3F M%5#(8G[,:F1JH&Z#C*T'9],4X+U(3!_#L(%4\WVU?')C=!YDT7+8Q7+W'&:O ME=MA>;Y4;D?*X+VKJ54C/"P!::HWISVB'!$BQIP/7:N;F'N&P@Q9SQ$->W*5PY75+YYTW2<(\NUG3Y:U;7+IR#AA89 MZ0H6&S<9D@-Q0&TS:(45>1>6>'T/[RS"-%CE_( >["#H[H551VX2,TMY;Y&B MKI-OYUA#42+DF0X5(]J?ZNQ$B)R>REN!3R(ZI#R.:M#+J], ?TTI[>YFK?N= M04?B8'X?+L6,5#AX;F2M3?P>1Z.#HD8JFS2?L,^3I CB>WX@K0S%_BJK+9D, M-P.^RHDN)">5.(>AA*QV8F_%F.X^98F7@^(44%03\"* &*DPFY$)+QU?[F5; M0X7[PD N7'0XBBKODU+*HWL9[KO@P65&9@0WQ<=E?)>GT=;'4^&7^Y M?3*UTTOM.J?5>R=;+6JW7V+WD-"X(:RN'V[EB_Q'=O6:TZ2U7O7@C\V8/P40 M3Y9/@8T!S6]LG>;LG40)9*M$"NJ83&_!>"N7U MD^P52@<:;L&U] J@V:UK$ M=V;1!$I5C6EN;N'E2>>)K_\#I#533VR_K"#P6 .T>([E]VRG068VG'8^'"51 M=V;-XI KQRM1453?8^K_=KSKI(;AU(=JHO$[(A&9D#>EL1/M;I4N>9VQYF64 M;5D6Q!]35FQODK)+IWAI)^Z5:5A?*W.)RJ*P_(>"6\=.AV1@+%A7\5@L?IC MLSM:H(IQ2.2(P&Y&:OQ($T%28S@C ^AA2>Y'\S0SO3E>_:&.Z_.^X09](1<7 MZ"I/R-\5>B^!>[P@OY?H;$-K4]CC]?2,QE^#M\WJX)X;4M(:C][\.C)]Q&4# M*>:+AYHU/^=). ]#<8$3Q/OTH^Q\=Z!RLVZ=FW4H-[? S7"X)23M=U]H>@FB M3;-/K>MXY]7BYV0[_1P]^O $'NB,Q(RLH:EYTT<]+<61 @UNXBV ;055,.,K<+N+HJ?.QS_ )#)1/[@;DHYYR M-T9C"RP;6Z^IBLO;-$J@$V@,B2#511FK4?)>0VYFD-B_PJBZ;'76G\BY0G8RED*I^BGH1 MK7MX^GV[^II1T4)KOF%I'OVSZV)OX-<&!*T#BFUY:\("%^/^]FO9&\T[$^K0 M7L&+V@0=F]P7);2JGW<=+ 7[7[!GRC')12G7J_.;Q\OY/4#^'"71IMA\3<(T M>$GFST$4EP)SS=+KZ!DN,#*Z%,U>+H/=L>?O#!XJA= B7FZR#BTN8'C>WJ2H MBDAC0>0W M0%Y\)N6F)%<@VCP!O8N2<,$QX59 K&6#<"''E>3K("GF@J MK^3?*WI#_H\G4_Q6?9HW0R[K/HKP1$HG))->R&6;%\(_+KT4T7PP2K(\%9B] M60?$DJLQ4:=BON*2-]*S:)W#DGMQ ,NV(N;RDM( (+X)5Z)]'P;X$QW$M>!4 M7-)54,3Y/I&HN@6 RG*Z_H/6)*9>ZL=[-<;5>LM^X33Y_(A4RC1?ANA CU)[C+* W;)K_WE[D'938R& M5Z]+* %ST'%;UZ5"%E[![2P*K'I)G <^4_50*?TBT?2A/1 M9+.2]^DZ);W,V>>4Z-%^,E[T%_J:/[[0^)E^9DF^5N6(8:>QY$L?@_,>LOOI M#]-E:9UM&N!J=]-^,HP-AX''%S8BY-SXVF+$F4/QS[W_]B:X]WA3!L:;3R@] M+5[EL,93,L>[ M0V_U3FCMO/[L!=LL.*9PDG[(Z;91I%36#JD.US=UT=+Z.12T M :3_*.#-[OXK96U1]X!'5L"UAZ"K [7]E6!.X5.D+Z9%4U6GN+&.&8&5'%8N M+@L+W32B=]5ZFK5)]DLZ_%R7UI8K'CN0UI:2R:Y8Q)G6_4)?YDL1\. HWJ4L MX7]=BG?7&;S 67,&HQFL9C]&O#R*:=;7W\;DU$C-:0(%ZWG7-7 HEI&$01IF MY.LVA#Y._)]$8BFEM!Y9X^F_>X[1;68V]VZ<4&5IWA H_J^],/%__$T4.;NG M6[[+:ZA3G+*G--C,BWS-TNB?-)1QQ ]'LH+X0LV.$"H#7W.,@QA.Y)CX3.=$-B(U MK0!=Q6P22"_8B-L,"-V >W04N_G]]&,WW5NF&\71V =W913WS\*A"621IFK= MVSD66T"Q;4[KU1/W0&=D#Q83E3"$/_YA,DN>SG*H_>C[@7\W=[!!)'/&_O*Y MZ?ZD+UO6/G&$#FJ0&=Z5*?CFTEIQU,4O(:7]^'@\;A+SOGD+,+>^.7D'%KVG-Z-[%[UK M$_1<]%[*.HR(YM 'B!]QG[DLA>>[KQD-;Y*6AJ4]Y7SQ$Z&CG4,!NF%>\,B# M&K:G("5Z+Y@Y COCX5M^+DJ'..#]'R!Y4CVQ;=X3D"?DQ6J0F VGV\CW,??T MF<7/T)599+1_@DLN8.KSW> G<745A%*0'A68H#OF>&]^,FI7D 3Q(A>R"B7O/"_EV(X9OP1BJ%U\]Q5NJ%&:.UD8:\ M9=W\,O(@.TZ7]REMMDS[(WP#WH[)'3;>[< "V7_6Z+I&--JM\3AJ+3^AU1DQ MG_M'VV5Y64)?MW296::ZM/01(*4&H7N&U'S&/J>HJ??"\%5CI0\Q(B1'SJS=99D5@1R1ZI,)/5E0C$R># MH<@8K'\IU[^LUB]KH:4E:J7A#B9>9T5;K+M*K0S;)F=GW=,.UXK#K'H@\K1Z M.J&KMURGD#%93B;P1Z)]E0RL,J.% MM:7018<0,GWBC/2@OK T7\\WG'K+(/G$@N2.[WQ$,_410N\+C%?4/;-MA2*@ MDPH\ ?BD1 !_KC"])$O'BR5-\X"?*[[^\/"#?.T5)$$8!8>1:V[YXYA"<@&- M=_SK,A[(#_&!=!,Z2.C!^FLR*D-LE3N+OES3L(BY S+/LF*S%9W'KEGZB25/ MET7=K%XD>63GN[N4A<42FI9]+((T2')*^YY'6H" ]2',86);5U2H@IO;0%:T M-@!TSRI\ZP[V&=P1E2@+":N1)M\>@P6?RO<#2AN,P!SLKD/ONFP%+6X$;E?" M,G\=C_:U%?/:YGH!#UA>0/39%;R?M&PPO=R]2.$<#YFET%ZR_TE*YV#L MFY362:T_2@'%"&!%E]X9N7JM:CR4J>'D!UFTY"KT,HJ+G(;"SNC[ ZC91MO^05!=VOD*,:@\0@1J,R*0$^:\ M1&]ZQARWBZV&>\36.%>NX,!G=\$.<.I1K6U#1RK6YI3VU2H_96TE+#B+?;SY MZ%5[MI*S17>J:>1.L?)GUV]TG09 M00F":$GOH0C(;9%G4#B%2X@Y%V4D)#%<9!F(HLE ^KT MO(W[[5)[< C>.JUMN5@3VJQ6OVU"^'7;]^;V?>)_XS^L?L3_ TO@/_G_ 5!+ M P04 " #<0\U8Z^[1HW1- !5E08 %0 '!P:6@M,C R-# T,S!?<')E M+GAM;.U]:W/;N++@]ZW:_Y"=_6UG9N]^.461D,0S M%*'APXG.KU\ U,L6 31( B A5$U-$AL NQN-1K_QC__\MDK?/*.\2'#VVW?O MOW_WW1N413A.LL5OWWUY#":/E[>WW[TIRC"+PQ1GZ+?O,OS=?_['?_]O__@? M0? 192@/2Q2_F6W>/"VK+$;Y%5ZA-__WXN'N3?#F_0]_?__SY-.;+T^7;WYX M]\-/P;M?@O<_!L%__"--LC__3O\W"POTA@"1%>R?OWVW+,OUW]^^_?KUZ_?? M9GGZ/"?W]:_W \]6?KKCVSL^P\?/KQE MO]T/+9*F@631]V__[Z>[QVB)5F&09)0B$86E2/Y>L!_>X2@L&1FE*+SACJ#_ M"G;# OJCX/T/P8_OO_]6Q-\1JK]Y4Y,NQREZ0/,W],\O#[?[;R;9,RI*G!?? MKU&^"M?)>?X=5;2OUW/_WX[BV=\)8 7Z(5RLH@PR6B6Y*CB/XSC")<9279 M_6"=XXS\/6+CBH!@RCZ\S-'\M^_6ZV09[-:DL/W/#DN6FS5AJR)9K5/TW=LC M)-(J".81KZ-"W$A'NWN[!#L 41R_(0F$J=KQ8H.C[!7Y^ M&Z.$04/_PFC&Z$7^\<]K\N%R0PY,F&2[SZ7A#*6_?D: "(,T(%IE/&H3_YYV>R*\43ODDR?3BMCI=:#OB[3K, MZ7T4+9,TWLV>YWBE+NHPC#3DPYK(4A)U$MT9H0V 7W$K(:6/.F:81G1=8YEZ M,7;D)>R/ =H,F 3OQTH"J*AWA1D@.A;6><G/+FE#>GO#GE MS2EO3GES:CCFE,+E;<].>A^0+Y5Y$I4H#J*P6*K:2MP%+-A+$EB\S>1M)JC> M>$FXASH]R!_7?U4),<$I2 T2@*-2*L\?KSTU?@PL683>EAJA,N!M*6]+>5O* MVU+>EC)I2[54IZS957\+4)AG2;8H C(K*):$((J6E6@)\[:5'!IO77GKRML? M8[(_KK(,7"09'-,YM*OPFTFX$)&+2XOBU"L3[M4YHJIR>M!MRFL+TOXB!>YW%5V3SFB"3#-4(Y=66B^IO MDS.U(@>4--0$D^(8+LZ-<: MH=FJNW%,;NYB^P<]G>^YCD+!6%-PTAMNFC_AKWQW)G>D*1CO,5%ATO^7K#FW MM'RP*4B9OC_-[W/\G-2M"82PO?M?Z,-%TS../WPX=4* M9X\EL0B8?5!,JY*UOR!& Q]8P"3]D-=J62T!R8?I#C>J')#AVJ$=2ARC_MSU M"N4+0H2/.?Y:+LEVKL.,SYO"T=IAO4E2]+E:S5#.!?!TB!&H\DLB4Q8XYU.N M<91VV&ZS".>$S9DJR 3?):W:RS="H0Z:90!VHGV%49D\(Z(CAMM3*P!:-%P[ MM ]HD5#?2U9^#E=\TC8/TP[=XQ*EJ>QP-PW2#]DJ3-.+JB!J6,$7V8VCM,/V M%'Z[C:G'9I[4'8XDPDD11E1,BO/]A]I24 MC58T;X@!J*Z_1:S FB-#1,,T0D>,3*K//6Y6,YPV@-7X>W?"E:+CXWSD">16 M.H?XDPHAX!Y#1]GC%%L,-G$=910)242*(9@B/[A!$4$\"DR*']T@!2SB!*;* M3VY0!1C@ I/E9Q?)PHFH@8GRBUM$.8U'@"GQJUN4$ :VP$3YFUM$$<0CP23Y MX!9)Q+%%N)KFE.K*&4VJK@*H93R!$U5L$I"*>-(WHM,!0/IXLCFBTH M^ ^GBB.*+3Q^#R>-(^HM- T#3AA'M%U^%BF<%([HN.(P"YP&(4BL/L,%)XI06"\F9@I/&*246DG@")XU3>JP@Z0E.$:=T6$$B M"YPB3JFN@)1".&4*R8;VRABK+M/!K.P2(H SX/C3^Z@ M@_;3%*]BH:DF!"#?^Z6?/#O?^^48"]_[11\.TWP19LF_V5F^Q%F!TR2NKY L MOC\ZY]-Y __ VZ#J^HSO-.,[S?A.,[[3C,_WU<@5YY?IZSO-=.PTH_>^MV;; M_1#,MHZ;H$ +]O-\YP]5-/ @2YFW\N!0>5//FWK>U!N3J?=8'^A] =NO2G, M] :9-\B\0>8-,F^0>8/,&V3#,G#H;)!V^&B>WG3^ H!&Q@>--6H53+:RX6$O&AKW'SK<*.P784J. M!GI<(E32'&-VAY[R!G2X==@;608^P2C\EY@ 0[LHL/J\I/CS F71+ZKRI,G_#''!&M,']:AMF'=U?AIK@/B_*J$E_BG=>S MCGU=+;^%32#;E.8."RNAQ%.<;12S.QQF16V\Y&&,)ED\+9KN$U=H ['J<0L3VF'Z-#MO1$02.J]*VYAF[H22.^5I5IX+ERAHYS)8#$/5^BAHA" S6]XL?.PB2-G M%K6 ABM,TT83 /@_P.09:#.23FS3'$!RF&.$NK5*8,<5:=/F5,&2"\ 4&F@K M&_G!@B2SC/TLR1T:D)0C,!4&VL3'9'+M0+OV^.3:CLFU/<3(K*7;_A3DM1)% M4U/Q(DM:-*L1KF$^W18 CD^W/9MTVU;9I-MT^8\(+_)PO4RB,.5FDTK'ZH=V M1ZAC&#@INM*QX\T-&C\&EK*;/B5QG*+KL!"G'/"&&85U:_+?D/N:&#B,:G\D MY7*GHLK2652G^TP*GTGA,RE\)H7/I.C7\2!70["2=C5VFL!<4D#ES07/%(A! M8)K)V,EATD4U<)^V=U&U=%&UTWNM>:5^#I*,#$)!&7Y#^QT$NJ.:)YOW0XG@ M\ ZH,W= >2?)R)PDM^PL/X7?X+4SD"G>P> =#-[!X!T,WL$P3H-IM#:C-YB$ M!A/\[K9F)/T2$&,F3'+V$SP/4IPMTN09Q4'(4FD5S2;H[QZKO;V]W> M[FY5!"BY ''K^]X5"@'*1B%*A"M>"@##*"CKKE#%Q_N]^ZJM^TK))K3FP?HU M*.A3SK.0D"X@H]O3 M^>41WS^@E% QOL1%6;"WVR_HT;@/-XRP,A]73ZN.UW,Q?@PL^5ZNB MJ3B>KBG3"*MG ME8FN@_S*XOLTS&@_/:'#6.>GO(_0^PB]C]#["+V/L'^N:%94L4G![@HIY4X2 M@57@BK-,RD] O\(Y4[TAMZTCMU?%@S='Z(8C1;(\?T*OZ MR>=/Y;4:L"+*= M=;]@?FI=Y\5Z0(@%"I,P^X3S&JG(!S$T9)2F0''_[.B_42NLG+Y61%Q$(49K3#WGV8EXF(+V S'(LJ M\5*@B -<+(J+W7R8L^(,(G[:KF$6A%PP,(G#H"8+R M[!B&]VTP@:YF!Z56[ 5=32M*ZJ=_*(>>??KXR@$ +9G3 WB/8OVMX==]?+16 M$:;/A)&2Q;(\O!%";CBJ^PL 4INJO97FT)^Y_Q1^2U;5JI&@W-_KARK)Q% U M_5X[5-*WV(X@!+[;IA':!QK7X##_,0,/=SX;?ZF]R&Z&,7$_X2U:L493, M$Q3S6_+*QIIKR;L#1=:.MVF<=BC_0%3FHGA"Q&\HV&_A.+.5>&'!]Y6(!QF% MLU9/=L:Q(&&//] BO,*,&]%0L]EI:%;"F_%(1AN'_#8C1G_%@M9\[N /M BO M-"=+-GR\.8SCQ\!2%B:!:(V+,/V8XVI=W&916E'/* 449V625<0&6*/ZK:)" MSF#=5K/0-VQ_SQ\_D#?)XD.,Y+!GQ<5&"4&!_##[<:-TO<\Q :+/ 7VBB@*,X>!$85*>!X49OJ<5O,YK;W#^3NQ%.C'J9(K8'3>,&NP M"IF8/]#G"_M\X=?D\/G".XJXG2_<[/["$C^4"UB+WV94<%J.G1AM]#;<03ER MA5X"YP%6-=9=H8G W8957%RNT(.K(F*X8N8*+0P;R[AG?\;8MT$>#L%*T9VQ MTP.>NB^+(;A2QR$6WBU2+5PAC)Q%Q*X 5^@ N.[?9\S]T*%8#$_V781-=SM*R'"Q7 MV$_L+NZS+A!,L5^'33$Y[RBGFKC"3(JQ&A.":.!F#,"Y!2Y\=H4F )'45\D> MF&1_&S;)Q/:>K')I[.)''C?7=) &[@70/CBO264D"II9(KDEH>*NG,%P,] M&<(@&:"\U17S "!1Y2V!P,3X,'IB0#O"N4(2WR>T;9]02'GQ@3:&^W^^?Q>D M*"R0ZIO@)_/,=P'E@. ;@>IM!#JKKI9$8Z8^V3M*?D&;3_'0/EHQ,N?O-HR5 M+2997*=P(/8Y[MM!K>;V 2[.%B5A<"H2+JN<"II/(8V*T/#P];=MA.Y%_/B% M)ZH1C9[6=*S[H>^AY+L2Z>U*I%#IRMY$Q\G?BB3>1N'OB G& M8CS;<_P*DYY6,X\Y[_B+!XVWD\;X,;#4"X3=O)2=*0Q5F-+$.D$5NVRX==B% M5>WR"6;AWXH+HC5L!8:$?>03;,'_&6>14((*Q]J'&DYX_ARS6! =]&FK@\J) M+QQL%.[/J+QEEB=5-VE2"3F1'*A%0X?1"X9 R($=,L5W?_$O&HK=7[Y#B>]0 MXCN4^ XET+, 4U.PDE;F(&UXNC/NV>!WA70<9P%64=5"N(1*!/;^PG0$T/TQ!G'7O6')RE M1,$=5]A(KI/"77"NY-DJ"1N9']L51E&WB0'.? LIF&)0?"JFUE3,X>?;^0R#W"[V M;*.?R9\9;5!'?DN67P3)MJUF$:B:28"E+%A,8*B\\:35>/I8I?/;K*A2ML>L M22*_DDTZN > _A=A4$I*0.B^3 X36("0,RX)D%-CV!" MAEJ!E?MNN7RP=GBG7S.B_BZ3-8>@C;\W!Q67=)P1XW4-C!\#2\Z-3TF&ISS,"L*\M%WRQ>;X M-X(2-?4%O+O/%V)XMYEWFWFW67_(\]53#- 17:NU@-3MC[#3I<#]CN%;E M"I7$6=("PV_LSF:AX #Y8\9. 1]Q +WY W00GD\F>5O#9^S,TO_%XF+35=C% M G/1CIUCH.J9%CDS^B1R'^1M-/25'99]1'Q?1/U0%-=TNJU+E(D0I 4RDSRG M%5C,4_$RH-L8.Z2KU'ZA*#ZX@^1+=@KLML6C<]RV&5ORCW^>?)SGL(,-[AS3 MY4/ZJZA2]/[=[.?WY-.3&*^)^+U)PT4# MI/S!/00SE&%]RE=9"03U,-8(I'"2VJ0GF)A=*#FNFP8H.;#:R=6GG1GT*JN1 M!LC7^FS!P5(&+D3U&3B#)0Y,TNC3[ =+&/!]9B-KL4@663*GU=YE$$81KEAK MGF!-K+F(&''[O[S4=47)BZHK&LUA; ><3V74FLIXM#VM-^HXH:^/]'Z6?6X*LUUQ\[L[XKQB4V\Q":@\!F[<_RLDYI\9-Z' MB4XH(=.7L+H.[ II /CBOG1I5PZ6&LU:*#36"DU_"G)$@*P0^3/"1/&@'PQ* M*C]4GT*$+&6^T!0.E??.&/?.@'=(YI91W&ISQ6+A8I$3DE)(V OL%#QV.\NL M(J6Y9FV]:(GB*D73^:0HJM6:Y7/=X)SVZ+NJZA[LNP;+Q<6&7!IQ%=%FCQ^K M,"= +BKN$+WLO@@)U=&SS7AIA]QFZL>(^&]VAX MC\8Q)3C7&NZD,;K")G+B:%,IK5GNOP3$B@Z3G/T$SX.48)(FSR@.0M:&O9T1 MK[BJ>7N^%8#>M+=CVBMN%LC*;\4 QDWCCQC'7Y,TA9NZW!G>=/6FZY#A/#_3 M554$>2O66['>BO56K+=B50PUB4)DS?#ZM7[B8Q822@5D]!IE1=@^; I=SKRI MI0:9M['LV%C070(95VI;;MRJNB;,CS<(/:+\.8G0XY((G L*Z^41J).4P;7U M@;'0PK]1?(_R!)-Q17GZ$!+7)M/T/4O4:P:?]3^?U@ZQ250FSX1W059 ?PO; MI,?L-=@/1%#F252BF"$PR>)7/_F2)64G2FGYI/<2>"_!D.$\/R\!^"[U[@'O M'O#N >\>\.X!%?> 5MW<%=92(6@_6KR^=AX#IYQ&K=Z:J^MO 0KS+,D614!F M!07%LYV7"["2>0<7&"COV[+CVP)L$,BM!=YH\QZM+5SD2MK)WR0BHN(J22LB M)Q3="ZU6\YX#[SD8,ISGYSF B"OO-/!. ^\T\$X#[S10$LR0EW_L4EE4N MBVCVL50/R#Q6:\*UE+/"]"),*32/2X3*VVR."3O6WA?V=,039J 5G>#="=Z= MX-T)WIW =R=H,!-<81^Y#P:D*KJ?/-"K108FU\"?/Y20JQ>##TRK@3\%**%5 M+[X9>Z[.]T&^SY$)(G(T6OH\9>M8<'["0/)>4#N9)M+M@;EP8)ML/,ODD'A& MKQLB'.@?UW]5R7.8$N 5*J*45_(^(.\#&C*<9^@#D@HI[PSRSB#O#/+.(.\, M4LDM::D:63.V?@AF54&VKRB" BW8SW.TQCE[;2A&99BD15 2H*LP5;2_VBQM MWB1K#Z6WTK1::9_)[CSAVI61A.E>V%S5>_+TUV7/3I?E@;H]TI_"?^'\LB+,MR+2 MIQ&TQI'MU%(.,-,,[1;^A.C7FN#@#NJN9Q9Y>:1CDG\=6(K\XY\O,6_@*O$@ M[?!]#E?HU?XTGD;06*-:^_:MQ>)A+[\:]Q\ZW#+LGQ'O8?3&L98L.]HFY2O- M&[C!9.NK63FOTE/X>(B )EO"[#A%ZV[;"J;AM$*'6X>]\1##)QB%_Q(38.B3 M*BRI*2G^O$!9M%R%^9]"+*#3+..RV8,EX"?H--NX/)'OJZ'Q>H9=#.Y13G\0 M+M![* I'4RS)IA.0*$W5CL;I#+,8;-6%$[B$5S9PEE%,MFIVMCC<6,7U7T2_ M?L(?);RMG4TQ$;9?,OIV;(IH73FF M)R@JBPGY<)2L0_:S-$41W;7:+?H*UCZ6[#6O?XCU$*TR[+?E3A\17N3A>IE$ M8.U0_MCEK','#*%J1CC29[?$KB.$7782'.IN$-\XDT#O2?^I+-$B*3 MXJ-8SF7MC.? S)_@;+\GGPKD4X$:/&=R88Z5[JBQTP3F4P5>@2ZX5D$, KME MQTX.DS[6@0=EO(]5U?73LY%UAJY8N-)FS4/TH8OX#NE M.>8'B!/:9'-&'VO=O>4ZG9/;%B6+[+&:%4FT9K^GF[AZNXM[^/S]+*:7L%6;-Z?@F(]1$F.?L)G@XX"%DN?$<[ MJ.WRYBVC;I!Z6^GL;"4.J/>4Y>X)RUV&61B'=V7,[W$G&VNV)=6V8?HD^JM* M"I8LPOZ:(W$S#? \Z]@(>H.)1UN!_!*O9H1M*2R/)5H?@48?'B@WMQFY!XF< MN]V3FUS1:163.X?>-.BOBK#YT:Q#5I:$"/H^[$UVWP/#&[3>H.VERE,BLG'K M&\H5"@'J@B'7GBOF/X!A%)0R5ZCBX^'>+]3&U6%>6;3F(ODU(%.B/V=A0=]4 MQ*LURHJPA_(!Y77-.T5:@NB](6?G#>EL]$R^AGDLZ57<.,9P7]_5BDHZBF*JLJ:F:PJ*L*A$.MXH](<'1AD\0LB%8\TZJAHY M:9+G8;9@]\K%YC#D/MS0'S'VJNE=$,Z9HX2*N6*2Q=??ULDVEGC;7/%F[+NV M')4=\?I(!I9[)#[FN.!Z.OO_TE!I5O!0.6@367R?AAGMFRJ,=.C\E'F:S>2[ M/^/L_OZNV-7$U\J+B&S]?\TFOW7 YG=SA&OZE _!^!",#\'X$$P?GL)F?(:]"V#*NM/7SU@L!DQ;Y?Z]YT=;4$@&3'#E;L&# M);CQD(&U=)4/08QF93.&;2A&C0TYN'2?ROJBC9 MP:$G9IH]D^=%ZLCVZ<-+\S";-/."\7X0)13RA%F?T[GUW]MUN7E#-&"2P%S%]X /2\.L>/KJMG7Q SSA] M3K(%%?+-[\9"A_< U%V8Q>06N*C(I41+/&^S.Z)?9ICP;4:3(I%@OU3G]@$N M6[9VX:,[V@E]DF5$?#X0UMGU2.=6![58H=>FLJ>?WBGJVYOY"5\SP0^#FS.Y M7Y )TTWGET1G2LJ;,$I2(HRWS@>B.)"OU7K$SGO7T VE[3+ZT3BX4Q[0NLJC M):%I*T1D"QE Y1D1OBCI75-<7]P^74T>J.+R*(++4,98\TTI_HI94M , ?4Y/'PF:OZ>=,%=H'E9I>=!'=DH'O4*A MV H7T8["3?*-6#7$>%D@2O:<2&!&ZP?$$NZ;!6.+=;0C\K$*J><0$8-W11^? M@ +^>EZ_@.)L039S=47L#W)OLTMD.DN3QIY#<%(0U M47'];5M\\9FHL(T7E5NP%74TK2NJG?RB' MGGWZ^.H! "V9TP-XCV*W5,.O^_AHF-;^A%D8_?E$M,\B9&;KP2T2IMLH0L%7 M9M57Z561VNH[4Z+K9\EB61[>52=W-?7+"JBJ-E7[&SC\1T2W4$->4]4*WS=J M]S82E/M[_5#5UC@?JJ;?:X>*YGJ^>F:/^_J2=*QV:!]H )'#<">_,P,-=S\; M?JL=HL<(9>2.Q5^R8HVB9)Z@F/^6EFRL?FAW9LH.%-D[6DWCM$/Y!Z(R%\63 MVDO#W6_A.+--S:AWEQ?'$@\R6]_]PK$D*$7G#[0(K[!Z3334*,Q;;]@VE/'* M*<:CMWB2I:HF"M1M5I1YQ=)%^-S"'V@17G+/5 MD4.G#V(W"*.C1LU;-GP0T!\'$/8MF*4=')76&!R>[$Z-.R#Y>H%!8+CUDV^N M3N-)\@F#P$!:%RT;;A%V&G\$04T'6J-VG6"Y35-@CTU]1GRQU3C:%NQ)L<9% MF'[,<;7>=_8B/XWJ#O$HWC>(IY'=)-[^@X=0'Z-NJQG%O'X- M8&\%780I9<;')4)42SL$PBGP*2YHGLK%1@E!@39E]N-&Z7J:L,0 )&I)0SX" M;)*ELW$*U#:,124M3\,43QH,)G5ZZN[I/S@RK^99PZ>D:?J[+(II519EF-'# M(-279=-L8=.4?52G*%S@/,=?:>0D7)/?G"1PM5EB0%@>J[Z3;9+T]4D>9(L5 M!H3CUB_>92=Y2PP(RP=$+W("6Q<\^8L,"-,O645+<+: T230A.7]WR"Y==MZ M/8OX[\6E^$W[IJ&VH,;9XNF0L\9QN$G045G#$I[W.8X0BHN;'*]VM=_3.868 M@Q1_P@ PH)'DZ9S\A*BPY89V3*&$IRV8URO^/BFL8 _'9G@N-I)>L0HSAX$1 MA4IH'RK,--R[F/O)W;6?>F:4VZP)/?%!:P%F6U8*5%J[,1HH_WA#BJ6*_02 M)"A@U4"?*S01I/A@WBB7Z<%5A#!<_7"%%H9#4,=GL(\HX=BW09Z"B94R2L=. M#XEJRQ57[O:2%0OO%C4JKA!&SB)B@]<5.D!N,U%"LOM=9045#&-G J&E**AZ M&?NFB_'FUR"-'6_(H6]?UZ:OZ^J01 &@Y,4%L2!5*_OL7Z>OJ^Q0.*>_[NP# MY1F)QU6Y78>^9KA#80F;:9QCYS9[_H<.S0OUM1L>&DO+ZKQ<83^QN[C/QDI@ MBOTZ;(K)>4 MDW5+&;OXDZE+G/NN@RO26TH!I22QE,C ^C)P;TA2!72.+?HVWQ#IU:'S-]-O:@"21NRZ//8S58HMQU MJ&O7=QT/EEQM&]7ITV@'2ZHFSFI55*]/[QT<[?IZG4N?IV)$)%-]!TR?OV(\ M1%-]J4F?13(>FNEZD4R?-N\R;=LKNN,W!?IY1@Y.,7=L@SM FQPX7=PV#X"] MO>#DRE MEFH[43B1'%'[NS^G!2>9*]I\IX?=X9Y85[3VMN_)PRGED+:NU,P93B&']':E MQMUP"CFDJG?I) HGV/AU]4[OC<,)-7[%7,M[YG "NJ.J-UG1\![4<(J-7X/G M.OP^5B'14DMB'W941W\8OP;?'+M5>=X)3JWQ*^\'#4+M409X,L#X-?8F%XRX M<3><.NYHZ=!G\."T<4<_AS_,!J>..[IY'_ZY'\>O>'M"&?*!/^O?L5]1^![0_ W]\\O#[1Z9)'LF>X'SXOLUT?J)$;E& MWT=X]9;VV7[WTX_O:DH5.["##),C_OY=D%(+J@CBNJ=T4+YL*EWW]J;:7;!; MJ'ZB67&=&L\B6:U3M$.U$=/M^!?[I >U&B3$?%DH_@[>W+Q T?<+_/PV1@D# M@?[ET,Z%X5:%(4)X^3JDSM%=S:@_KR>W4$8QOH:0)4 M.JE?$#OZFAHQZ&G-'M!3>X?A& G%%QPZ/[=1Y.7;PU,;Y%^'FX#;_G +KZ0] MHDZHFII1'D/%;U:I$:J3\K@CB#@M0W5#PZ40]^$'0T^W,*$WB?ZJDB+9ILA0 MJ4,8_46RC.0BZVDU\Y@7DUG!\A-$")T,,@KG<0!N3S@.N(UC+3T,U0C+=L/W MTG0ZWTO8>USS# M1%\DL);,*WK[TL_B0*'/0F/00I\WZ Z /4\^F\R_-FAU@ MQO!PZ'5_6Z]M[7EG O0N*:RJLRT$SYO)AEN'7?CRI\*]N(5;$5 M_9+;7#[!%OQ<\&)Y=4BQ+.&=H3RY^Y:$"F^"=RS3^1VU?W%#-] M9/PSKOX95_^,Z^O8.4R1PTIZJX.TX5D7N&=7J2NDX[A9L8HRZPHMI"X/K.Y@ M<(4V\J9N,(<1O))NV/2 \ H\0\,5JOA' U_C[!\-= YO!9$(]'J._02HZ6$: M,E7@:;+#)J"?I=811UFQ@03@ 39^"- MVDV\O3GPIS)\)^IVC2P44F#UB9)A$JAMSK@^I7>D=.JAZ\#X2^:ZY,?KTVS& M129.I%K?-3XX\BC&P?7=[B.AC"2^#J;/^#M0*&4O@^GB3M,)A>Q6,'5<:C*A MK?/@^-5II;0J.&'&KT;K+22 4W+\BK;6K'0X(<>OAFLOWS@0TW2O@I^"DFK- M5;X)"OJ81M>>!=#U+/0N4 /-]S#0VL-@B.6_'%!?/3)SG^-%'JXF5;G$>?)O M%!]^57= HB_"-@'>9IT^B*,RTE*?L _A@C;\W!Q67=)P1%KIG<6SO^I?V MNX)PP#L:80G&3TF&\Z-G,/<[>NC!?+&Y#P4M*116L(0CJ]@C2@6ZPT4Q*\.<7:L0.!0ZFRNO8PK<1F-TS9;2]_T55T"=BBTN\FI'[A5[ /)S; MK&4-[Q(5]^%&X$<\'F(3R@<4H>290L'O'G$Z<&B=+V[")/\]3"OV'!>QX8C^ MQ,%%90E+6#Z@&*$5HW0CSU.0R\UEF.>;_;,A'&S;+&4-ZY2]%A/F'!-&/M : MO(T:O7R@-7B/GMHL+C;'OQ'TG5-?P$>;?$<9'YOQL9EV%GP81PIU!?$ 8'4\.=XOS.868PS=PI MV.\CX@8FFSOU_+U$]VUDP49'AD P"U-:IAH42T3EZ:Z-SIIE[@95%E9Q0L?5 M5%NB,HG"=$\/>6)LCQ\SFBO;.]P^?;:?]-GN.6]IBK_2[;S!^16N9N6\2B=1 M1*7:D98E>2&SS1I&L20R9X4SEI9/S+!ISF1:S&P-8J*QE'P.;@HS;6%45Q0< MBC+DF/!FV,7@MB@J./0O1]N%?%J51%9FM*\N%/R&*3[; @)O0X<(R4-M*E-= MR"#I'!YW:)MB5.R#T6 F+OZX)5KZ:ML\05[#LK6P,*\DISR[$G\KZI^RJ]XPI,X M9KH_[>Z?Q+?9)4&A#%-R?:=A423S)&+H \L&M:VOO?#W >TWXP!_8[4-<+11 MB)M+J#DC3$+&+:/FCC'K5(ZB:E6QA+IIN40Y$9WDT"]I&\]G5$88QD(N3MAE-Z,=;.@.$/(SH?* Z@=>T2/*GY,(U7UMB.C!BXRM MPC1P+B',?-:60UC(!=QQ1J'=1K ):7'&DR6@L?9*[SG0OA@3O+<")T]@49"( M08^215:;[M%QEO(DB]F_ZBS3PR$A&$WG3^$W#L)Z/V:XO+4DK(7BZS#/B*92 M2$IR18/-.O&!$:"3<<%/(X/W9[M!DE>BJ*ECD-(<'VZ#A=L>C^RGFI[P>)M\ MK@^X\1H$UVZIT]:![/\7K[4C+C*M5S*/\0M&$2'T8J M.=H!8CN2M,&;);QD MI>/M05_S+]$"DIR;,<*?$&1_.XM(-$#ZGDDHND4H4JXZ.$<4(-<)!)*(XCEYEP\$DH[8"$EA-HKIG#[<2%O-22[.*9M M)"2SY[1^"G+TC+(*D3_W&@W[>Q8E:5(W?<#S@-Q.082+,DBR 'V+4,$R=6<) MN[_W+V_MD (^.*;GX^;?)-.)A^^[H/79LHLM\9_P%=G25Y\6C.CATY>$$XK; M[)HQPG2^^\[IHR# T0,"*?BQ?Z!8UY)XFGVA:C$YVB6]9S(6''W-,JK3>@"2 M1D?HZYI,##2!\V) K_2Y+LIDQ;IB;B,TC9_G#>H!@(,T-"(7C]$R_&G#./XSP:)IEAZ9*8)I%W/-UX"CG!.D'VP@LAH$P+/_K43 MTT+B3%)T?+<(WRUBZ'&K(3E1VFFESG$)GS82'55?P*K$99@.R6\DMQC.*,(D M,L#/(T:DY #0%^09;"M;%;-'0ZCG94#C:4Q4XEM5&@(_@Y:V<&>6-5_]+T&R M6H=)SGY"#) 49XLT>49Q$-;=Y!<8QU\)X"W=\:W7-^]Q[PBJ=ZIK=:IS#>[6 MVP;R^75D"D-^F8];(#@>F=VO+17)0:&S4Q"W^WQ30LSVN2=RN@3]!M07\#Y& M[V/LXF-L+Y2\&]&[$;T;<1!NQ(%G\?%T!N=8 T0%U;M=GU]QT#EI/%7.FGG[ M:]WXD27@!]%1"F']\P"OV3]HXO,S]5BT,W([?L6\J=L+P-[@M6/P=MP\D-G; M"X.8ZF'X-;PY#[<,-*4BG-:\B+ZV\HCY("%;=9G=[]1!VVMUF9)UF11*)>D28_ M/2J:$IUDCI*RHCW=L_CZVSK)V0I[1#415/I=8&>=\1'T#Z(#+DL43YY1'B[0 MCK/N\R32Q;V]P#2J73BJ:# B'Z3?&Q7U?B?*(&$&QBHHHJ%#3']TA.3G2G#K MF/J\S;:79T!=2TTZ9>@5//P.ZED6TP?A/X =;;5J(V\,-F)8FXY#I/13[9?BI[+3-.8&=8+1UC6M+9P=_ M:4@I[8I ^[1VK6GMK2WBNLOZ;48VLV)J,NMN_[0,L]-[;IK7O;79./+SI_ ; M>GWL/Y(OEK3[RTV8Y$T)AF,!=]";LK_Z:A.1DYIL!XB6>' ^+DKE'UL M@<@7\;"_!M@PAM3V#*)X=P+CW>EKI%U_R_?+>BUBZ.!+L6.YD.+EZTN&CJ!\ MQ5+"$1#;KR+*9MZ MHR :$NV'FYX\D)R2\TBY'T5NR5EEYVO/6#F/)/QQ)0'Z_'QCD:>SSLVW;48- M)2?__;L@1031(EB%Y! G98+8,\[LAT&Z?0B/_K!=)G[K]"4G]"@<:Q_JK< MKK@91[)IKU^F' @V MDWF)\O]"87Z3/+=%K7&-06'YF8C!IZ\H?4:?<%8N>;'ZMLL,"M>.FSGH?63 MX8J7*:4Z?7"X/9%O==FX%_.'A]U7W 6WP^SA8%:WA2'VR'1^DQ11F%)(VR I M7,@^OE^(Q59$N,J(^5 _NSQ9T7^IH,I;P]:S%G<$ H2F1!-GPD>RU1&U27&0&V(D5">9TQX,M5 M+117&3*N*LI&^P6'2 %%]:/56K;4$ Z8'-0DHWT.O,^![Y(#W]ZQZ#/?SR?S MW;^ /NCLW&>4S_ PT^3Z4TN<8R0AW;KZCO0EQ(Z=V0"VN[YTUM&QFC0(HB\? MU0%&X]B8&M)'1\Q?C;Y^?=F>KK!5DZ-&0V+FV!GK-$"F+]_2$=9J=QI4U9C*ZPED-H0,XU=Q7[+GI&' BG:,^+PQ#PDEW%MJ\('<+3BEE7;ZD M#SZ,F<5>!_7AM%+6X0=+*]6,1SB-X$K\<.N$^HU%P6GG0HU5/VE$<)J-NI)* M*3((IXF[BCN/(J9K7-X?]Y6*PF(9%-5J%>8;&G!C_V;_0W]5R7.84J$:A%E\ M,JEE!8R>KUNHC]&)B*^>L50]HV=38;4U.AG*4*;#)0%@DL7TC^L#F)/R,LSS M#;DB1*US07,M=5VD0+T"[%!MO07\Y0^.1@KP;;VFI>3>$P!AJ,JF^5Z:/H^H MISPB34+49QGY+".?932(+*/!MN)JI<#HXYC!TDE5&]"70S18%V>ONJ$-3T.$ MLP*G21S6O:NW/R[VE_ \Q5^+H,K"*J;=B>!.A)8+&_4/=(+1F_Y:3?]CS]QT MEB8+MO-%XUM<\ D] ':;13G]QA6J_[S-+G%6YF%4_I&4R\N*,. *Y9.B0"4Y M_+QRC2Y+M;/"X.ALOWN%UKA(RN(]$/37TWH%\XXH_X0&%Q41V.2*+FZS.S0+ M,YP]H2QC$10^9ZC.[0'<^QQ'",7%#;E3=A&O&WS\:/+^P60*&FLY]H#2D#U1 M?=0?CO6+JYOP-6&F\3-FGP6,6+RF^$Q,P^(.AQE],+T^T&3#'E"$R)U)%-SB M8G.1I.3+"WH]5X7L)<&>EC5+B_A?Y"2QK:1[1.ZH*$G19U22(T?.UQTNR,^I M)D$V_SDA%]#%YDM!6S/NXSN3^O&)!!636<'$"8\^&C\U'K74!$$2T]6\ M1?SZ6[2D[0(?R UP/9\CKF0P"X0E)_G5U@2MI1V['.M+\I+\,.$ZR:'3#.-" M#*0H89Q+_IXB9G(3O6>%\S+Y-_LY%Q_Y5$N._YH]IO-CEIEF.H(\&K]DK3G/ M?9Z0"WT=ICO5D(.[<(ZMJO>/Q,2E"L@TJZ5U0MEP.F?&$ \1X1Q;B!R)B?LP MB8EVQ8&>/] TO*_D]DZ-)LS.6L<>*! MV,HH':8&V8>!H'6]6J=X@]#6DKT[-!T H\=?8C";]T(<,+XB$F$Z/_IQBVU5 M671 E'@F-Q'.53;X:,YP&'=O-E^&ZZ0,4XEYKKZ ;?RH9'\-H_#" RXPH"T\ MM*>_7*+HSV+O3CJX0N#H*BQF&>_['*V)4K*S?:Z_T0[T:'>;"[6R=HO9V_(2 MT203F:[6.,IL0RR<+0@4JRLT*R6.4-%0JS +7^06#S8*-]GC)C\H_/##%[#D M#($#*+FUVB\T!'QO60BYPXXV+#"L'6T L-V. A8: KX-L0HU/!L6&-:.J@=^ MVB]D%-^=#^H)3Z*_JB1'!& "8KFA3U[3D#CUMJWI$ Z>\ 5L.2&.([BW65'E MU!/WB,HR9;DH<''4?B%K^-XE&2JF\]IM#D"K<;QIZ.=)25V,?'!?#3 -7S-[ M7VPD&J+"S&%@)-4>%6::QN@Y*1*#\"E>S/$ M">&&P"89QF.]O2&FL?SFJ]KE7*,-U1 M[C:;XWQ59_E+R*XVVRAF7[(9N990_(">45:AYE1CV&!WJOB4SHLOOCN?XCL5 M@P%WT,I=H5=ONJ4]%7=#HV9Y%%L5[A'=LFI%CR"Z3*6EJ8:.SXH]RH="@F@ M3AGGM)Y3/(^HT374Z0JU.M#AY7W>&-]R1?#">$I_W:1375FTDNMH6]H4,KG" MN.9HK%+\IK$CC+ML# L%N:+2F:(J/(:N05.TV4G;%('5BN^U0HFH_IK-&,A8]LV9F#2*;\T.1K2B6Z1]O7%8,*V?<'&@5NZ5>4D MF+#P9VYL&C2Z;AQ(:PHP*>&OXSC'H^ B;KA:KN[E--\PN!L9V]>>N>((ZA3. M =HS3)=!W(<^\;:E\FYXC_OB9 =B_ T&MKF!6(_)&U?9NUYX;0@7.0[_AEI]H=BX,XL8JT@U>0:1!W;I%/L:10@RKH%CWY-8&N7!;] MT*R/5E4:7(SC9T:U5JOZ7(UC8DHS+QUH\#X.3O569-;V/:LT>!P'K'IK[QVM MP>OH],-:G1O0:_1,KAELA AYZ1S=.SYC :>ZLC.IIOIU9EAI&"#-?VY+]/NTHVCAFA+VGW:4 MP^B?=NSG:4$0F4TLJD>)5D"=U^8DFC;38/!P?@ M++.8Y+@HZII 'M2'$9::YA[*'*COZ+)6B0DS''3B"T3N>'1TA5]_([0E.DN2 MA?F&Z9*?<4:5:7+)$- 6.VV(@[/&+UJEX5[%EK];(1IMY_6E[3&Y(*>(SZV2 MT58>(JAAV@(D?Y'@]7!;W0]?%!AQ8'XQQEY/[0,,DY(8V;.JI,E_3UCIT+=> MQRBV^WRR+8/P=N9DG*7=.8%#(GJDX^U +ST)#2-M49R&2 G'XI<0B743V*2A MMNJV1.FMR;+3$5Z7$>T=>S2KF_Q'8UH<5%JL9*NS+&(R4,Q-S8-\!UP'NL?^ M@9+%DEA>DVI1IP$%%BK"!@PMW0,L6I,ZA\Z(PD#[:Z4/L*,-!T.9:=\ M1CT3J 7I&X,9^FS"+J.]UDCV;8-.])D180J#'C5]_) M'!U].'G% ZO^(-,( $NB-23/*$B88A"D5#/HMQA$X3M#J0U1!MF7B@RF5.1H MYVIEE[4>Y6=-"698R@@30-0A,[6G58="B7TX\IZ^ZD(N&"V4:?,5FQF;#:@P MMQ7.B4*875;DSLVBS5,>9@6YR^IW<=B_TOJ6WC\2(3DT>C\V&+KM &ON)"!+ M0NYMX:%FS%J!;[0YF;O^U[23URE72)BIY2HN9)^.,RS>=L-\II[/U/.9>H/( MU!NBK\J_O*E#M7*%AWJD"Y#:?2G[&OWZ%H)R6K9!LYFJ+[G,A3/0J_?$K60U MT_3F,ZXYMWJ&2Q3\&A2T[^B,OM'*7,;[1UIY/T=UD#Z(41DFZ?YJD[O7^_V> M43>[#M"]N[T?=_LIR[$NNX?-T[6-6S0,?Y#GM4,OBDA>; MPYAMZVM&[ /%LY@^U/,Y7*%&(6;B4]X3[/VC8K71E,CW?M3S\:,V7SK8I,AS MA91R?ZS@AG?%"2GE)X#>X HM3,0H!NY1&G*,PDIN),Q)W\Z6L>;-^5N MFF< M 9D5%!3HEHX:R%+F?3!PJ+Q[Q8Y[!;)#(,\)?*M-N0X('6.:%9T\HT<453E[ M+^CZ&PU;H+BNJERMJYKKI_.3Y.L5?9J;YW+H!G%.;8$C4X G\+#[M!KW?UN-Z(D5@_2:#[<(XT.KX(6:!]J)NZ'-2#K938T>E15_V MVA"93(-WX;PZK?1M%Y]7;PJ!Z0TFA'(_M@$'%?IM1:'<1&U$E!E0$PIF(;U_ M%Z0TZ[<(BJ,'5H-9F(99A(C%A% 9)(=W5H,XJV-5!$ ?Y/! ?<4;;?KA0 MA9=@DX: AY2?P/,L8O- O2'3^9<"L4L7A,FK.9:>W.(*_(N-I$Q#8>8P,&*O MBZ@B\V+2,/#@O]PKFF))>G%!HCPBK#%1F.GS"'S)2)?(JP83PL=ISR=.JW(3 MX@X"SA5ZR8.ZRKJ%*U%+15925WJ#DL=47^["8$\4R*^O+Y5AL'E^2OY$?0D-0SQ2 M*OYO,&647X4;$64ZBQOEY^$&*VZ X9\!9,%\W69AAG469OWC@,BK51&$61S$ M21'1W,& X--#[DNWS]G,>.D#BN:]=5$PFZ8-E+,3I7R5F7VVA?"! MWJ,\@H7MX8L,!<\'1(_(3F8_D5UZKXZG8!&+L>76.]IVF>'@"M_5MLOXR*&/ M'/83.>QX7_AXX?G$"WU=IX]@='"!J=YNSO&,@O6NC59CB1"VY2JI?GA>H8MN MNK0-5]&+IVE?9#(5P=;31]M,)#CN_%:OXNI&'4'= ?5^'ZU^G\N*;.<*Y5=H MC8ND++8N^M>&'FAL#^#+B>$=$D49@_H&:?/5)@1D2=#I,V:MAX7B)@8+N[##=4J MQ142XL%6X'Y $4J>*32?40F#7C3%- [D@H[K0O.G\!LJI B(Q]N ?A?K28#0 M\\?;@/XQ3 D<>+5*BH+(&Q &XCFV"B$A[T'Q\6JSBEE,8Z)F$&J'Z7V8D"-P M2=28,DQY&(E'FX6<99?R &6_M%1G4G]#[-* MXP,8(#+SAQN%_3(LEO299_('31Q\)O*97/.3\C+,\PU1KWX/TXKGBE>::Q8K M>L.PSED%>\,ZHZ8TRB)R)TM?6)'3]H< L#8E"-D]0+!6ZK=>Q@NU>X=]*76XM M*W^")>OR!* C[5\!C>999GNOK]8IWB#T4%\#RCV'S$./Z:I#SU^?6O M#7>*?R9DP?F&SR!-0XS">+2-Y*9E5]<2IS'*"ZI$<)MDR*99TOW S'PZ<# 0 M2_15^01;\$OOJL:Q]ND.-A5 Y$0\W"C+/%T]:]+&<9 MX6 K<-_A,-OYC250-PT=0M<=WSW(K>Y!=K"@#E:@:T@XUCS4*I>6?(+ACCIH M'2;Q]NT[HGL=D59\K!5F#J-'4+M.1U9P>$ Q0BL6B"/L07T.."7K+VZS$N6H M*&NE>.>)$SY&UF4IPS@S._ ^S#FI#/*!UN"5O.G.&V@-WJ><*!)$R4QP5EQL MCG\C:-&FOH!A_'9/X%*7M5AV"<<:AKHD#(SB7;/L%[T3YDF4\%& 3O15"1!X MI_,Z?S$)TWN:#D33#L7FF\I4%RHM-, )] X-QA]T"HB41V03C,+_E!-MO\HW M#*PZNB2*/_&&VVK?_"4C6G.*XD.>DD1'E4]PI[2HE5CRA4+G4RC40G_#<*W; M%2K):XG:ZL&N5,[TQT>^L:!O+.C+\E0R]%PAB!C5(YJTR$)S18* :03P9K@B M4L T@9M_!Y;"H2L*5FUI%O9-E^KBEX0FP!38Y=I-C5*BCD*JA3\VS\LZL"I7@&=YN M*7PPZC3G+;NE[P%/DSQU2)^29^VFAM%&5G&G3\D;!6%:DV/@1C5,?8$FBKNB MP #P;? WB!I N**\J%%&L<['E4.ES#[0!@JNJ"]J!+J3EAOH4V:LZ+XP\FAI ML..*DTN!A+!>4*XXN=2.GI;7+P;^+D@KZ=W;U3;PIT'4B*->,@^FD_(K(4.F M$["'%5R)5-:O+1AAJDJ K,K6%>5(V20[%[&PU-;G.KXEWT%I3"'$ 2HR= MRDA09R!(]Q '3388=;J7#3MHQ<%(!VXVZ,H=!S-6H*5PKE@J 'Q?,0V_U:,K MD2,UFH!Z%6LP0S[4I,G0@@6L!DPA<(&F*T:'&GE4:^3=$F:!N1X74* $UC(__%IP]> M]+9>#V@]KA'M65!N[I,U^@">^X)N1[%UC)VN;W3O MF%+DY5&W%/*O@T@B_Z#5%'$5E=/\$>7/280:Y))LF"D8F6Y0?[YHE.B@L:;; M"U)HA!W?&L<8;BO6]4;H827?>,R!)EU$H%-I/M\)^^FS9>Q4%#!)KG3(TOOQ>Z;:;G?3$NJ.6$EI67LY&@CZW$G<>H*Q?C- MD6#*^=A#0I"#!-"GQTX&>*\L977*%=*TE2T*NLW8\2T@U9*D.GO;7+GTQ>3J.5QE+?C\_EV0TC3O M(BBJ]3IEOPG3( J+93!/\=<@R>:8K+9U1+ LV?^A!(GCZU6;; VO^SS) MHF1-=U4F3M]GUMV@99@MT@W-.51(O M9MA]11\[-!\[')=B;53*^]".^Z$=DV;[6*PO;[:#S'8%9<0Y%@$3!JIT.N?^ M$U((H@@ZYPT4^\#ZTAX'X-9A?P01+LKNWAK!6C:=,%*PO&_%MF]%L$6*+A/I M9EOTA&Q?\5!P?[R:80V#5Q)OLL)YF?R;'5H -H#91C%C0%T2%N' OO^]I4=< M7]X= D#Y \U:^TNRH:S5B01>_D#O37$@$_NQFJ6U]*(EN3PX7PP"/M0[+M.L MC[O*^W.\/\?[<[P_!^"V *M7SC&+LF>G49\^9W?.J0YV7JXR];7?B.-8N M_'U^A1[ZGKNKUL()[X1TFK,H0E)TIP(3J)G3SY=>PA;!7<:F_9*$^?5G2[;! M$$.,,5@&U>KJ MO(DO:U7[6U=?-_WJ8:>B&FI1KZKS\7+PH_(Z++AJ+JS[_^ MW!JTN]V?_T_S'S<3&QZ#1W7KU]S$MF?7EY>OKZ\7K^4+PWR^+#8:CC:)..5!]]&IL8>+14*M4NXZS](;RCJXMG5Y]R;_J,Z5F5K]4F+R!?/QLLE MNP6_*56"[:H;NU"^5'7+QKI,%L];2MC(X-GBY?_]]C"0)V2*_8?5-UN"5Z_\ MP.^*JFNJ3O[OEZ>'2]O$NC4VS"FV87:AK6)5*EQ)Y>+BI?#HC\T32N\&7AD^ MFFWO*Q6D0DDJEOQ&'$NRYS.RG,0QMD:L%?\._5'9?]PR[4W/+VZM_,"Q3?*\ M<=(;EW!_.9Y-SQ7+@3$%>FX:VH:>LSOTEW6I4 Q,KV7/S'"\T#LK<'E'B%6T MT-LC;"W0HEI&I52L;\.7^\0*S.U0F%==F-M+)*H?(U%:QZ\]<72%F(HQ)2N_ M?KJ]OU.A^\_6A6Q, X2*1J:W4'[_H"\*4<.G'6ZLS#K1G6DI;%)*A4OR9A/= M4D<:D>ACQ&2@MJ321<'_^6RF3A:_5O478MF&:5W,"'# 3)T1.F+VOD*EO/B1 M[)@F2+AY> _]NRO=M%1Y XQ4>74\;_(D_$EZ9^51!;YXQGH4R%+VQ.@.F'2H#5AY2;'--7*Q "VY?TMN>7"I* MI6*N^0]T,R%8::)_('1CJ[9&FI2J/M'^+!;^O@"]*Q>MBY;I<0OUO2)+<-J;$QHCV4B)_ M.^K+K[FVH0/>;&D(/E M,9ZJVOP:_>_?CF'_,E2GQ$*/Y!4]&5.LNQ?SB%W.(XN8ZO@7Q'YGJ?\EUZA8 MF-F_H"DVGU5=,M7GB^G9-^TQ,]Z.J*$0';0Z?X8E'RE6J[ [VS7ZB*EOYDTX9U1J%HO>Q M(E'FT3$5+,# UQT=:#%OP_286.O"Q+_]3N8YI +N D)("G^L68 _C6*E6"K= M7*YT(YEN/9%GU:)ZT'Z$.YMZM?94LT\EAM0'D8&Z\%)39[(&8/35T*@E!$3K MZO)%PCUN38FNP%_[3L//.>0J[E]SH.FOQ^H;40!4FN6-07U[D:J-:CW79!<3 M[DF;23W[3K5DK/U!L-G1E5O@KI5W7^6:DJM?$W[[K2$[T\7K@1:JH=S!-6OE M]8U<\U^'?3,=^+OWU@JY)OWQIC??F5BF8&$_D8O%4)>28MB20F1UBL$F]SZ 8);*N6:MLAB-W_L/AE,)'XYK:Z4^G$9CM^%< M;1C.Q]1I&].I:E/$6"U=H2H#A .8"RJQ@IT'"^Y:5S60/*9#0'%L[TTU[N0> MI#>-J',#?#J88).$])NI&X4HDYN-H93C$2=CP;"[ELMQYX8)M@?2AS& TU4+>1!F>\X@E(D@O \ M@FBR/=H(NI;EQ.L]"+ZK?*%XM6/G-PB;6)WO.3;U^ZB!=,011--%1YK^^HZ= MKR78^62F?[<1U M[2*"A2;#EF',V!F\X;"0QNU\LEG;L_![")^W.-PKUS3/_ MYYVJ@Y4%2%@:599K2/>Q9=\ZI/6F6E+84YV_':P-C7L8'C@^PPG6&X5;/+>\ MWWTCTQ$QDS#R%O-4VVF>=I/.C>)5[KT34%XZ 65OPL!:DIEK2EMX4JT?7^9? MP'2:@+_]@\W5 /H*O7\AND,>B>W.0]C/:," _:+M6#:XF.:[9][-8=]9XHM& M.Z[!J8 G>N-O^"_#]-NQ8M@5<6:L$C)C[]VFCV?L/OI$)#*A6"']N 6=6^P[*JJ?:C1,>])B#6*?5U*FP)7/VYREZK'.IR+^/3[R!"O\R_J8JBD0Z8\\34 M!\[(4A45FRJQBIZAL6H)N(Z"81+U65]E^VVN@ L10W^&ETQI][R0[C<,HEJU MX6V=-UESZ,P'I(&ADF_+;.1+"FVNUFT(9 W*_U[ M(E.LZO"N+X9I&J_TI7@&]^QYS,DL7NP43*^52EOB,0>=S,[S?&8')['$+T!W M-Y.+-:E0ETI7P8\AT]/&.H;AZ]^@S\_XF3P:]@8YMOIC;]CSY2*?3\]J975L M"CPA3:%W$]J>I."Y1.691/1<\Q9\%OJN__VI6"O\4BKG4:E0V;BN&PJ?VHYR M;MN MS'/+1D3YE&X@IQY&>#6'XFB:HBWX_5#QBK.*ADRTVT+'WQE[L M!FM]PU+I"SN+_)@'U;)7B7@%%FW$M)B?]F6*G:VU"//P1%,@>F-@]!9HW_C3 M4%U,0VAVRT\;#0> 1MQQ_?E$71D&UF\@FJ?.- F#LG15B^/*[M)9_)9<9[?Y MW>7"3A(BXGI+",^'ZS6PU#.\5)?\O+!Q32X1N=@@4K5P)4N5!BY*C:)< MD BIU<9D?%4?5X!ANSH5I,1"+^"=T+@^TB@[P$C!],RCUXDJ3Q V"8(WH2E= M? -IX*88^N]OLF_!K$V3FK$$Q(L%WVE2^K7%4K!AWA#;+G ]83LOJ+LC^0+_ MXLU2)2S#TO^F M*O3[6"4F8CTEH7LFVMW?5S-#UW_<]"^MMCYC(5__FV5CTZ8>37/90_]WRWN+ M;BJ!1^D(EJ]P[_C?_9=J4G%,@<3[.;YV\UEIQ8->7=VG3/@X]9LIH&)05>(U^F)C=%UBHM&5Y3[PS7Q(=]2Y9J?U91Z\XT4GEQ<\Q_G ,^2AFCQ3 MZ][]JL#+WJ@,5;TL%:2H4^I+&/K2)H\^J%PS[#=NRS>7H2]%E8B3?I-LZC"6UWHWGE(C54A35W5O5 MQZK2U=MXIMI8.PG";1W;*1'QB=A8U8G2P29=>[1.@GKA@SHELH6D,)\$Y3:. MZY2(UY)E9^HP/=ZS)S3U()>^=HT:DDB5L6"VP')%8YV3AQ-&()$^8$B"A,F$R239@P M&2:>,&&.8\(FEA^5_YR+'8:CTNEK)MTEFE?KPTWUUR_N#;FC8#-J@&9 M\%:?LH#16<(HX?6 D'1D_Q@!6@_3>C"P3LNCAYWW\67^1=7H>;!TBAQK41_Y MNSZ"ZT3QCKS@W.#==[A+"(2/^V"1AO1RV$/"3P(TV0!->C'+$$F3:+%U3I$2 M88RYIEM2.N)(ST.@"&QPA0VNY$:PZNP"#,%BJ;V1ICZ[A[GPC8"PD7@DWSJ> M\Y !@L[9Y^=%:3]V#(S?_&IEO1E\]'^_4T'+8E4JEJ@7?.A#"SF%5:1A+VW- MV.,_C"_K4R\A7Y8>;E%-$CISQ9=EH7_66E^_PBB,T70IKE:@F;+I.T?KA4 _L!Y.E-8 M9A$7_'IF D39!!%789SV\0].YQ17'\W$$E*A4[*_UMPRIX$ESNV3>QZ23X!6 M@/;T)*V_GKE45 *WRU7>]5DY<>AR51PO%>B&'63=TXE_0> [57Q_V N:$_:> M@MYZRSLZGB ?Q;%;A HX(1;)KO7""W2%"N 9WUE1 5QY 7W34!S9[ID#8KZH MLLL&WD4/]$-UJNK/O3$[#FI,S-[XWC"4U5_X]TRBM.R^H>IV5X??<1JZHT ( M&_@2@RLSL#_N(TQA<#/6MKD\#\M$P%+ ,BO2]Y79S2I>V[99$IS MO]L&.Z8\ ;Q^M^"G77WFP+3:$T/)&GZ9AHTV3T="->O1;M-]QI)70%Q 7$CQ M1"#>\&WN_]-C6AY$D)@Y_O+H@3V+D2;#&1+'F M[:[YXH#@(9;5DO]V5$M=9#_WB3G%(#5)&^M8P0\VIPI@D9H.@WL5M\YI@DZI<=P:40\0!Q)$S;!.5 4E M,^+("2N%#]VVA6,$4=+B%%:DX$HJ-*12(?BQ;1)%M>^PK&K0(8](+X;VHNK/ M#]1A?31,>]*:PIMDS#>]W@_%RHL0=X#D3<00UFC MV+[.0)$V5ZP'/PKB'="8]"8YBC&Y]NB^QJ0@[Z%YRH*N M3IVI=_W?V%1I]O,3H(K=_H(M]N7G4J"<*Y1OE^4#(CO0?N^%F+KZ/+&7=3G@B4'O[DG MGP,A[R;C1".58(J]1;]@BBSH!,$4A]04B\R=@4QTF'O#W4ZZ.)F.SNWR1!&J MEY6>/B3FM#?N0D]-8MEN^2?!9/QKGI54K2#!O3'%)KO@^PSP_8HR%'R?";Y/ M1KD*OL\$W^\;E_WS@3QCK^?V M*3RKP+% 5X;1Q8ET6]0T$ZM._&=KK.0U"8IE)>FI2 %0K/SI'GZ\L/N"5>E; MNK*T^6Y52]8,NJ7,^C*'+S/#PMJ]:3@S"YK0''K<%GT&WJ/J#AAET"'WA!Z& M@JP?07:<:4KQ%+-5PX)"(T'#@B%-@$Z [@-[(PB[#^R-X*,)1%'6$4H/(.L" M\$V'#L8-C8"D?\;/A)YEZGF>7^;+R<&Z,\:R[9@P>;[6X!M>[\?H02'V2$\+ M&RMZ4IRSF?8YFT?54(+<:9.;$_[W/1L!B+0!D9@OM*BBT>K+ZN)EF01BZ@-G9*F* MBDV56$6^ ;;1I]XR,_NO'FRT<^)/<&:B,@R*B6(KK.#S%O+Q"L5C@N+#3FVM MPAR'-WB#(5.A H8"AL?3\KO$J(5B%HKYR%!,ST8L"2@>%HJE+"KG0T*Q\SR? MV0*"R4-PT\1F1@JFIY %!+,N!9.( '7N^QLC0' O7@2H*!5JA];N[SA?P/DP M$O70ZQBU \1[!/ $\(YJ1):EPM71C4@!O P"ST-*EDQ( ;Q3 %[BZ9-NR6_A M-I\"\@[KJQ03JV">GI4GH)=)Z"5LYY6D8E% 3T O"O0\K"0'O4+YT IW@!U% M;9EXI.)E*(OS)-[,P&_;Y!X,@@PS65*\ H*G!<$,KM8)")X @Z'9&?-AU7M:.\CUP)M]/]TLMJ M[;/34"MT&*)$D2M,_K"MY2..M=6P%I"- .IE*>N<*Z7W\PPVB64!U+^G+ MBYUU;/W=AA&:6/N"]1^]<>?O^KDRP,SL@"50!J+_G(B\&9##+^0VA9<:*T7HB)GX4&W8Z0 MT-GB'BG)**FS $7V=43(@E_?-*:J91GFG)8[Y)N:&]?3P@:1"LH[&3U!&A\@\B)H?**&K2!L)C0CHU5&ECHS MO^BX:=)Y#O>=5N M2M%L]] ^PKC9:ED6L3D/J42ODKUQ:)FA8N32YX**'%KZ M?J6" N#BT'38;8Q>IY(:8XGNL"_4^1JCUZFDQEBFM:+ FN^]ZL2T)NJ,\=UO MAJK;_X8>.2:GEAU582M]]MCJ?<\/Q$_>Q"5-A_6#+N\=;=S5+4=C)RNQTY>\ M]:2L46SS290;Q[C?.M)YP^.)P#6BT$,]YT,3ZQ9X/O1LKB_SX!UO<]+R@L#. M0I='G\%<,^PW6<372:'FS BY<&^7Q9*A3*ER;9R!N\\^,MN,)J89/QK[B?;D'/^ MRY)K?T@3GI$Q1G35"*!JW5SBYM:Q4=Q)6%.?X8(,OR!F,N,MN>,=-;\_=H>= M6S08MH:=PU%^P*5"M5*(^5^1>"3@T_,7>_I&Z(R4C?T1V<*3\I( MQU314%?[UI!99@H-6>>0)U.?*+=M\#%RKC)\>Y'JQ5HCURP6I'\Q0;5LOLG3 MK-N,NT>&"5+TUQQT7R::-L,*/75T\=V:8=G_[O7W557L"941A7]Z_55UJF[I M"-[6>KO6SU A9H\,!52@;?HO>"&FK&:8.:-,PIMBG"H"DB7X\,0QMA33-@ M]V1BCH M58!#HUZI_?(>I("/FTM;"9G$1IVO61PU__6]]33L/#W\@9XZ_=[3$/6_/PV^ MMQZ':-A#()^'((11L8QZ3ZA8_:1\1KT[-/S:00'1O1#;K?:0WBXVRI4%I[H3 M<6F;U.SPL'K)>&W##;G6) +GC2@?B\<^>[KC M>GHK(+VFUK,TA3=.Z,\D!<^E.<&F1/3=T5K,-5LS4]50N9!'])E0T!Z-'HG( MSOTE93I"\6.52>.+*O4Z#B2[2I[LJH3(KN3$%@B7X5/K<=!E(N0 TN4L!(N] M (,O6:B_A_[T_H!V7WP^+@\?[C4 G+8QI;M&Z*CO5! 5C\;%9EGJ+NC0Y^ > MC8CLS!!E&@0I2N52E49TDK8YN9I94#A3+/75&4%=VHC.PAM80U\-C8I?L'^[ MNGQQE%%_ZKQAV6:4I&ZR29Y5B^+=1MA"UHS(- 2E(%5'JFTA><)4[&>O6XKZ MXGT*S/L1O72^L++.9CRNL MJ[EFN2:5&Z52H];X8$)=\^!<^> 3 S<"2\( 4\)$?SFF:BDJ6[FF E<-,@)[ MS'S&NOI?]OWS*6'S4_?BZ6)P@3K3F6;,82I6H4CMB_7QGC%T M9(UFG_;BAG M3-:/971+44QB6=X_=.-]<7?Y7,LU2Y5&H8#ZJOT#;+B*^W(F2'MF'ZP $)J',!*NKU\51.6P39]Z,TUM0(H8\CJ#%Q \D9D MQU9?J#<&JI%8IV4# *00Q52XIM\GAK3FLL6(Q,<, .S_8CHQ&_F2RMR627 L M3KPJY)I7E?HZ'W[>+'(?#$!1?V+H<0,Y5\5!()Q/'V7]^/STMHAH_ M6]">1F9T@$AG(\Q3&UQS:'P @7N(8< ,GT?O9E3\[?62 8@7DR4#>;$>8A(% MS1S3L#]^Q$5R<6X:1]I2>,5E^)A2E$ M]OS&:^3 S)L:&(N_(#!B5-M->B%8GB!9PQ:8-/3GF]864NFDB1G+#>;3D:%] MHGJ.MRX^>D%1-HWD39[0K;<(6.-UHL*5)?^L=#UYJR:YL6^2^IY4F!=+(P:> MW:5^*<<6#&!R!K8A_\BC_[DH%-$,F^@%:PZA"R?(FH2&WPY,[TUC]@#HXF_W M 9=SS7Z_^_78PQF",/Z0C!T/JQ3 [_TDBN28+M)5A7*%I>"_U\?MDAU]P^8/ M8J.'AW9LN^[0.G2W)E>(]I=CV>IX#N_IZ@J-6X&*FB-Y0F#D\(X?(!@(B_)1 ME1E82OE4_(PFV$)C50-EBS4-;M)59:J#_W94JH%!\8Z(]P"TN5#"91H3=-=E M/54T)MM?[_HI7>TF[Z/[8&\/G/,*Z@CZ5W#&. %=P?_07C( ^SQZ%']%> M>.W0!7:+=8)U$ELV:A20@N?6162S*^&4)=?[;3NF"7USE_RI;+"Q[5B["322AX #=3U;8!:6"DR[9IZ-2IU>9N MCPEXN7-WR91N_0(?^1;;V%V=7F.D94-!T_;)@2A7!_$JA-ZPIX!W>8OHR"*@X!>-R MGJ>* )H#Z4D'_(R>3>/5GOBW+T O$-8WA8Q5G66KL-!2;D/?RB.;50'VRB,K-L9RAO!8-.L?\3\[(=?'(M6Z+623E.[NMJ8 M8KO2^TXX)C[JN_^S>_:KM@^DA,?0V))J=QH":[Q%,-#P5J@\4\=A&ICI74"N M;C"-Z5BN4('WNMFT(;EP()?HN[0Y??FK"J^FI-=A& ;%\XMJ,4Z@=7)4K%&^ MIZD>]&&Z!TS!IF(ANFRC*ILB4>5/^'.H0!&:QYH0<"=\?OL$%&3RWTW9VBZ. MP; =?^A?*$O.!!K-@H;6=,3+[YQ4>. Q/N_I*>CE?#3",L_@%L=79%D0S/, MZY_&[ \\^INC ^G*;J9XW@LP41*:!+W2_WEDNS/=*@CO?1D6C6%>^8#&7:R> M8S-^ \;+(0O,:L("I[2J,J,7>RH'\)%54"G6K[GNX]UJ-KSN3"7%8 $S^L@J MN?TMM#6I6%ZA<3'7O,H7BO5\XZKH4]GOM3?M+#!D^1@U@]%ZV0TJ62RZ8"R' M<&A/<04/- N1A5%_S?7OO_P>'FUV.R#1UWF]\*Z8]. #=FF1$;EL[6[XE%N) M1J[%AP*OR"TV@?H_GXPED/7N]?4;-$".^O>/W[_E@CM*V9/+':7^I^6'R2)P MV6_==Z0O3YW6[U+K;MAYND98>P4G_1AL^,2\_]YF78:S^P#<)>^XIJS30,R%!U&OR51AK M+01&WE1NV;7ZZHV?F>!8\Z%%GUB_^$+/X]'?/1MAFUQH8#!LI^L'U%[\.XL7 MK$;;F2[(18%>Q&+9Q+8T1]ID[0+GN/L;XZ>''[VOM9!936VZV!Y8=Z>JF! V M(5Y@=:Q2+>]OB_-VPZUO04MMRD)9,[4Y XE.318FSCW1#M=!@@Y;7QXZ=,]3 MN_0J37<1R/T"WTS_(PK):=J2TN0.5'*_^G:$^3SZ M!)BF_WU>?\0?)QW4ZAU/+;,Z*?$W^>Z+O:Y-IJOI4)LGIK$MV>NT9F8];3B+ M:#F,?8"?22A>W-76)8-M=#/9!)0*%5 "Y2OX7[7Z><&FZ4\P\RIXQ]R1&3$3 M)%- MS"W%I0I^2G$'<(6^O1=QXX" M+2J?%RF,0W@/0=_<++!.:)SM2 QP (<3^XLGMB&[ZTFK]E.S%#JZ\Y'LI\$C M+(7#H"E$\=F$I@F89$++$+\0=UH>H$GW4RS&82EGM"SW:7+08M*;X0,4BB9; M3#3"&F9[TW?AH2_NC]!@0@CP$6:LM,8&0>:A+/$;UAULSE&Y>,H*QI_.9OCX MA(K)%G=8QHZ:1/T5SS%+(+ ^(58+LRMY2YE<)IKJ"/Q2[W[".GYE<_=E"MZHE M.VZA:6ICM'2LS2V5&2U+00SR67&W'=%GGHCE:.NAV=,4R&P^F\6&$,A"('/3 M]?,1R)7,"V2Z^%6)XCG:IJ%93+SV34,FBF.2$Y6I[I0T2R(\(H0J/UT_'Z'J MI@^>1O[@QPF$/;9Y6R0/)BPP_<[L 9](3>S8B?/AXMI)F$:U#_FWXWXZ85N( MEHM/).HM;"'.^YZ5:4]0BL)SM'C&K[G2^LY'[B8CL%0.[6.;>F ?BJ?!XM'3 M%%"!J6B6/EZ7\(N-NGMC%Q5'$0>%!U"RA43>-;AS+9&U%E;*9KR_]ZZB"/VS M+*'@3OZB>L+JEY7/*988>3=G.U89B3%C\6N-^*UFI][(+C@(J4OR46F.M!DX MY>H$WGZUE?H$_=;3$'717?>Q]=CNMAY0]Y$6Q&C14UV#I0HXJ%1PH$(%?IF? M8'F!#XYB7_+R>]U8F44]!^4 I0 \0GO[%58(3:L$H.(%"M_YO1P'7P;-:,-^ MH/=C".CPH H/:O"SY?]^!SA:ZG?['6!O4)./C+V!V;_V'FZ[C_>#/%QO7_B= M39GKZ=G!O<=![Z%[VQIV;M%@"/]\H[53:!V5'@R&=7_ 0T=OU.:GKH[LB>%8 M6%?@:?(FDYF]/*\ *=C&GV\NU28/_5W)/^)+NB\5^\YRWK.8QJK.K(HMI[D$ MBX_%'4F(!@F<_++LRU>"O6*)._B>&QRKE6,]DB?!ZID3!VM_X4K7MOH92;W_ MO2>THL42>\VJ=:S3,+T6SCQ![G+E!RCE0'>H;3V!M["[FV]M2[:]N233IO>_ M#0>_'8:^BW-K! =$X(!22ARP6@N%U4=Q*Q*M%E/)$J.X^Y>. ?C(DW=85,7M MA@#?0,9]=/Y(7H#KDSC2E+9H/W_$>U)VW' I@3L^L? M\MFR+ +_*4/\MJB#7OZ@T/FR*+I4SC7+E7RY]+Z6^3FC+?4.9 GNU4((W,M+ MN)?Y@GNID:]5Z[S"/:(R3,]'6>A]VYAYI77]*XL%O< UW]IZ"]HQ;UOBM\DI MS[9AL6,$TU*@8/O0O\7W8S^Z>-F/6'OZ&4<674<:ZU:)6$S *#P[8T]N1A7 MUI7S5X5*FK*."^2)<65K7&-AI/]Z9AL7/L MQJI]]L$'+J353BY9.0$#A$&@SQ 04Z@4"_EJD5M72W0@&UBN)* B]\=R+5^O MIVI)9SIJ3XRZO_OMCXIT>_\=VIA*I@*.^ 1:)*9B3(DD:RJ!+IG$,AQ3)I;4 MMJPG[XLTL:>:1'=]T&QNZ:7T(E%3A1I&)^4-KZ98-AA9[HD.@DIC]46P,E5U M=L:SK;Z0[8*+&TL_]0[PZ&K4DG";762T=*6U@HN."XO8[D>Q7,_*FGR8(AT03?O0W!<+]6+Y[2#+;U<)*'P/ MP?OI]V*^5*Z>V?*;&%?6QW5&DB(LIW=7VRDQ2=$X,TDA A\II0$,#1MKR(@6 ME.7&]TJ] QPZ?[6P+.U=39U%=-X3859,&5;/E]---LH8GE+O (^ #DNRW54C M)P7H6K[62%4I9SI^U'B.TEN*AX<(_ACK4U.5\LY^I:BMI6I('(E( MGT]O2$)V9%]V;!4=2>R4.(3H:-93MJZ@YTI+=8F/W"L.(^-Z1(Z="#&($[51V; M<^K,6""X:$=,@Z4L^[YFS.U=I7R5W^U=H@/SZ)%'S.>"/H#)1K7"T- M?A:K@J)]T7[&VA?F\D?F,EC&8EV09R-@FPU03V(7RT*W>Z[X%Z*3F(4!P;:M MUX5EFZ$.\ CJ)':R) AJEJ7&;;&9LS=(Q6X6T0W1#7Z[P>=NEM.RY>G!>&HP M_"U,^L=-QZ_0:AKUAK#?,]0!'B/3]22VF.P'Y6 @N9@OEKBJ MKI"54')6\NM6Z^BY/L<#L:QK%-"+V+9-=>38>*019!L(L" %5BW@,7?90B3E MB<2:HR76U)/(ZP>0+Y?Q6@&8#XTD5^::Y=)\N=ZKC.2)0DL8*GQS1Z4D[6NS.^,*8 MM3^**X3M\-H:5QA0X;_N,/B:HN4JBD=G.B)F;\R>M7I+/<&H'OL$@T:AEHH? M$3*GW.#I?*%[%;8Q8:NGFQITK_*%0CI%=3^ KC!^(RFK6U5S ")"7:7.\V'[ M-A)35QZ9W[%^?*ZO"H4EP+L ;UCZ;6(**WGP9EIEB?"J:%^TGW[[PL+<&%[M M8%,' 6VA&3'=F.KNR2;9!(5H7[1_TC'6M+;IK6Y32"'2RNT6I[230W;9IW<5 M)V6_3\Q0=\'7,O[]U3A6(;)3T'V\RS4+%T5NJQ2<9P=XP_76Y*2K. GDQP#V M,EL)$,[5\6>[)16EG^+-@\8[HHL$#A-!ZI](!WI"]7>O% M2%P2=3.C6M22[ M," $85DVIC.LS^E6G+4Z?UN]2Z&W:>KA'67O'<\O/9:5!2)RL#_P5- MB#N+)9KW[MF5/Q78'_C=.Y/3NY6[#)OQK[?A,^ZB:/_Y'O;:#ZK^8_$.1;5F M&H:)5'5Z/)0TT@SY1PB %XVB&XPF)A6W/]F&G%LQB%^]B5!!(JLT*&>2H MQG:V>/2'FS#-_<[3MY;4[_8[J/L(+//8&G9[CZT']+7W<-M]O!_DX7K[PA\* M-)?R<-J]QT'OH7O;&G9NT6 (_WSK/ X'J'>'VKUO_:?.U\[CH/MO.ASXWD&? M'GJ#P6<>>GZC-C]U=61/#,?"ND*+B:E-'CKF$O?3=QT[B@HJ-?W9>J\E/;9W M%XE<:<[L/BH6/6MJ\=V:87GQW16@8"0P*1.N8 _CE[L[E&\\,\XV WWY2K"7 MIL!I9./H2R/983L:D3L.^PCP"?"]!U^98_#QGYW@67QU,/C22W]*K:#P,>/7(;95 M:K'K'=.5&V=>+?A,DNAYA^C6I96&* .\<>*RDCEP6JF)HGW1_DFGMJ9G,++3 MO6E*_,PD$Z);Z@N)8$!F$P:B?=$^-]MN_%CE_=UO?U2DV_OOT,94,I5GR9Y MB\14@ VB75+P\R8QU?UE*JL=U%B!T[!=7+0]6 PI*MQ^M'1EN,1(:P&11V+WQD/\ MMK^;4BFF<_#U9C=%P#PEF(?EW>[J0?,)\THYG<,D]O;%HQGW0BOOHY7;.[H1 MV99*>RP+\1,+3.0,BT98,O:N:CU$U/E""[YI#EW.[QLF$VL'/"RGGHX2CT:& M5./G'!Y9!@!^SP3WS+]1XB'KZ MGW6*]D4VCM(ZD$FQ39"9ZW)TP(P60[,5FML'.UU^,Q&6\GT27#72)8 MD=(ZY]"PL;9MG9.+,^FX\ITX/!1JCSYOE8,[5\#=30[&-"1*Z11(B#BE7!D2 M/)S,=F8,M2T<42OL7);W\!R5D=!"Q+/01/F&),HWI+YI6Q1HV%"@H2P*-(@" M#:) 0W(%&D98 T%(3JH^PY?60^NQW4&#KYW.<,!#]]:+,.01>9/)S [4HP:] MA/FHS7#D,@COJA?OK MHH@!.N(N;)\[RJR2QX'W6OLOJX:]3* B%!6_8=W!YAR5B\?$Q9$.>U@YD'M9 M,?"@TN?C5Q\QJGK<7JSZ^4':+4-JJX]XG; GJKY^RS/*F9M+44R9UQ]66,O+ M*:!/O@MT1)B)]4A4XB+AD-,SBC)#*P6JO&D:Q9FJHL/=L-)W>!!4 MTQG9J;-O[/$=.CS,XY@S2-.#[3\-U!Q)4%L>8HWV72F:UF 0=-E/8X=@]MI? M\T$6U1K#5-]Q7)&,3>#AVP^AR9FFEZX*$7?WDXVP99$-":#9(7*VVQ=2A/OV MXTN14RN+L?E(\C:V)@CK"I+I!_*WH[Y@S5V/.H/\+Y[24#[(UUK;;Z9&3](" MPK9TA?[369*W9;>Q:=(D@G]CS2$QT[7J^5H]^G$?R08)=L[%2M23%["-!MNK M<-@6I7(Q/=A6\U<5;@H7B%..MZBG)V+9IBK3K":JH$Y0*7&WS>(#AF[$U4-+ M4E*>]CR9V-4\RSM4\Q1ZYQR062S$536)(;/L(C/+JD6<=2+")+ZILT M415XQ_4"KX"66J7BK4PA;*/5A SFE45K"21BK=$(M/1^$?_,CS!-5Y+M?HYI MK5B,JV=;'FJ?%J!])/9^0JU2R9?JM93T;2R*)KMJ*U"=%*I+<77T(5!=R]SJ+T!KPU3)*<8FTV;F78WM:ESUY)-Q#OP;U\:NYBN%Z!M% MA?MW%HBLQ54MR2"R6BD*MR\#:J1ODAE6%43>9D2G_AIULPRW)/S'J^M"R1R3 MI6.O>7E$[K@T;ND*JRS;8G3=,[Y3RI=V.)M%Z)ZS &KL5:[# ;61KS6XJ5N< M*<=FUT#DN_AA8J')7/.[/E(UC2AAL4@1U,M<^"/VXIF/@V7X8U\]5LW7BVGY M4*M9[L$$^+3B>KOV0Z#[/;I+L1?@DD=W+5]-2?LE%]H['Y^L;5BVZX@1RP8R MTG0/@DT=YM%"JL[J"5AL98WBA%T%[#FT/-),(RPY!%Y&J7R*7EOL+3ML5_U! M-U%R4K/KV'.R50K&7KAK>QC^CVI/VHX%7?,\@;U7.DKY"#V8/KG8Q6&2 MJ(I7LT !XE2BZB)HD9A;5XZ=B91$&/,JWVA$7UD3J4<"QAM@7(F=>I0,C*]V M"+>)@,21 Q+PA@=#?Y9L8D[%[NKTVQ>[J[EO/_,U&C:LVR4O6?JF,8,QSO-H MIF%J"=- Y]^..J.5N1?'=6-9=J:.QH*?"IF9H#\P51(G&-%,VWS8<7F_M"&U M+$H>BDOY/J5[2U&M![0'):,_(XU@B[@PEHRQY, 79@8+[9,Z;V](+OM8^RRH^T") M^T2'T1M_MPAS:&.JGUJ^6(N^OU5HG[- Z(:TIH^USV$06JF)Q,Z.C=]$TCTGS%S>D,7UL;KQR>D>6T;/0F4DC6](7H&N$54^!#Q7X+DAO>9C M79,L/%GQLT:QD6%%EP E= M;#Y@',WMC?(@>;7O:C8T)9N$?*5CG26+=*O U),!%BBG""!.B-3W1&CN=*"&I6KU*,1C"$^:$ 9:U<9V1E(B=TI64E*CEKQK1 M*UV=!N)$ "PAX\NWM-*VK\HG9U_!B)!B.".-K ,YM4.!CCS.K6(S=K:<*S9C MEU.JYXNUM.H"'GG^,V]4Q1V:D W$?XDQPL=\TVQ,H M]INF)6+\,\$U%8]43;4WG8^1'4IGNWTA2KAO7QP,_G'.[-H1>#,\/V;-:7&\ MX?0.D7F;GOX! MNIL.J^P\I6=CL%(HK'(*:"+3T#2Z:5"U,9YHQ)^2)L*(W#TO_ M9=\CF.M5H8P$2E=0&CN=\7 H+16C)T'SIXG.QQ-J&].I:EE 'O>, F@3/Q-: M(P>IN@S_J"_DE!VDK+%Z_/0ZU^088'K^R(+H>QXRG&_L4(U"**.S0&C\U*Z# M(+0J7*)]LXU2++;N*JDG\F)H+ZR2EZH3)*%'P[0GJ#6%7\A85%WG(:MTO5-; M943L/*8'H+_5&[=-HJA[G@A1S9>+*>>)[T9(47N=3S#'3KQ)%,S5E,JUG$(% M=IYTG;_B#91W3.:*T_K)RSU="AD=K6ZE$!))"8GJSH7'9C-U:R)J #CV?)33_>#CK9WJ@@&&IHKYF^L&?ZLXI&XSA?5K>>H3TF+X8VQ@N M78DRS@*9*\C<.4?C$,BLY$L[% ?B+QQY/NMBZX<'^ G(H0 &UD.BOC?)P;MYHF]K($/]K\ M(E3.,3EZWPR,Q)*LZ$E4T4]=%?KF+-"Y;_9%8NALY ME<8! %I3-%U73P,ZP MD*HC\B83BZTXR89ENRF!Q+*!KO3D3H)-G3T)J'/H21,SC=@LC5VW*86%>DI? M ,1.K6A[1/R/:D_\L$=2?E%JA]P+/<4I3&,G31P0II5&.N5XA7>TF\)R#SER M]TB=<&KZ:F6:(*T716G6'O$[\:ZLC<1Z>>V6"*2L:-30A9":;$<)?W5HA M&[(D&V*?ZY>H;*C0,P?*5V&G3FZEY$%M'>Z0S'U\@(]LU94C!^2(99JX299+ MO0,<9NO58M=;229H".*IVLA7BFF=BBLR3T\(R[%+LB06 *_6\_5*.@:DL[E%H3J94<*"D;OPG=Q!67;\@ABJZ;%DE$@27.1Q+;^-SA M^&RAA\X"H1OR1Z+KH6012K5.].K4_&F=\W&--A?;6-0]% HH=?;>D%(3N];& MWF9E#9PA<1:*0.D*2C=4A(E=<&,_E%8H2DOUZ"F-_*DA+A:O(F5MO%O02G3= M"NO^7C-D&^B^>R^6J[(6QJ]OR=#XTSL#J8]->SXTL6ZY#5A?YL$[K3?5DH(7 MOI'IB)C1%L0IB/RS_N(>\I>O5]-RO$1VQPFQPI;LCI-D!;'\%3X(R39FWBJQ M?X7!<^V:;T2\6TQ.(X72+8^E1<[>/BP&9F_L;Y&#A?;]B)G0-MD'[60C9V#E>2\K54S1?KPAX3]ECVQG4^HN(J M=N)MCL_.W0G&-LFG.XVIJ"*(A?%[]0SK3I ME4&;2C KA\P:.Q_SB,Q:RY=JM>P:/P>,,"&9;L#X-7=_]]L?%>GV_CNT,95, M!7H\@1:)J1A3(LF:"II? JH8CBD32VI;UI/W19K84TT"PI&N3:;22^E%HJ.A M,\Q%ODYRV3EM8SI5[2G,A'MD <4L=(3H\J$+.NV6$'#2;PU6VY0L(DOJFS11 M%;!,KQ"^5QLM\T;,-.J7ZXZ)7D+252:\Z@TAID3AY%$MV- MM6K?&YYK@$+XGXM"<2'@V3^@.DST@C6'Y!%V[(EAPLB42"]N%".^N)1K5@OY M0J&P]FIK@L%V_R7:R\H17U:E-7 *Q:NU=ZF618^3I :RX=B6#1]H>!#;J#4S M50V5"X X5(G8H9K;H?I:A^#-OV'=P>8DSP83FY-8F@2;#G@VD3W8^N%:.YDO0#N9)&6U KQ)3?XF.ARV2_G"%5=Z+Y/^9K9V"7AQTB6& MD,$*:M#"]":9$-U27PC2#$OLW!3;L9(=ZW97(/8!:@$LLZWR[2"2W:JR#P#G M1V+WQD/\%D]8(@L( )]HTG)CAZ1E#G<81*;7<7UJ+AA.")(LC'6[((E]=-V1 M!4DU7ZV>P];/K 4SLF7/K53@L*)FZ@HS3DC? ^RJKQ=BK_$'D\S=+69Q5U!! MKE:BE_[/LH&6N9VBPDH39Q;Q6H2]<]:NI*8D"U6Z_GB#OEL M&;#&-E,F\^98W*$)J<'].+=)C6(2I="2E1K4-CNAV%@TQG*-LTM[9"AS^HW6 M8&FB?R"P'13UQ?VT)975 ZI,:*&60R1RS]+KPH 0A&6Z1HEU6G8&Z88-[=@& M!2ZS>ME2YEC5L2ZK+!(&%UA-D(L=.D[)><"9 RKZA5WZ]U]^SZWCN%#X9T@: MMG]E@3\[QYI;:^]N^+1H,(P8@9=XOU]I8#*63./5O[-^2R::AOKWC]^_;7W' M=NMZ;1)A?MQW(53QW[H ^LKGX,?)PG?IM^X[TI>G3NMWJ74W[#Q=(ZR]XKGE M<]\U@$0G*P/_!4V(.XLERJ6>R_-3@?V!W[WSAKQ;N M;KN/]X,\7&]?!&L&I"AN823MWN.@]]"];0T[MV@PA'^^=1Z' ]2[@V^]]N^T MWYVGP<^H\Z_OW>$?B(<^WZC-3UT=V1/#L< 9AZ?)FTQFMKLY H&.P)_!J&CR MT-=/WW7L*"IHK<^I=^>]FO+XCID@B HCS^#Y-4=M1?ANS;"\^.Z*+5"^0^]$ MIQ"U%GCK56*+7P'#:ZO"I%/NF55\QK[8E.P71$ZY%S"%="/2K[G2QQ9" KU\ M3_2H_4YV6_(2RPLMJ5-'1POGV=7"2E1DD6FP-U3'3N E@4HHS*NZN233I=CB MC/1\]$( ,&D !C;3][W-]&U_,[V HX#CD>&XV.#366SP$2@4*#PR"A<[NX5> M%A!,22\'-F^XIZ&N9*JB![9Y0P!3 //8LI&E1*R6B^UX*1"\PI'GM.2KXR;$ M[!.7V9:!G%*IQ^#LI9X2DQPI]U_;;AQL:3N-46Y=V=Z0CLP.NA_X2X3>B1:@ M0PV=+DBPL^T#U0.C'&V?S-IW&N4&TZ#9J7+294/.;@3)LEX9Y*@B)97J(8+UQ+B$2/EP#WQI2T;O!S(E MI+#>,<7*04CM4WHDC_)::Q[@]**;J"F8);VN_G$.Z5)."^1QZ)@/YY MO)]#Z%>3@'Z<1(=(F/\HQR%?J:29-94I\*7]?@[!7TL"_#%7Y(7,/X_WB+F3C(+QH(-SN/]'++!520V.&\K)M$%1[\2T?W=;W]4I-O[[]#&5#*59\F> M0(O$5& B)5E30VA\6CH ;!U/:P)I7^R[T^'5;9N!R\GDM\2(VIZ-+Z)NHF\4DIS"_DZ MT8ZXU5NPT'[:)I%4F5U"I$+E9 >O:;^?0WZ)EE.3;"Q4L$QV()OV^SEDF422 M0_8,>@H6R@Z$TWX_AXY.)5IZB'!6XCLK(A%T_YH_1XA]WADF@9E&LF.:1)?G MR#:Q;FEN\BA>@#RUXQV*IW:\PXYGZF2X4MC&D6Z5S(GD&.V8^KK) J(Y^AZ# MM#W^&%+V5B6%D:UOG(I$02MO9()A;R MB0_$BV%E:5CG(Y\228.+DYI"$DUWE*KFAIFD+B<$O> MW=9(3WR_!_=KI$/#QAJ\8GD0S<^(,&, 81NU9J:JH3*0EK)>:@NEY5-;*!7' M*6W1 /7PXY227QI-YOBE2JYY53@9L7Y^!YB=ZKB$)*ERQH)B95JHW\ M55U(%C$NWL8E)$NE$5NRQ%F*3.R"DED 3%[.U/*-6DU(FBP.24B: M+$N:K8*FM%G0',F_J57SU4K]# 3#P8ZER/KQLZ)YT;QH7C0OFA?-B^9%\ZDU M[UIEE_;(4.;T&ZV\VD3_0.CF4E%?W$_AN3U!;X$:BHD8J<7"2@]G;@?\GJ ; MMS*L3#3-LU%_S=%X)'RW9EA>?'?3L,:J/J3/Y]8-ZD+AG^]-X[B]9_.@Z@K1 M5VWEA?5L+ZXL;&PZQAMOSOFUB/=,"DVY%S"%@ G]UUQI0?\@9&5"2[\DYUF] M)WK4?@<8+*G.L.\OV%0Q!:5./5-ME6/]X0=9&C T:MZ0:; WUTC5)_ 2>M<- MV2/F!M]1DO HX"CD>'HY\C@?PD M"8%"@<*CH]!?51=Z64 P+;V\7(!%; 46K2S!(KJA20!3 //XLI%M&QJL;!MR M5^[XA6.B.]).Z8R@[7O ?L.Z@T$+EHML%UCYS(\(2G>=?[TW6]?CPY*4RU*A M*)6+8B,5_TA+^_W907HM+'4V&M)3W^A#LU9*^6JM))#/S?LSA/RPY,YHR$]W M(TJ^5DPS3XLWQ*7]?KX0OS6?N1:69A@-\MSLDRBEF;R\/MMG? );EF!?CF_C M\)O&7ZDT!"<(3MC)Y*EL9H0C62_5>KY^5>$(N"(=7#0OFA?-B^9%\Z)YT;QH MGK?FQ>+CAL7'1V(CC:4QG/6R(@?E?W=RPL(*C)>797K+AZC7"%!9UO'-UF$% MF8);VN_G$.YA5:EWAOL>:XT"^N?Q?AX#S_4DL!]GM3$2Z*-77R_2W"5NV.", M8\T<[^<0]HU$;)YDUAX%&YS'^SFT?^J%2'P@3!G^ M%QZ/MKUB=2L%4_G2"%N$;D69SD#X808S\D8_DR.%OH['^NDR^;OM-]OU7+V8 M0BAK>;J4-30VQ 4&$VP2AIIV #1/=&>&I=ID0,P7529]F 1#>2*R\:RS5OZ- M-8=D1$6&D(H3C)XM-Y12CG2EQ1D?I/R42JDDJ@D&X8Y!P@ZD/THX3.@,P1)\ MLD384>C'"I )KA!4.+*7IX@[0]_AA2]G#[W=*5X9)9EN+[D=B]\1"_9<2WP/B M]\28JRLA:3(Y)"%ILBQIM@J:J\V"YE@G\M3RE6J:-;'2X")W'>S2'AG*G'[# M\'P3_0.AFTM%?7$_A:\@!7%)NY3(=!17]QK.W [X/4$WK']()IKFS<:O.9KD M!M^M&987WS5L 5''JCZDS^?625+VGLV#JBM$7Z5*\.QV[\J"FFQ' MJS?G'*]!>O-5K_TSO<)G-Z,FVW9K'?P\>)^_ DO(BRDH_O.]]@$: >C IB@M M !;D"1D 05,()/[3?H!];*2LG'T')8O6,.Z# ]B&XT(O( & MUI$Q1G."S3225M).5MF]$T:52"?>;LL%81;).T>$F2D] MQ[9LK-/>+OR00F0_I/MXEVM>Y0O%6KY^E>;2;49AR$4G>.6%^(>>I\H+A3K\ M+?',"]PGDW*C:?VU)C=A%)G$5DVB"!6;9;$25LRTLDR(KR2V"!DJ:59^Z(J= M)Q=5FT1.^%Y!*FV6:P0I'_:017ART0E>>>1HU4T%CPCG=S>5[.(!J9;E$"6/ M=&)3S]=RKSKTO D !K+Q&W39GM"%%NBJT-A9ED9A565WUMB[^P3TT2Z#V:UC M0L?=0IDN_MC_OZR7UHSK-13SI4*:6RHRBENIIN"= ME)^=VH)I'_!AHAF#2:"$[+$/1U]91CVBW,G"=O:X"V8?2*BP7#T_UOU$+%\P M>;L(EM\7&'%%4FJQP,U.!R>5WODK 7&:'>*6_;;FRC8VI+!EAO\^,!"6GG^U MEF]44JD5$9]TN]5]X"HNP'T-B.#ZN6=X$#V5J#[[>T;5'CCPI'C('FXTPDV? M@WAD22[SU_.-5)?YN<"I&%>VQG4V=M)5MJ[&SYM39<.O,3[_4H#D[%D&J_^G?5;=(L*ZM\_ M?O_V<4IV8 96IW)M$F%^W'I=3?L M/%TCK+WBN>7S'XTPZF1EX+^@"7%GL43YU'.9?BJP/_"[=]Z4=RMW&3;C7V_# M9]S=3K3_? ][[0=5_[%XAZ):,PW/:3:WINI$&FD@G4-V,BT:13<834PJLG\" M09Y;\?5>O8E0Z2%O- SKTHX^L7YQ$;%=O1R!0\)X@NUIHFNT;:J96&07-Z/2 M/_")?F /NDS&VZ:O-,0-S?S'K@6 K#L$4AQ/N_$]7"'T7T6C! 1$XX."[&3=P0.0UANPPRE&VUQ836#--NQL"?!G=01N? MZCPO$;JC\M<("\FG&6VC^SL:]V;$Q#:-)]$ XPOXMH_WU*PO9)7WS3&JDW/P(EYC$(Q7V\< M.^V?;PREW@'>0+PM@^^J4$_@;*?]4!PL5%G,%TO'KD>W=?(RD$-7/';(:M4H M7N9RLM55DP"<9%4C;%O=BGJCM^E%NM" 9J;QHM*0U&B.C%"C6AC4HGW1?A9, MZ)2$S^)O@_7AELQ ^*AL0QC"NH+PU( I^"^[<"S3^HCVQT>O.K2Y$;)LLM72 M:"1@+P=I#)\UXAT2V0J0.F8MW*M2(Q7#(V0:N8'0^:*U&.T@^=30VBA6>42K ML),CJJHQ,4TP?FF-B4\CHA/PGSXC\D9W-!.AJX[!_5O=XF+84>V[*RN7RN[) M#T/\1BQZGC%^:\-%U=[;62[5N-%8!SYX0:!Y$ U#Z$'N1$LT0H=?G!: MR?:2+;N)DU+IBD=Y(O"9#CZC%1D\*CZYL9.]11^&9_J M*5H!O6,#E2-\BF6NG774/59U?T%];!I31+=X&A;6Z/Y(5D\,@3=*A*;B@/_# MDFMV5524WC2UIJ??,D*SJ$!OW&(TWCO?YMAGVPMOBF?#ZBH!?74 O#:Y6>L2 MZ6 ?I8.U)UA_AK9!2072NACQ65*&IN*1JHD4+]&^:%_8OCO:OK[?0[-,B?I" M=_$+*S=M*[<4EBJSJY7;U65Z8@NY)>Z_7=VG]=."U/LGEU]5A;TK@+L ;EB2 MQZ[F[I& 6SOV:8!B62$YM=757XAN&^8FFU=P_3&]W%)8MLS^^BI Y)A>;KG* MS=JA6#=(53&%I5WLKYCV1NB*1BJFLT]/+"(DH9':AN7%8XAE X%I*52"37H( M/ O=D#>96!9=41BIFL:N>BOB4YK&SA*V=)O276BT],5%6!9,5(4VFZF3$%G1 M]LC[']6>M!T+N(&8+(3;TI4'+X0WCZGGBOEBX]B5FH4?QC%^P_(YHJJ[5/![ M5>4R"U&X8[M%$6=X+D*(?/AD2113V1R*Z;N$WC^OBQNV%PY:NGA-HFS*X?%: MXF;SS6X+Y^?NG@$.3&=]5PSUUD!CF8:FT7VC(I;(@>4:EC"SO]KJ@)-MS EY M(AKUS!^6*1-Q)$*-6JR%HQ\.+CPNCG$;5HMC?_65+&Z9IU6J 9EA5?$+ZK@9'X8](2:2'=,DNBWV MBG(C)_;)XM@L)SP(^-6].BX26KK2HS#8:U=>*5^M&T[:+4ONLT)Y&6.1"[P3B,+D;+Y/C37^I^-&QB/1A8I]4F[U0= MZ_2\WJ7M:GV9?W%34 [N8.DQ*"\/0XO#4-IZI-M8>B1W;];SBI8A9Y&D_AH>:$';YZU%6N>DP MB38)ZO*C"G% 3HGC%-/3C7F?[G=,1H>G*NAB' MW5:2J/$"^&@#//H>.K[,OUOTN(F%'&LM !+[,-QR51R&FZ$.\(CT)(K"'!;I MU)?.7Q73R3F*0&?A5F^LCG@S8L5@K'<*<=04U1!3;1\HX[]B](Z1LC.,K+?G>'[_I0E MF1#%';A*'61T/NM2?Y0VZPI_=MI"SR,D5"SD\M2\6 M,\F+H;U0*2.;1%%M1)/+A&F<^CZG:A(944&?^H'2M3=N,RK'3>2\RG-4HY8; MZ)PQ2I/(9DH:I:6K?+G,994O8?!&TU#>XAX]'T0A(YN>#2+T%*=^<#6)8DI/ M9.;1O#=.1%'5\I4")X%>$:E)&Z%)5$A*&J&E:KZ:U02#L_>@ OII9JJZK,ZP M1I74F(5L"#)&,!.8$E0HJ/39/UKAHS\W9A!]F2_VOC]@78%;7QQ5H^D;5E=_ M(",,;QX2'62"14B4W?!!67(+]@VTZ&57/M#]=[T%>N(N<59XB_0*[*>$_6AE MDTX)^UE5JL+I6RI5MX0@=?V$_DQ?AB1Q=E:0[=GNOP(&^J1X-3 ^TZ0QQ<1C<8PC1ZL-!ZH=Y-B6#<8M+74R M(?(/:Y%YL7>N:9V?,NW<@.JT\;M=81VH7,_! +S,'RO6.:F')?RJN'[5,CZI M,66WC%**=;3T94,M6L+'GP^&_FP3S?=#$ M5'O"01.89IB.EAZ2#4QSDU$B?+M=]-_ -N0?R)@Q\"#R1DQ9I9N"Z+Y?_V N MNNG*/5,4V09\M&Q3E>DW:X+A&Z+9^$0Y025YUML6:_MDKK"S_X*9:[YXN3-, M!KF>B[B.#[B6KGC')C&@#8VG!X)0-?3 MJ9"D?SM+G"W='GH#O*+5"X$G]UTFK'.2 2-.S1',MYGYDL@;XY#YJIPLT1_H MD)WT(A)I'8/C!B%4/SM-Y=F.$$>#1.G45K&41'K;7@*H#X,QE/<)1K+FT,$$ M19TK_F(?"'952B"64K[12&=#7W*'\7"2A?!>2R?R MAG9DK8PD-"+0!9TN(=#MPPQ#PN=/PNWP!^<;HF^'LW'?DHF+UM=R_E1/S1>E MN@IQ\QD&QCYH'2O\(X8NU: +M+$^7M M(]LED0C#3K8+@:NI62UL3MC?\ON).KH#M1]EUU$/(T**X8PTL@[[_TG9)SO6 M.+?*XE*XG71@!^\XLKB1+]12#88T#VE,/MP!.1/?6K=,HD MILBBV0I9'363Y6;4'#BSF7OD$M9/TT:!(L*6I7ZF&P'WBEFT8Q"&978_ ?:#O(XF] M_E7A9C\Y-SN]!4I=E"9Q\F0R**V6.$E]S)BQNVMN%4.?JBN$*II&\K%0FFYE M3$E@;[C(I,I:;D@]B6,ENPP';/_H?I*AF*_64W6R,P:HU#O (Z*3.&TR,40W MRNGLDXJW?#IT6#8<0(O,3[_4H#D[%D&J_^ MG?5;,M$TU+]__/YMZSNVFS-KDPCSX[X+H9K_U@705SX'/TX6YF"_==^1OCQU M6K]+K;MAY^D:8>T5SRT_M$I]>9VL#/P7-"'N+)9H"-:S(G\JL#_PNW<&IG-HAN, M)B:5J#_9AIQ;,7]?O8E00>BJ-.#ATHX^L7YQ$1M9O1R!0\)X8DC%&EV);U.= M QZF_DR0\,#>G(0=O1DV@*=6N3 #F?/+"'9C%?N?I6TOJ=_L=U'T$ MCGAL#;N]Q]8#^MI[N.T^W@_R<+U]$8S[I3N6Q]ZP,P"I][8U,U4-E0O@9A;H!H!T)^Y35T?VQ' LK"OP M*'F3R%4M@JP9V$1CE2B?4Y]7.ICO M.G84U5[O#F5U)@K<[J_QOVO#/3I3:%F.YC*MFI0]\QGKZG_9NE![847 EY:N M]$UBT64D^K4WOO/-BL'"JJ!+F9IA.289PFN_4$F<4JU>*%^5*-Y=DVD02^H(MU3L< M:CD#0:JD-(95V9M2)X83X@;^U>G'=B>=Q#X!OT3JJS."6*1.9],)CWTUW(-H M0"#K\D6>I:Q9SLA2%164+?3M$Q@@&J%E(8@VSZ-^_<+D"7A7*0!8H. W& M0_N+%;:%U-#_6 MV[\G,C-,=G;K'8!JJ^ LL,%+O[L3NVQPK-+P!)H3;-+44U9)(QK1+Q!K\@_X MI3L.CZ"4_I9LJB-: =3Z$$9+Y$ ;49XN>T\#I7Q671L$9;Z(P/7E-;2X_:U5 M]HS[N,NWH:\F'P\AG&_R%&PS7Y)>"#7F.A&>1M_?BH*WMV09?&8;T-$W#1T^ MRBX3]D$DR7/W_^M6$HL-ULNT7MFJG93:E R@;;")9:H,Z.^7HT)L"*Q:GK"# M:"< '^!I@#Q=E:'QA>>"ZY?L'E70+#G=DR%4]&KP^X5^ (W]D?!UG;M2S6TM M(+MHOZ@!X;CJGVG2X)"M &CP$C S#S!,W/CA9H_)TD*XP&VR@F\ YCKYVP%! MUWF)*NVJ_$B[1>^1VWTAVY8^GL??X"Y8B+Q@S6%VM;6<,O+BN5&FX3Q/MHLJ M1R>H6 [(J1L+&M^8T_#3F/V!G^9O+NF3329RJ.V^V=I]!?,6' 3+H$/2"/AG2<_ '#)EZ5# RQ6%^E3T!'\.&^0GX23-VNBI8].!^&2#K_NN6 MG[_TY"(X5KYEYIK4%HFX(L.'5%P+Z:[UZ1A1J %YII/B*DTW9WYK8*F@P=:)/+1&D9PRF"^ M &#$A"D.S)7K05M$TUC 25)URW%/RV Q<*S9)$_(E.;;08L3_%]L M*H8#3VF.JKAS/R.V:6C$F2Z@Z@4'X/W0 9N%S!830!6+-U^>P6V 94[;>09E M_(QI),>?*]8-/S('W21T5=2CWR?UY3/2U+^A&VXOC%<%?)81=L]/L550MZ9I ML)]ZKX?NSF::2B-H!G4=7/<&^(7&;=T^J+KW!>0S (RP"!K,"]'8^_,>W=E\ M34!&6]"%'U23LE4:4+6.S *O_#ZZ1X7#9-I:-;E6+7=CCB6R_B+02TOU!9XSS4T\A6*=!8& C7N^5$J/4MT%0C0(1IJ1>SX M/A"+P,ET>E4O,D5!9X HH4$_6EP(O=(8G L,.H^FP^9^F^DTQ7,W%,;@. 5+ MPK.!B/ZBF@:#9YYZBS1*:])PI<6"ZQ8>$WM.-X8[-*H,-HA)/&P"A6#<*C"3 M16//S"XAYHO*2 DF#9Z"S&6;R=D1\O3:S#M?_B)-*^'! +)376L-3:R0EJZP M\WZ?B$S4%TK@#Q>DW@5:^+8;RK[=X(5A+&J >F,5!L/28)CBOPR8L?G[T 1^ M/W&,J16'N,KBF1C/)IY-J/#6F#:A'.2N)MA4%QM>_'FI3IF\9V^@P0W4!HFF MVLQ8 2G)HC:N@&5K,+[KY,DIC&28 @-8@$7'?;> JARVNB M@O)AO-@ FSVW7"O%$-)ZZ'5D@PO\!7?AC2V] 1!B4\=H]A98-.?(=8?E:;CNQ/K3PA=:?*GXN=%$WE?A;FK6=X"+0!%H_S'EN? MOU40C7^S-CN)X2=,==\G2==.*>ZL+4)^A5S!QN MYM[+S"/XH1NO8/N[MJSER!/Z%//TJ>D(#QM@KZ%Q@,$]&-LFM5/ QL66S4!A M4UT3*D@62U*4MO^/O6]M;MNX OU^?P5&:1I[AF1$4L\XUS.R++M.;4LCR>G< M3QV06(IH0(#%0Q+[Z^\Y9W?Q!@B E*Z#2)38*+W;/G_7RR,9:*1#Y#$,5# M:S*2#=L%%194EW R,(P/N MB-%^=-HVTAY<[P-4_2G?ED<; MIYS.Y;Y"^8%9R8([3A'=-$>T]+ULGB6Z=VFBA?" U/0(T82I2!)8XIEEVFU% M*;R&>JU8[X(ON8;0Z'!XW!-2,>3P0$7,($^"BA+A/SC'0Z@&WW1- ^A=(2,G M^PV$E$&6I7A ?7BPV0/:4X*=HK!?PBK/.GJ-02S^+<^9='Z2;"PR/.X/1_WQ M\-_^5)N0=<+[S:)@^>B%1^1&G[KZ+^A0]]9GL!>!H=S/5?/\\".0J_A=D?&Y M4KL*5@V7BIP4+Q4Y/GA_-!PD:T64!8(2U544--P8ID!!$Q%[AQ?Y(#^B0'.,O>54H(S/,&&@-$!W3N]NF0W MXN1E5KO)8,S T>$@6>HJHB7\7OTH,E#$^I!QD ],J29$:RIH' O0-%"'D;E8 MJ,!(TO,)+O_*SK/[AKT<$AL.DO7QDL)ZE+9HH4ZI@Q*[Y$JUP\< M6A N3>(4[MN K@?*]8S_@E]Y+_?"SP\S&NK2A7_@>'2'*7U?A0N7[IC<0-\M M4^CW%PYP!S%G_(5@R0EB2;(9KQ*A5^EU)-W(MY+)N5HHW"HU;L/"ODY@M8+- MA)!$:S%NS62E6J+10 ';%-LAK";\$E,0?GD7:!6D5$2T*=&/1.@+:[Q/U16N MF J7UF(IU>9)!LQ)OJDBWPYNX=$R'D,Q8@"PA9Q1FH)4PD?F&]&*J%3P7'(K MAUAH)+]2D6W$Z/<\4A8D_/@T2]^A2Y0(U?=*"%>9M82-2D.6ZLIV4E$F3B3#Z'%YC@4-S,:#*'*T(U#*DV7_19'T(GG5-$M2 MK$@U$N0NXSY/2K!QO.62,SE>%\ ['V*,5R;=PQ[=)Q9UF?F>KL @N'!(J\2D M^>@Q-1W83EC 8;R]KS_WYV !,O,W'PM/A17",XJP\L)^9)3M'WC"POZQ0(5- M WK12H84)7F@_,-Z0ONFI^CQD$6*3+"$TB4<F,X$D>5W=.ODUQBL"U/,@4W=MT-[1B$T73X#[QR/=: M9-M<*@="N4BA1(Q=B?WE2(+AL)A4O01MGO(X<(5;W?GKP^H#,Z=S -]?) 3N M@ T#8WYDP$U J1;:?LK/[E=++C8N!2=)/),0#N&DG^52G_L9/]\PT"C7J9#M M@[TW3"M# N3 FQ*$_.SN(*3%^8&(LSUPV8="5Q+_B+G/5&L%+ZC M"&K*!?,80[%^A>L90U)IVYPW_#M*^-SI8#+Y02X#\;M)QY<&Q18_ ,5LZ'.2 M_JBP7CD"(DZZ\7XN=VE%$B9Z05U:(1PZ">.0DLZLHIB9AQ;%1KUV:!%&B^2P MN2;0(EY3&!$*N\@/$]K )]M:7(KLG7_I[EQ>1WI*6*(:9;. =SS 6RWQZT@F M?HDCR<(#U_?UU9/^56"W=25Y%7A5V+?E(QR*#YT0CR#A"(,S5)@H$VX<^+%& M&2TNKU*_N,,J]=P$FA/A/OI=?R]!34E $G^X]USQ21S0^GT-:1'M@CL<'G R MI$9!%2X5P-=*Q1[?!19 MT13TH'X,'(*4/DV^1U0S^;(:[T3(\XUDRA4%6B*Y8CT1C.%NV\!Q0KO!%^.[ M,$=*5#6YW'%!#A/5369<*+5NC1]S 7\*7A<.@.__[3V6AX^L[A2=F8 MB2=X!\\;YQ*1)VU%(B7YR7;NDR7L:I7&>+OLP<(F);_M!)(\GYWG[Y#]B5DP MHKNB_W<0R%/Y][0F>Y%.O,F1?D4XAVC3&+0G+K="HD^Q:RW?':1UH3Q;FTJ5 M [7TQI:5EFR.X:UM3/0VM8]Q+>AU)^L=@(=<\D(0#KN^8$7A'CH3D,"8>A$N MNN)/A3K]A J1HMG3K&@)$A$:I2\;O#!&9/;F5@Q1-0E8V7]7%\MW5"V#!@ / M2^9V%^VHMZ/>AJAWU#3UWDA"C%,K9<0#!<:JF_P2-"(AE(I3%OI05DS_^F!A MRGV10(-D":0L"C(&O1T'#V'Z9;2J$,2MH0451V76)R$=)/I)I:A5Q-W@J[Z8 M9!?9&BE\!&RP<=98.+R[2($&)'DH?+S^D5,9B%_;#F!TGAZTY^$F)RD1.(?G MW%Y*!ZG368_H\L8:$=6)U0A3":EM80@,_PL*O(-94A/&:^(*^-ME^'5F8?R+ M%_Z(2ATL]P%)M$;]4TX'HTZ,K%\ASM['@W&\[WA5<;05$S5#2NW%,2HJGN*( MY^/!T3;/6)EZ(HD/UI,IN85H#T*F,]9',4[F*O6/=*QHP@1)',O@OZ7L.&%W M>_PC3)T :NH+MO,.I& (>"4%5,<\.N;1]F-4U'OWFGE$F$",XGG)8)AK**;* M&W_.1-EBR/CM*3-U8J/'&@UA7D;!&5#(8-:D/W!M@87H76F()KN/?IDFJ#L] MF5%%39(PDPI=D90!)GR/Z&FGU"^1$B83*.$1:KRT-#S2HV:Z*^+E@Y;RMM(O MC/"Q?C"4JO0>?%-,JJ>B]%(TC:+\>6Y642GR7%\NL1K7#LPA_-R_ .5-:_1[ M49+\]L5YCB^4B0WVL8;UPHFXIQ]UFJS\*R6GL3+;6D96N*^C368.-T=VY'K> M.$S[47=DY1TUEA>!)ZIU3(_1GJ3&:"OH,*)J=*:;]R*;-T6IJ2VI**$=1=2= M8"__8"KNV-]-ZT;\;7W0+QP;LPG^[\'P:'VQ=2-#&..3R8?+9X4RXN*#R;;73(N6WD'+<=.3NF7H:ICSJZJ8MNJ"REQ831GFUTV%<_ M]OV,'HQ[RU6-#@4[%.P88(=]KPS[]H(!^LIIOB9Z> 1*Z/AL!YIHUISV+#]S M71[3()4M+VBX[8GT.]G W[(BIC]'B82B>,UO)Z]$[[384(5_B[N]MN]XK(O* MY<2'HIX.-@(]7-;D;H35%&"2NL]DE)+_JH$U:AW=I2L%W_-&-WN M#;21KD;MI*M.4*4+JH+VYRN*A'3K=^MWZW?K=^NW]J+3S:7G*@OFSBWMU0^N.XE5*\+4Q.*5PU> MK1\._/0+8M@W0K 6>8^/L+:P-SQ*SJ5I*_YU&V@C!1;L_-Q:"MRYGWG(RW/; M0X2O.B*Z=_1WLD'XI@WTM]/X*4C \3@YOZ^M^-=MH(T46+#)?6LI<.<2< 02 M\+A-1%@NU+K[5-^^:RU%"R?YB]\M%/-J0WD MTIUKO\[UBMC;)G4=K6!O;5!+3Y(SNEX>Q6S3W],&)O!2S_5ZF-MY6G%-VTSN M]NINPY/>T>GI*^!LKY(-O-1SO2+VMDFI4RO86QMTM^.35\#A]JT2P/&^W&$&=7E9]K^YAD;SF79:95L:5U,VZ'!C8^ MZHU'N[$M-[B %J+QOFUI7\EK7):\=JX!'&)T?S=Y-1M:5EI^:25R>W-I%;.7.$?HV,'FG+$)IR MJZ;NC(\O#Y>1X)07TW)IY.F69GP>%YCQR5?!H48>H"<.Q9DRV\6!Z-:2V>0< M4G"J/0Z]Q]%2"Z;BN'E_= [\@ ^S=VAL]-1#QY B!TSQ2<^/_OPL!M!9T&@L M_@/XV($'G)E4X0]; MHI&JU@0N1B4>P-^$D^%#$T9-;>U\+S'=R0PFW-)6E -_F0-YQ[H800B'4V8J M,(*99P 9+W7.A:+#B/RI]N'] I;@,"X.9;[:HVIX.9O!:;_2(Q<]![,'\"YQ M,?ZP;SD?L:<8*I RGR*FZ38?OQN_QO#UI,/5D5OS9_O:VCFD!QH%%EA M/NO;UI/_5?P['&VDW'S^_N/;^NZQF?EW<5 $;\MC.&><"\A]_0H;\P\0^DOD MSW/?L7AS\?FJ_^'VZN*?_8M/]U>WOP&>/:DK1XH*],*9+ *?=\J<<<_G"#V; MPA_YTR']#WZ7<%6*KPY^3;V9?WQ,OQD^ ;&.>[F_OORJFW_Y;]%T9VFH*P0B MSL/N3W#$5(1HPE0D"2SQ3*K;]Y?8MG]Y%VR8]AL! M@/#L"JX@C@-L*)(\VDZI.SQ-2%W@S!Q8%@YT+"=\!?,6W]+D1\&2.2P<,0H> MWA07R/ XR'I\#QU9,3X&0[R%M(&Y.*#E-8)86VS M_WJP3Z[Q&@ ,G DNA]<#0>#T39R:B)&JF3Y5V//2LEW0+*<>GHB+_L@_'LE%/H*QQR=CPB]8+P2+VB0U@(,MX?0(._B!@)2<)!X3B3W_RO*& M!"[4E4*(,8GD1$]4O!!X1_SD H;BW'-F:!(CY CVI:WC4$.+@,(1PUZ_DH#@ M(%,2UTNT6WK-':!HUKVFD)MN/EKZE(E)]89!%*8;H,&"+"-4Y90JK]@#I XK M13[HB5R$BH;O3U,G)QYB^MK)D\#)../PL1J:32>U%>! _KF!.$ M%W& D!'50"U\9&E30??RWJ5=#K2N(6<1X*#IX-84M,[H53FN:OO\<^'/[$7< MD .!GW10"!P/ W08IRYV#J\$5# -V'P@M-'QGIHI@CN@SLB:TC\BG3]@;)^ MSQK?4O8FWTSGJOE B*PX4T!P/!,. ^XI_[$F82SI!2/321\GB^!7@,@L>B*' MN:Y!XL5Y2]@4.I-N2MS3+?H;GV_,1$P++]TLA+\=1P\6H_$^!KG$_UYVU_#"0F*KA6+Z52X!! MO3;R=KQ_Z=L >>*!(!T"!W2HSPT,!Y;*PKX-#"4EFA6N+N>*X?U= 'F D-.>4ZXGH5G+Z;WBS M;C8*BHMR@G'+'&^BY\.WJ81BR1WP*X'K"E"R"(@=;X*.!P0!9X_$IH5I(D^- MXV[H<^YX434<@^JJSRBH@47Q$SI2*>"X/V%SU9CAL7,'1^NVQC>R!"&CXX*J M80'3)EI#A2T==0G>L&D7\"T+I 1,$^T(BP^?%]>6T(=\%B3TT0N-*]G" M)Q@'AR-L'!2.%@FT/HVYC[H-P_P+C*_ETEA)<8I_ 1K'2X#MS= ;1YQ5+A?R MCPDDI65[G)6HSKHM<52G+[(W!3]5%<-;+/N.MT#@Z\Y ^>39J'+V4$@P%?K<-*IRR$3TJS1 M"311#:Y1<:7;85(+EWS[BXFBE%AW+P0?CEQ2=>.*#(+)"T- $! G M;&4)6"QA#?6!V_84,OJ$O_2E!*S-HZST8H-T E M2KY".QG\2 M=N!B*Z;:"&E8/D\E_@,N3[57RGC84_RAT[[F/=.-L-Y_=W6)F\E;C\]_'YWP MU7I"W0;0 W/\87(2]Z\Z='_($GNH0S"P?TG"5IID 97T$G_NAQW5#1UU;J4$8F7<\7<3O7YH_@;GP%HFI#W./>^5GU MW,M* *KYUE\C&IVGH]&P/QYN'XTP2W[8.Q]6'\NW,1IMIQJT "HVRZ:O_ B MF,N8V-)VCKQNP1U0SPDFVE5APC[PKP3LJW=@/3JJ7@GY(EEN._%D6(G+UH(G M*)J'O='I#D5S6]3@6@=H)#.(\9:8G\U2+S^MI^-P0Z^IAZ9*MP\&NAI5X[]T M42+[OJJ>\>->N3J0>"660>[F0>0M"8NLX/=/<5D M;F/VA>CJ/]ZTJ_^6(+YY^Y-Z]*,V?, MY7E3?JE<3;D1#>4^=:NT?)66:>Y-^?5C&?Z_B68Q5!*5"*-FI*=N)P]FQ][< M[4CH4H[8QQT9!#OU*F_W1&]R^51&$DHU M6?A5%L579%1GYWOG&,H$^]M]W7A'O^TZ43[]9B2[5-,S-J7?H_/J4Z?;!O:W MK31GVZ.X=(&HSI-=S9,]S$BDZ@)1KSF2L^?;?T7DFY%^U06B:@Y$[5'7_^Q7 M9>H4Q>NJ2(/T=^71!LV;>4U!_]#B;\ M;?(_+ZN?"6^!51/R'JSI&",@^#+[:=4&P_M8SREL*@,,6LO']Y]F]#^DR;]) M2.?4SQ[GE&'_VV]Y])E9#[:ZG*.=2--AOP%Q&NQ*==PBTZTE-MP&79\ND0&9 M@3P]*2Y/C[%6>Y 6)"C #@+P<)18H&S'1(+D;S>YNW*;0*;XM]Q;RJER;O$M MG0R28W@C8(]P5K#+O1RV(9I)^NV @QY=DW"&2 3R MQBW,3!>T>))17= U7;5U MYO!6I&'V,_.,F;@Q0WV(684:E\M&Y#;C(P$>0WTQ^>LT9L"G-F\+ MY_\@,EY@KCYB4SCL@#J=LJ4X2*03;J23EE0_J/.TA;N-/.NJ?\&KEM0CVA$# M ;"KG&WSIMK4(A\[?,GN;+R7OAN#3P'-2[3HDYWNPBWD\K!>">M? G?+J6&U M(5ZJ/B9EJSJ4<[&5-B(>H MH5Z/=F[;1;]+%0?*X)]MNV0Q.LD*1E,V)--(P+=RFW8+>%^D(C M*2PL:E.LEL!:Y6**[ P8@9A/%E ^=A%FCN -B>N7?,,)C5()@N/8(MV;SGL$ M,?R-Z:3TV!<#LW:+0!M8LNOS/#,Z (D0:V(-(0 ZM!I@!#QOHZ2]U MR7 +J3?XA.U>Z991F#VHA 8T1<.PG-#XN$1O=+QAT6W=U1?X(^R$G2$W_P4D#SY6_;DSV)!5_-&FEJ/4R)409Y=]-U_M?+7S;KY:-U]M>_/5 MTCRL"/3WM#K_$7].OF?S7JY?T%7([M7GCSX'3&_.>I;:G+4R&]I@MBV5$:QK M!LVGN2E]A1^0#X*0<)_4H+YM=("ZF/E&F^ F&I]=X O:A#6^E"-_2/?10]#L MP:_E_%+U.:/-OABH9-!:.)F#OPGG73SQQN-BPIR#_ M>(_N(FU6?B8N)8C'<#TN#/#NE$ MH(/@+!P/=PQ(P%& /H[.G@F-SX'O:%*-T&6Q%SY73I3+8&I5=&"PP1X96AKZ,G!+ZFQ&TTMP;M@/\>==4.=[KL_[6PD]*[1T>CL.W>!?#90_TA'/QV0QI2707X4YX^.# M&G3&%H-R<Q^YLB?+-C10@E@(C23^.,J;@RO0:]]*BZ^HR\8%7498(0OX:NX4Z/U? MP2F)\^Z3[J"UGNDG?VK6VEC"R>$P%DO(U"A\+_0-<*ZX@G$E8>MK&K< 7]2K M=-,#IG>]%-.2@FYR_5%AO_20#\.).:5_+N^O%_#(SW@\3P'(. #(N 4 P0[< M0&;P&T22LR1HWA:%32_DV356 PDAI"$QA$LP>Z 3G"L4FE$&^H206_!!,/02 MB6O"3#9#C@ZP%;/\Q#(_ &A *!3^\%=3I<7,;RI%@?#]*S0-4D@F"DM'1=)" M?P[Q?M)2X/7X+9H.%HC!B*;0\=58R!(EY53.=!%*"EA[KJU//"[F2#1)M2NB MCA6>I3=AX5EO8?_AC\'=0)DQ'*UF" T(KW7%UV8ZS2JA ;P+W15# FE2&7O$ MR\7)QNISJ&PEH'P^+8SFUC" I(XZ$S)]%4,D!ISQ$42$J4DO/NI0#&,&-.!- M1-3"SJ%PY6541XBKJ)>@\&HJ_?;J8;4L[FD%+(=;Y-H$@-L$/96F#^%]^:^7 M,P4=%GTQ#90-@,R5,7Q0MQ4<0F=$"($[:U'#GEL&5U*%?BS6CE -+1[X@>7H M-^D738Q=FD[!E-1P9EIXIF%.[/3D<%2ZQV(0$/7Q-6AA>CW[Q#'V+@2CB@'2 MPY0HMB)"HTK9V*2<&!S6-QUAG;2+.>W";4%EB5\ DW0;&028'S;P^G3/Q?E^ M>2Y.?,^%?SSR@%N8ZD?\AQM_G1LC(:2 QZH4^LT$&F=G? 0XLG78C"ZL9! : MQ/P=5&;XW$QOB6X/H&3+%H(/#O87F(FDE&"$&"W$)S+5/(=4$94B2Z28^..Z M1!P8F>>#I_,O90!Z!EPQ M*0=9XDQ, A'9IPI:#33F%)CGPP.C\7)\X"P'2J%1OQ3II[EUZ,/@UCDWP8Q,E ^!*-5 M]3#>16&NZ;EVG+\Q@8RK/#@_K0.7S$8H=(R"^E@(8ARCA56 ")-R#]7P5&!Y M) F#%+LI-XO@L.B#$8D;2PM]\CC$+W1U L#",@5CB;0C%"'ZJ?D MQ+;F9RX!+CS(LR@7@%L1_B^_"F5);R>13,Z!%B]VN8+*YY=;T0/YH>&%JJ/R MJN3IR>,4/7EXTA^.,,?P@X#B!8+5H8F;E&%X@X;%C;YDW#3YZFJ)3,,TEX9< M#DAW(F()=RY;AE:_@C^YJR_H: 9"_F)>\/M$'XCAH5F!ZC?0)]Q(Z%>P'0SO MJ@^LHF_H.,4WQ-W=L L4UW3@/IY86&,]!0X]D.YC7U[EYT0A9 =BNE?'-^[] MZ?"Q@9H42L+Y\6IRHF;<71.3:?B$)-'?6@;D&N=I2F:;:LB<'W;S,6N?07=T M_G--OCT@7S4B>55U"Y0GXTVN'4 MS Y;LMZ8F^!P=%PVXR,'K>5DW'('/OLZJ;7RVGXOC (+\AQ;IO M]+;JZZOV0I$K%[=*SX"HC14-3W<^P'?3AAKYQGB9AA;%7$3UO>\^&8!R8E&7 M:,Q.NGE\1WY1EVS(A QY5K'P#"O$9C9W+QHK19^E1%C(U=<3@3\KGL8:"M/Y M7E@>F0\*=1"'%8*,5FNLD=TB)Q:=.&I)JX%@"18 M\+5X#9'.$P*0HV)Z:#A] D.0ID(:)^:\X"."&*7_/26$.5 ^>K9,0!8I5)2V M6&_042RM3Y46QAT)20S]+X9@6U-HYL?'_!!<&GY$\*)H'!";VJ&_F7*>PU'0 MGD@-YIGJ40IJ4S!R%L'UH&XO.ZX;@U3%$")&D=;^T$^;E6'UK#K0HI"B4@)1 M-RU1G;S6$0:'P4LD]VCY(X GA2 &D7UD!T'S0I\;<\R7$C=]M96+."BR*UWL M2A=?J"LJZ$D/K0WKS1$LTF)B M?2;@JF'J M$\_A(,/B3]1D0 .\,4 D\XK&7(GH@18Z'*->,3SMB;0.$-P+4H=E6D LK1M? MA=G1S*;6 K;UN#9C@+\(7Z*\69>-=1"<#D]Q\+:'R?CZ^K0$^9+185W)":U% M$DHGYR4@NG_GP,Y-V7B(7URH'. !3"/$!O4)%1>15*-8GDO*#&@U/='41]I% MA= /+PB,2,^-O#97D^0_-.&@8BN%S!HP$L4)!LI%OBF4IBQ',_'1B@6=BO+X MP"!S>3)5GC?GN%@6/K'?9/OWQ0(3A(!J+M6E#F^CQYQ;L8=/EOV)2BF^.(Z' MR;*^X^>PL./GR_=/<"U'Q[UAFI.P5'680YN3C2I1]2; \[0U76PQVM\J0$'B M#1P1_9)4WBI*6 -X8J[/^RLM/1O_2*:Q)VH[T.X'8GYF]E1WJ"H;49TCS(Y; MR=3_JG_-=8.5HSF96Z3YB=5T29&Z:7Z1/51=^_\%.TFG[BO\AJREJ ^/7YW_ M!6:,@:+BAA8*?T0/(]Z+%/-08Q@AN-.?IFPTJA"%V^:[6@E<B3=NEI;&(92O3#1V/_ 540!0[F"C93]UMT/:M\-7PLJ3B M-ZEZ[MRR 1]\WHQ=J68S?0KR%43?8FE8*X;PQT(CL*:1&#G0,?UHR2@'"2QX MFU'B?AIYA#'REQA&_E(DUAR)++>JRU*D'**(0V08,OWSM*=> ?7I&XBGT0D) MFJ'0GD2_):X4303^Y2A0NKG>_4.O@5<4TITB!^0*%*%D6=@0IK4\H9]RPGD($C&9\2=I:[S3BUG!@HT:,X<:;#(9L.[Z%L($G^U.\U*Z# M<0U>*N5.AL$;PGF_5C<%/7D4)A7=PV_T*]-Y^8&?KBSTOJP]B#N1.YB64UW_OT3N^ MC?FY+]:,JIG#FZ7S.PB M8U,N9,%ZNL%SQ7&A:B[J*-F1;0O7O'FZ?(?.-:-S6F_%9"O!UJ/S>1O1>3]3 MKI-93ALX%&7C$36)@_C\N@@+A ) M\^',B0+Q_LV;O/(D5/)&QKHD".>CMP"XH9L_,V B]HR-@_5'W5V5AO3V1/A\C6_FPMQ3G+TI;L5QRUR*[Z8!@F'78.$M/-NNT#Y6C+T]E0F=P7M M+<:7?U$",OJ'L7O; U.N1/*0[;#JUI/ M.X[K("D::\V2K9I:W:5CW8)%/$.U5\.CJ9(Y 3KJ]/'S, );*.'X2JG+X7 1S MDTQW4IGIQI#75\%#&C@JX,.#*.T>1[ 7O:2_:9Z-&GID<(7TC+]J/-T#5IS1 M3:PAAK*_-DS)?45TXV74+G[4J_W8]LLVJ_%(D:IUR7Z&/VGFE9(7J MBC[^X N5=/$^/CS_FJM+X1"*?ZL5:7#8]5O;-=[EHEVQ@8T-J.IY=IY567\9'#6Z>(MP>!L!V!?./JZ:VD58QD>'C;(6.I6/!/\Y!X; M&M2B@^Z\C>2K=501.2#A8$ #UN1FM0,-4W[AW>4R MB.%V%=X-6<0GCDX>>A/)TZ*+B41-J M[0JE.U)*(:51&Y7X30FJ"9U^.!R,J^Y.4-'S>4,=73T&D796=VBK.TY3:?M%T7UU-+O57EYT?;@]WQ(E>KD=DH_ M.2H[4[&$]E561G#C151;.QE:%/%YP-PGP""'F7&DQ8[U,:Q5'OE@(C&8@'?- M"<)VGDT#24+-]_VVYCNLOA>M (K>]D#Y8BH8+L2MEOQM+SS0+!=9B@U); 1# MOEOB4II"$MLO%LRX_LCP!73I$-1FUCJ@G38M-PJU0O7A1Z]T*.L@_#VV0_UN MN?^/N4&CU/J ZYFA;K9IW:O\@87AJ0(1^ \D5F^#R7:3NN2DKF$WJ:N;U+6] M25U;:&D>[ZGWDKN7Q[KW*$'CGE@7_<1 #=FW1Q$MQ->VR\_0>RI-R]S[[N3I MVDZL0=J%J<4^^8%33 IT$CKJ.@G5%A2LIP-#R_LIM*:)0HCYWHG)55MOGK#5 MGAL=8E1LWM*&/D =IK004]K4AZ756?#'QUWSE3TL9QEF#*],*9Y>UW&WWB24 M[Y;)G5)7__5 /_UBPLL]JJ&KK^G*N"N#VZM2?_AW;=C:1 9X$E71:WL_5\VX M7SD6A*;!-H@'@ M$'^NRIE[AZ=;K69H90)QT]K49SY@L-.:*E#L<1,3.+8LC/BTT\IE?MNM[FN_ MG&DGHIXT-"IF^[I3%%TK*U#I^$RZ4RL0NA7^Y!0'4"5TS:T>"DV KG/[+?&+ M-"V]>1(3GSU-[8XZ.5Z!/5;J$E1*CB^7^KQ!'=S/=^8]K_:M:+\3Z]7P]GQ+ M8GTWV-L)]TZX;R3<]]TT_R1[_&#FL,UQ6,JK4^*>" M,I'7XC*>]8/O\K'IVK[EN 2?W",F[8N:L.:454,+EMKTK'W.0=ERWDG73J5MY;*CC CJSH,P^Y[% MTA6?O\+B\U'QYD2MC!3M?99-1W6OD>J*=R_JLH!:1&7U=X78AWJ_"P>K-4M6 MVOFU_ZJC_"VOC/WTL$E::+Z$_:0XHA]C^Z"S))H7;*? KQRNS0A:,>#-5*N! M3Q1F/O <,7@"2"6HS%QB)[.!(C?"XV@.YTF--,:I@R@*X4 M,M"D:8$* \D,TG@1UI>_IUI._D/^G"RIWKQ"]4JUL<6%(S7 ]/+2X]3RTB+] M%G)JS'N4V5SDCIL5ATU?D:1!3>9&87_VSE0TW6$ < MORB@ WUZ86H?=WR6O2O8!I)XMZ!O.+!W.^NL<&!LHWBWH77%'/)E]A$M[6OM:*6#3$MH6$DJH$5G#"%]G@&D'V^B0KQ'D&[<8^;838]OD5$)' M.\T==%#_O4?OF'36I%D)IN\"C%[2UR-=]38,Y#4@L7;PJB(.T9JUMSP7Z'A< M2W_0F-L_VL,QY) M'K41=;>3W+L13NY*NI$G1G]D"IO-V-1%-RFCP$S4MTM^V1EMV=Q+^7R4L5\?Q%OB'F6<8BD:J 09_7[S8;S)W MM5'&5"TC:'S:I#FN'9GL MM2;)M=JTWW(8L5N_6[^UZW=Z>J:>?A<9TX3M=Q))DZ;E*KI)8T8T^ ,-OT W MG>=R+YTUXTH[?,L2267XK53]:;4)FZJ>PV@5_EHYWILI2VQ;[F"3 $K45#1L M5"T^9,]3QG '^$-I5,!9_F*N_[N9W%M@:;Q ,Z)U&LP:S:18J: M/]!7QJ,VQA6<=A_EB3GGS M#BKR )6(F^\7+B#.Q*.4]GLK69,:U-!E]M-I:;"LDY>MQ.:TSCCEY>7.L'DT M;"4V[X%-^Y)<"-WZW?I;<$'M3KF5?1.!UX2TSXC*FZP$K*%X[>#]=T;^)6O! ME#>&Y3AO%37$U+'D-NQ VI9ZF@6/[06T,C:P43N(!O:3*_M+9T"GU+<#?GPA M]/@*R%'1XAWVCHZJMSAYB6BT\PVT#8_?Y")RZ7SH9A Y:%@Z[ TW:)75 /S> M=GIIMWZW_IZMWWJ]='=.UV2'C/**Z7XB1;=^M_Z+SK?8G;%+E6Z=#=LRW3]7 M]2\V#H8IG=9>,5KM? -MP^M\FS8M'W^=3;L-Q Z,7,#P MW>0)UV+COD9GKL@4[R1R@;9A=KZ,2TL^K4O& M;8;:>R+E-NT$7;^%&>H8RGBZI&S3J>F/LM??S>=/][>Y3<5"K3AEG\_("O-9 MW[:>_*_BWV''3^7F\_EM?(=3BB_E[^QOP>M[&_1/X\ M][65FXO/5_T/MU<7_^Q??+J_NOU-48TG=>7(ZBCTAYDL J!WRIP*PWY31LOG M=XI0B[F_OKRJV[^Y;]%TYVEH:X0 MBH9NLOX$6[]&V16]/'P!JC*WD2/\Y%K3@XB&]B2 H6,[9'0<\EO&)^(?^C[& MZ,<%""*-!*B9+-8Y7")/,UWG]U_54GA E!NAFC 920J+/;.+9LL?V<3]J#M3 MPW*\K%;+IV5:+=?2)KY E^7S2)=E/$:1OLK[UB\?SZ6XV#^<:;F][X?'P^S> M]_GA4GS'A:E=JDL=WO.5J0Z[GL"^*2/>J=B(H?;Z#[Y;MSI4+8G8J)W=Z?" W.'E_;>:"](XM M7>KK#P!%H [/>@J!%=/TL1!$-5>$G5-FNZI.17>ZZR@_!G<#^OQ2-55-Q[;Z MWL31X4^V#OM[ ^+8D'?2 X)]8#BR@A<+A):F21; R<]&H]AI3.6K!?^Z46TL M3Z$GAN_>*J3=4#F@:RFJ$L#E$C[57=J2J&I9*1?T,<' 'O8FI@\ MT,B92-$T;D-B MP93?[4SLJX=8^1]L]$;8,I'[4W \CZ@MQ;^BLF1Y#G(29C\B_H;PY8Z_3*"- M/++$FA?'< HSC.$I<>%A+S0[$\&62\9\J G<&[7HP1)<4"<=4.!Q'2HM? M! )9@?X23-11\A?$F3H*G,L&G#)6R@,H$CB2!YZ?K)0;!D#LW^A+QN69VE.^ MF-.!'/?! MV_;!HLQ5D*N>0ZQ" _D,!C92I&YZE 6#Y?P^\I5 A3?Z6WXD6&,&OX)_X>!I M9/#J-_!T_''+?/!0OQ^LNR_B#S$[TQ )_@![A5^)'^%?(HCR-2R MEY9-%9$>_,E!KU- +4L++6LPU0$]T3\FM _*\>$KV0Q^-YT#D3D#Y4.%@T^ MZ?&E=-*C'!=U=56A/;'_>O ZI&C0X WXVL1/B:3Q^YYR=_WI5FP$O\&Y+\_ MD V/CJ$P))8I/-ZC%99+ P@%W08<2S@E)SY&Q*=A>0H:#@KUZU/@C#:U;A-U MHJAA6:![?;J\O 5:H=*J ="5.(.5NN$P:L!+J.XTY:DWH,EI; ;L5Y.@*0#* MMW3NU(/2]DA V=9"R94P:8%0*6$V$S;_OD48T:/?0$D%*2(^_Q/]0K#96S@[ M?8U5:_B7A)"Z\9*>:#0F@QF&&&MU[I8V4[5K,[SPT)=0_5%A$37"F5V'R9JW MGQ$G<\&8%D:J'XQ<&+<>C%AT,$@IA/VY%] 9XC?2DNRJLK" BFPVY;(1V P M I[DL^2BA(9,((N\8@PB1%G*%HDJ+?*R;:*ZXRK4-? O$UVVGW13-7%(%SZ! M8-HYF@"UC2I1VTE:&XIM4UO[X8N#5VLE0W(Y/&&,0>4D$J@(1).JWPNW.*V< MI!7\-TPK=RZ %+=Y!^=$ X&>N?!/@X<)^OI23?6U>0]:]?5,\B$^&G*O<>-P MD%+=O9[VTDK:&Z:][KX.CO"^1LG>-7%:AM,NI+GH*]A2B 80D_9?8.*Z2I%D(UX:>^ M%T*9,28A[]&&%&28(5]2>=LY;*[^$C-7?WD7F*MDK4;BK**40UC$:^SF>E]S M%SACI)<>F];QICV]2A8R.DND&VBR(M^^J_K&*6"!CI>L'X=OSNR,5!LZ$OP1W#,P*E&9#9[@Q^!'8O1;Z#$QJ$$\6./[% M6RSP.77Z7T]W='&.A?H7LAP7V72WV>REE% MF/8J=%8YAKMJN/;DX/WQ(*ELA&+/IL>%$K>^ 6!G:,71K7M%\L96 M))W1]3L!%F$B>:%_6P0N-#!A3<83!@(%./1#X5KJO>6QB_[EBK>QRA/#*,N3JG29#!@R!)O1D0O)S8+PM4."PD9 ML.#6")9>6),JIK*!)J:"SH&V"$D*>+B.^C2J2PRQS,09UP/4,[!Q&S>@-'849#UXN;8M?-;J%=">2NZ \J4[L-Y34(I(7Q:XB MUZ:BZBI4GG+IE)V^5DU?"VQ]^!7LPEXIH&J1[C)#M4J%BP1)V"U"KE.TCG&FE_E"^%"0LVSR@(LAZ! MC1C4*@0C!-Q*BTP[*^S[T3PFW0,4@-,7"W@ ]F.L8LX ?28)?FV"C!U.((6G M=3O*&":,^O!Q191[<>!!X/AP#KP&6$ W@[\"I>%4AI!3"S):PS&E#0Q#.U@-L07-0 M#!0A'L(%C* U(OOX.UY<&M@%P;^DU.L%-K04NG-5"VQ35 H>'FQ 6D$KX;31 M1"G93S/Z']:=YM%46I*HJ#)I)DG4D71RR9,9*U9P'*>4HXC:.%N=" M:=ZV>B!6-'P59B07(CIY96I5>,H03.##%)7]YRJP1"&!&)N/<6?;QKB$+<01 MKZZTY#3G]$:8R(TP@Q7/HE76\YN,VJ/"S";_3L^SJ[M:SD62L=K8;13!Z;/# M;9^_89P^2L'IS;%4"F!.&[L0^:^W]'W_;*WTOU-5B+0%G>$)X36DA MX0I/\WPL%K*099'YQ-,-;H-3U2/\"Q,Q!'<2Q:@%7[*FZHQK^\,C47&6+%&- MU87*N"AMS%'11HO6@J*N&#QQAT_X)6<';P<*?.UX.,!*> O1*>/;A#F_C6H$ MCF5HY Q%V-#3 .O<#18[X,\W!=3',T_6!&Y''EO_FO1/:MKXB\5=1?0VY/=;P)7 M.[H+75LU'0'S!Q#.-KF#3>;*X"AYH=9G&)QE9._1'>WK==V(T^/(0"2"ZYE$ MVQO8-F[XZK^>OEQ4UR[/!\-\+6J 3#DHZO.KRY'BHY2X5'4-KHG3K[J$FWO6 M%]P]EW]S:?WW4VXNFG[*TVA!+7W 6>:6RT2.ZX=5 &&P)V;P0O+V^ 6?!!\3?AO(8Z!XWC]?$MYT\@>B;^1+TNT'4#2X7^2T*?4 M(?R=S1:J;E*UFZ0=6 %#22M:)S57,5T=[N$Q^6NH!)\]Z--H"ASR6V2?G'*- M4/D=%>J%D2>*.CZ?%Z>,HE)4U CY7: "^8PJD&Q50NXYD MJP**9]E,Q/7DQF@AAS3#Z"6A;T;F>2DVC3*3KAKA>"A!$&E=:5,((I,7 VL MEJP&/D2.8V0\!"0\]7W KB_HL+=T5C&2S8F-+BU+*,GJ:4DHT7KH ,R8<6DS MD:LF$"4/M!EY:$W",^F)I^>$SD>0#4#Y11QGLQSO47J0^^>!\L,G^1C>Q_TL M3@FJ.P.JLSQ;D%PD\T3.-0WB:O$L?DZ;DU6)]YU'^@PH2.(\1XJB\XZ'(7IZ M[P;V/#?:FO'?UV-A%%3[,9PX!;ZL!0'QB[O+M3'OLZ-1C]OC8,H0KCAH;"": M8"EB2&O#J+O-\ WHD\/LUIFJ8W8;-PJH68O@'O@UWOD2VQ4 \3ZJAD>B@".! MG\8F!\(+V1-)C7>EY(.WV,$*(EV&V<8*95\X)=X7D2Y(M?]QQZ$>C)P,-59O^'[,MD;S&JX%0O8AH%0C!02'AKYP.1ONG I1R M,F8TN!-)A'&G8O%U!^&?%OQ-1"Y3"C]HG'ZJ56BP,[=K)]QT_09Z(*@45ZJ# M/4:BV4TB$__'X&)P-2B)NKV2SRM7#RM F9*_XIY,3].5"QM07RW]>P?+QJ:> M@Q"1V6D39EA/Q5!\_U)4 +]_F%0GA1!3KA8Z*FBDA[ZTH]ZG&5]JJ#\8TBPI M5+EB-2W]+"=QX1.G_6BL5V2>I;C;_.?X4O3T#P=];IPR!6'>A>ARF!##%U>[ M:,R6IMA&I3'G',I'W9ZK"T=Y4\)AXL_1432A#VL%T4=$F MAB>-\-)V]&))?1UE,%-GKN^8C_+QJLE*YQG)2H0MM5[_O[^I_['L2\K%9[:S M#O<*FE/"7/WF&X]7SR)D%LE?CKRA*=M6D'!)QL##WS5TRR9,%L:=8"?"^R6] M95BN8IDBV[B0W:V7L/VB+C!$25%F'GB](M5E<=:6BZBCPYP.\&UA:P4EWZVT M0.N2?<.K125H4>'69XIG:'T:,V MJ-"HRQVNS42MKD./#E,ZK+<-[KO1H8\')X4D7*L5:65S'7ITV#KK-HDBN]*A MDZ-",G1HOP%O[MUZ#\!1MZ5**R$M.J&M5%*@1X>M,[=RN@U&6"[5J#] M:.%.M>B+K2ML\;J76O7V/ .S??2Q9;T]*6\+3Y$:#4O6V;P:R)Y0)YNM^??K^M5O^OO*6BT-G;1U-E"=1-86-+L.,]P>4O8[/,[;L;*7%),P]B; M#][+ A;LCU"@FDCYPP-K+U3*0.4!CJ^ 8,N=!5<_(@I*H(OT8N*![B\RABM1 M$Y$,8'*=*%"Q>>20S]6)6:; P?USY3&8C/RCDZ99-VT]S%@2?.7J\\WV^4!(CBTW'_\*QI:Z.M>#E**R(1 MKC".7TX)#QBQF(;0[#LP:=%A?316*N%8^%1E7B>/5,FGD>&=B&[;M*A=>Z0! M5[(77RI ^5V5\&4,,]S"C5O5.A7(=5H'R4WU7"V7Y9&-$J6V0KQ:"; M$3QH%T/9*G3'*5DVON=.=M=+Y!>4:^72O%M*;">\N4@3D>"/Z=O*\&&5=F$% M'JP\;O(1;$ IL0OTXTA13=#-E#19,SU2\OK@J3Q2^9?1IR,/N2+&<=KM-Y11IRI#7>T MFSR9[$!VS--8\ (6NOB=GZA>@&FWQ<,H>]LB($2X02X]8;BLJ"OT'U[C7BP' MNOLX;ZHA^V>TJU33 @B_ U\'CG).BZ?^7 W9?159&$]BE9C,*.A?& EM!5"R M@+09I85+1OWAL 47VPPGP[X6>+=/EJV!K1QA9&.20F%5A[0-7R6AT0HL7'DO MN$HR<2O5R9XOTEKC9-_?9*VP.R=*O*\]@6M- \G@C[M(.,GOIUK"Z(TFX?^N MOP]7'&-J,>X$N^5_R;:D_G89$51:@P\#;+^X@4?F>D?Q30@=)< MW:/^X;AI\YNV+^#@,\I"O?2V4-L[/EV;_<'!?ZNOX$>ERA)&N_*TMA?BU#4R M6=H4+^NM%%=JR%8*4U]#21E9K&(0M&H,]+%0'MJ:L-TW=162QDT&",6;CL.Q MP=+C09)>J3HLOUTE\Q>DP19E8-19A3P:E1R#L4/>MTN=_*A@ <6ZS/%1R0D5 MKQ3<::&HKEXEM>H[OV)$=?D(>G(G9.=C5!7E,3!422D 0.52S+AI'SB(:-6X MGFU+2ZL];'N:HFRK33979 MR529NA)7"O:]<-(R_1T:!1TSG'&BO6:K,U>::JAPT/C4PA8U#P: 62R;+P9# MRZ7A8=%$#.8$!C??3(K)S62'UUX9*YS7MYLXJ-.R5V]%XJCR +H$8!%CB:#( M'8Z-3=%P@GG0."(4HR0JL'&:.JZ I?V@X\NPJ>D3S=_E9>TH2W"G3,-)N$+; M]3^EM#YQ%"RK,$BC(TMX*B?7>,A": RQQDLAHJ-_'=RM\#,$OD*Q_=#%R<(, MV3Z;AI;JC[K&L,[)LOWZ"TK(G24*,"*1&Q]X\$O36&'8.-II.=QT\Q=:('Q\ M.9$\6#AH_YJ85K[B>JW_RG@LFA1 Z2LHW"5SO4]O7%^2(^\_^43<2PP<-,Z?B5=6\& MO-][F,=FMT?W$]F*#,6'@O\@&0T-99(07YH043CT1]#C%'2YQ 60]5?TT@:!^*PPK)"K5OF P;OKV8Q"?>BU%9X2FCIKE'U1'=^Z6-E.U:S.\ZK!BAM(X M:YQ$+O1.FX8>#X:U&WICA%Y:C>42TX!,^*4_7D.T[$KAI[T\.G&?K)"C#HB3 MJ_!(C++]M%2"$Q&6?>S/O@*'H;T51 MJTXEV<1I&>9C&IRM !"Y= M&IAD6:+CTI[4!1$S M("0AF[D&2,3<3PCF A0S:N1^$_=XUV[I(6$?T:>35S )B5T(Y<\2Z@J<=6I M5U7]C@:O8OH8O5FCAI3K$P*.:DP4K29A=M32<2T3J[&):@;GVCE@LBK\1<(= M=S>CG13T,EFKLAS5V%DT@-N_Q%8N^$Y: K]AJGCLI52=:4$FCZ$O< "/:[FJ M@7Z^HMZX7!_447VY=3O/B!L=I=!KR0$_J9V-?'])NGM_L.8J%/MA\F9T? R< M6/SK;7DGC\@%$Z3Z,M368#)S@1S#6;6GZ4D#M7 $ *[ MCBK$S' LLA[@U^=[VG5^$?;+3?.?UJ%4!/PC-/LXF,#I%QD&P1H9O$T$HJ/* MR'WJHSSV+S(4A>^=QXRWDPVY]8S0%]>^>$T9E6S)-TY644G8.]Z">DTN@47I MCH,"T+32VC'FTO=Q7L9G2H[AC?^V[U:**RV%L*.+ &FSC32K48JQ&IL"G"S( ME;DZ_B!K_. _EHX3TV%38#;RYSY[QDR!S7H&?_(SL("E\L8!Y0./FYL6=RSK M;;[(A.G8D'A1W!N^K!Z%\8!(S*F^!):M.XKF\3CH4EWQ="M.EH)T5XHFK>^U M9'=.]'/2"U6ZX$H6#_^!9K7$<.:JQY.-+'P7:E/P9AM[QKG47-0%5,8-HI?+ M2NZDY\<68;&%SCV7,JSXTFB63P?^!IKJ@_J :J2<[;LF?%IBBMZ9&/R1.QYD M>"*>RFE>M!"[#-S$? >QCA8!MXS.@)[A;3#OR_1365+B@E0MC@B'UGG*I MFJJFRO"U*N0*)3@5ZK\4AD58Z&(5?U]_[L]U36/F;SZ+.H)#C^5(X7S0'(T& M'#0;5%L%O 4<;/AP:G\**FJ;SQB-51'%HOF M.,JC"$[$"UW01,X%:5XY6560E@O_7LUF/'%EXPCP>4KZV<_E='+!(S M S$LZ9XR>#*UZJC^W%,,3,U)4;7+*-9RPE10VX19LICH*HQ0^+'C.FLK#8]+ MSCNM2FT?V8S!@;5/O/G1)6[N.ZLS!;%-E6B^1B-W^=VC.CS^&::Y4\9[T"8D MR'W_/?*#(OZ,:-XG-K)CUY0 CKY)4T+\*S:H<^YAK0]85'# L6!TEECG8'OL8 OSY2?OU^K)AZ$')?S7H&,+=\#% MW64>Q,Z.1E(KU-]+>.GOA43Y(3P*P#0>/)W,C5XTV7$!C 6U&61"&IM1*0BW M@E2^#\K$I!(6?:9S5F=)3$-]/BA>X-L6=0$VJDIHXOAA[=P"2KY='X4E"-2P MZP+3-:,/*#:&_/K6K._!7][\_:>ST>CPW>WU#_K3\-U;4=?02_S0T+FK&5FP M,P>^1KR:[SWO69^M^VW-RS1,YE29=3C0EN#-+MA<2_@=3\0-EVH4\-/P \1\ M-W6(GF(C;!.IU>^B/5S?1>J.3.3]QCM!7"7FV&[^&D 16?("9BX7IS%@$&K1 M/ VD 9-3H[$BCQW^TL_MX$A"X";@)W FZPW6!)B(*NWM!4[LX#\6E26((;I# M!A<.#@W>!=)SBDX(;JEIND/\@[<9?&9:?!6L/TKL5.0.DY*)">13W7?R\/K.X0,3<%W4A )O)JPCNQ!_30! (+IHESH)36+@DTXT3W1&]+?, MU.DPLN7$L[GMS*)SA$C)J=4&ZR%3ZOW/#*?Y]X1<0M M%.P!5O ,@AGH2BKQ(>IR0E3&GI?,1"#F[VT680CU[HSH&Q '*,&P5&0Q!38E M,Z'$5^(73I2=/\T9^M&(H\C$^A!!$1'$;A]_^V#2=0G,PS =@[-3"95T6P6; MFH3RH:2^"Z:0X=%SZQ$\S;VTEYSJ D2TY;C)#CA"B&A6H7H(D"U8HD;]822Y MV^2B"[N)/%Q1=_.H/'HSNADX3H,X1N85ZUBJAM?#/2@%[C9B&6?N27<";B;K M_I",R/\4*7&CT@TJ@$ 7ITH#D_AB>"25NC#"*C;H=_\C(>CH K]4Q='A3E4[ M8/6BV YD-&Q).$!CJ(FEE?X/@0A,:P$*/C,?=:!,2OU[*8CZQ?3EDKS;@"4E M!>,JBGD,>U_2"&/ F@GR4:%\P@_!,NH+P2 X4BN]< XX&:.KY)R-_N:F%DP8>AP M?7-_O#D.2_1L3SSEXQRPEC0^ V_(6UII)=@33P>-0/7]X]QS)#$-<[>Q3$NR M!HK+1GVD>4Z;T[0:A''$,4#5I 0"%]X -Y,6!<] QOL()Z*&$"^?B MZF.>7X%^=$&GN.&'J#P@)WN\A2RO^:C;K[!+TAV)$HAM5^:,ZHH617J[EK(G1H>MI+2"Q8KL1^9"'1\MUQ]RIT= M]Z0Z^B8S]Y5AP-PWQF/Z,2F4I*K!/\B>-:K@A6O_Y/U'U6UU'JV!3O;SXSNA M1S(VDI%1$*V]H,G'-J. J=B]"I8[U=28;GA&82!OHJTB'E4>:Q4-(IR(O:0I M<(53M@Z?(V /;@H5C*G,VX&=\5?%PIVE7Q!,\LMU^LDVD2-O]4&,"D M)G K%O?'.2/F3:R"Z:NJ]!^(6PR]*I[1Z42L9PVI7-3-6](9(#NU)!^?[E$-TUL>L3O-J;6H4U!_%CKZ846'] M5=HMHO=B97F])GS<6P.&O-*9;8+ANV5.JT."9Q!LT"SO-"]38@MPN$4;S)J! M_G.!1%^Y86"R-BB:3 TGA6.6$4"%]E/!=& M.!&)()"#"S67S.5G<3CTCMA M) !&*\)-5)^?\-X:8=MY'7LIV 5A"ZAUQ;=0 M:M6*H?N*E)@24?)QH %@#B7^*]=7R:4QEY=A09>N83D1;-ATKT=""X5%-)[E MYC=/*:-$%'AQ6HK)N@9&>VU>7)1.N4D6M5 I9&YD%AE0L>%+N8S@+"?E.3_; M)4-05JX1R^KY'S7L [=A )Q0,*8NJ.1, RL#%1*;U[,?FXG-DQ3_49DZC?0R M#3E4F<>K9NB7S5"FXW']31&C0_>%TE_\&^2O#T18$9I(A^*.:9&<2C6@^IK[061#$J8&ZWT*0I; M>(O,/$E//!%)ANITZBU$VH&&*0U@3KKQ8K,"Y/+2Q!N/3LCK,^P5;^;D&U!!Q?1;"$([B39>M;=@IUEF4PFQZ-#I,BO3E&QT0$? M(E>+>I4CF21>L,[#TJ#$&@HC#;*G/#+XVA!%MM9LAOX<'Y5$%(XT>8>5C&#[ MO6(!AKQYW0,N:?. L'0D]S"\31T&X;' Z2&;MG+'F2T=T_04?*=KZ"_B(>A0 M);!(BKB,]@J,9\2(8PBZ\]OQ\4H:,1,FX31_EWBN<&M#:FL8IG(B.!EZ#1)" MDN(#MT+)<:)&3)ANL;:$Q2Y#=2QTAP5-A:E1([.GNL-"E40^$,,DH%FLV&L( M)B0APRF+3V1.8#'DE!] %?ZX["2UO68P%]7:JV;H&-6UB_/6:A=*5<7B_*B4 M8D$45&A=V&BQ+,R(RA(PK!+JRGF.*ZP-ZHI_.1LH*>>G]2@I1=3Y'3*1USLV MXK@;&]&-C=C)V(CZJ?K.6RX-/U,QS%PB^9(VXVP*%">I0I(V,[,,PWIR?MLM M']J@'"E\_@_\^'=X^B_!X6_YV>\M4:&$2)!6IG0T/DXM4U)^YW.T.'G_WP-T MV@&1+#$4;#[X?\>8M?]W3DX@8NEM/OI'> )!4S=!]+BB-KRT->A.+&T%_[$S MO5"I?7_ ('3!$#3D74XLU[46N)X6V^DI;G2COD[E9Z:L:8I_$,W/0]$I$=&V&\U@+H0S72KO+A5"E)+ M>7U@$]9VW@S]^/^<^ZQ/:E-]_LH;:<6CDG#E>X;["H#$<5+)3&IH<;6G"./, M-CDC^;PUO3 I/C"NFK'ZZ.>H<*!,G#K>F.TL.CW.[>4M[^8&'2P7IN9?SX?5 M_6K)NRQ'.@N0JZAHR\3TI3_CM?O>IG%Q;Q-V!3E*QL@;O$<.AC"(7@SP;#/\#;+D*8E+F3BM+L^"0MJZDQ;E+XKMX6W42S M]GY'.04H)Z.-7M/2==>4,SYI,^6TQ !L4BX/STK;>R9S]UT6K\6,,6"&9GD8 MJ8BAQK:U\N([R^4O>8T#=Z&]A[L)EN,9X[.T&1PMP(QR8F\CF1O:1%-"]]61 M2%;+])T9N-5)Y&B<-I6B!9C10C.XO>[G;I7VK_)R-<1X0"V<<-H%U;I5&J:8 M5^+]3">Q<(%XNTVM*J"I+\BQ\=MS]<%ZD^;CW2=*&CW5/8P; ZE!NZ99HVF_ MT"TCOHOFQ];1#?;4#GS;CGY5;LLB5[7O6DN1:BH_L7DJ=N0S>;+GL&1XSDD[ M2[RO^%9C2;!Y L:O<2DE7RH!B@Y,_PR34-BE.*KE(K<8G6CSZ7)96T[KHPJL M+:6!43GN=IJL0WOY"-:=I'TG>=%$GY$+4%&?64_T-$&A_S]F6W%Z[[]XT@0ZK&X"=6'&#KLSL3LC$E]1+N[ MP&];A+#YX$I;?>G=*NU?Y>6J9K#F=;SU55=SUZWR$@+J(=]E".>;=]J>IY)5 MT%.H7F,FZY3;-G$RMM&P@I=U^!SE[:3A;JKEE+B3WO DV8:\\6O9@G=NLU>^ M)(3+"$*OMQ::0;BCDR:3;PO';^;#)TJ/Z M#(0N8["\C.ER!KOTH6VE#YUD-$2H+$8WSAH\Z1UN+0N_35C6G:1])WG1E)^1 M_E-9H=F,\H^0\D<;] MK\SULW\!^D8I3. \Q9]+A-M6F\2M0FQI*#6OUR?(X MYVEC$S#+:DIGI]7#1*T&_]XI&*_B**^4W#.2$2HK2E7+J7K#L^I.GU:#/ZD? M_2JFA/Q*8TQ"@VR"L2LO:H0=5VJX*C.U'-<)#Y#$@5Q\Z WJ'OLX]D92A)@. M[[C9 VT.#[,TOO%*4<6- MUJ^F(3=V/G]0RDGQ02D;O#^M%K]"@L#:U] '_BPR$P6-D3YM)3&I*.>"##^>:O8D<"$ MKX%$RKRX[1*+!,[1T>!TN\#9E'0NPS,U[W <-!_7"Q)>:(HXYO@2\91F7O-N M[-LG&;?:[*AZ;[G"5*F67[\_=[CQZ]S2C+*FMM$A7R/(-VXQ\NW<*;Z>0^Y* M",O.0EP27W))O$U9T*W?K?]JU]]YFE-[&5-X8 7JL&NJYUZ&^1R3N7G*/O?= M.:J!$4F2O/6$):L22 .OVF;KQRI[R7;KGXQ/8E&\3 ]FT5X1L=JO,'E4'L'0 MA+N_"B"WAE$=\A9#WF$*\HX#Y!WO'GF/&VEMNBGR=H9&IC#[@E8E0ZEE%LRI M>64BW0<0>UXRTV$O5:HWG!59.R\*Z M'A3=9PG]&BWN>,G0M'%GX)Y(YHBQW5/N/O]=72S?74A!_6+M[WUC@R?-7I;]G\&JWG.[\Q1"2+\\WP;2>@ M.P&]+TSPO 8!391P#X2P*1,<'K720.EPX&:^ZJB2@Z\/-T_,VXF9G/&<+ M:&_2YY)9-Z?6@G5B&6#R6N1P._H!-)B)F,LY1W5(=:S;(L\C$D_IX4"* P"# M/S4T):A!R.X;CK9O1^VEFC>Y9),65RJM?O__XMKZR+[,G0QQE M@K?E@7UXPJ$N-_8K[,P_0>@OD3_/?=7UYN+S5?_#[=7%/_L7G^ZO;G]35.-) M73F2X%"W,UD$0.^4.>/-4D;8#$5HO#\=TO_@=PEE6'QU\&OJU?SC8_K5( 77 MK,E9EA/0&4N%Q".6@S@\K+78NS)D?1';Y#U5%X M#QDQ'F)[#*=:RYCE4I__%C[Q)1SX$^S_2W#<6WY:DM5.3DN9X59;RB0ZP906 M>:'&,;MRY*=<=*F6\(V_QW<%G!XHP-KXGX?%*\;77D-FE_BJ_5%J:)WB%W"W M(MA3W&-0XXI5N@.LO^M:>@!DZK[5-K5Y0PG9H"UTB-*0B<'!G>MFY682S;VM MPXKBG1ZVBA5E>GTUEEXFQ//I8=S2+@#M)I0DN$'49D#" ,! FU'4!9S2=3 T MC1JD!G^@KG\+T&P\FQ0@U)GT5:>=1PLKN5GE-J[1Q0EY$?>Z?)^S_RH3G M_S,\6P:=5;"<@FPIRW/1G (SR;86RDRT7>%65+W#ONH?HU1W*7.E-^;Y9,_2 M*J V*=*[L8%7ZDO5N%%7U$:MZN"N!L.CINK D:]O5YD(F\[Q^ MG[P/FLPJUL15=9/'2MCS=*Z:#XR"*2;\A$=*K F4ILVP5#PR[ZK$RH/,6^CH!/K"OMM>#X7\PKP>\_67;) M(8N9%:H;%*:V'3M>+Q+6$2MJ G7-9<856\N41V.IC[K$Z]A.SXXWFLS;Z#SI(EF5H1>]T@1+/S%; M69^ &X+6SG)QF\ZJ3&+T[K(J$[S:9@N0UD'+7,ZUWP#<5DRUG;?9;H']\[;/J;YMG($P[>CP>'<35V:X'#MC/K'<3P.^)I@'BB!FM)\CDZ/,PAG^%X M<-9V^MFNZ'D)F0&MVF+;N62C*FW4W= IL)T"VRFPK9#!:2YHTWQ($OPGT[;@SM" MMER86D;H4H!PE1/<&6\UN).?&9( 8"(6M+VN.KNJ!V]Q#XSP.^.O#-Y(+Z2_ MR@Y@HF%NZ!CB%(*^UF90!]+UJY"N6?US-PO%E&R-O9V7=0B11 AIT;0 '=J2 MHA=*^,WV8JQ?)G)/&:VN/UDV]34Q=9,I"XO:73$3!8/RAVIZJKU2QD,I;ENM M![>^4/[H\*204IS:^]9Q&,M0#&1Y#7<2 ])?SS[IJ!/_/_3^5DQXZAT-JP^\ M>Y'56GN 7Z=5\2OLV&@4KT8[[.[1Q@K7_TV'=8^OZ)&8^,MYVLS+I/AUVA[1X@U'DCW+H^1-I@WD1[LR[VC5>?=KRZ M/&D-#YOFU:@"W3]9U5GT8?5A%!V+WAH>#9MBT9OASQYPYI>O19]UG+D"114+ MOF_*F;%Y>V7>?'+<>3[V ).*19BK\N8-,&C+Z1N=VIS"G,\[YER!I(ZVP9P_ M65YUK_3HK./->X!(QTWRYCP$VDTS@4YE+L25QX<=5ZY 3,UûZ8]5]9VC M\QUJ/!T:%46C9H*#!=!GGWGROFO*]W-F,W7F,KOEK'?#]*V&2:OP[G(IL/$( MX@5>](;<_*1W?M9D,_9BD-P"VZ\)XSI,3\'TQD*;A3!\-P*G'L1^#;:"_P_O M"7AOX?1<7A.P%%==2EI5&F8:'LA>FLC+O;'@!/@-T\FJU#_E$'[V+O,H?]1X MY+6JZ^BX-]J@__S6@-L*/&S%)EX ,306/JY*!,/J U)V0@$ML=)\F>%:2]'' M3GY"R!?[3)[Z.2SUGM_5UW8;>>5O8D2I8K.ES1Q #,S9U\5$G>;E)YV)_ADF M#]HD ZGE+K:HA+?Y=&]RV5D&(7'7(7V]\>KHEKK;= MRWG[$@[1<8+].%T^)Z@WUZ).#G $6LWA2R;_EC@$VJ8"A9T&H48"BNHFF@1L M3Q,:OP!-J!4&V99/ELO[*B?%U-N"_J1WMM]ZSF[<#=U1.G(O1>[UIBY5==0< M;LM1LT/Z>)V=D&Z9Z2KL>U5;R0 MOH&-&B:JH^.3JFA]]+>\F2OQAG4 M3$WWIQG]#X (T#;@5[__BL^_+_HK>ONSA!G4'"_$3O. M;\[C]_R*/Y'>VN> HXX2/[(R9X:F3%9(U@Q.J#C>Q-$U7;71R"+>9*CXL&LI M%&X'$E]:CNXZ0%1@@P&M6WB21YJ\X[ IM2X+'D)">/!46P5\9'(DC]BYC[SE M3['Q.OSQ&LCF;CIGFF>PZUD V7122B>@X_16;OO1S"UXXS^8BOLZV+'WHNOO M5G,[K]KF\6PU=VH[+^NP(A4KDNW$=HP7;0DN;[';&XH>DKTDXUD@A-J>'=SZ MWEOCRHE/Z5K!A7NIVO8*9.>?JE$YX>.T=W+:]0+:-U3*2!L:]O&;7:'2<>_L MZ+CU]1I[G1=+WJ&8Y=ENMOSR4]G'E9-@UME]5:/=O?%Y]8!W5Y_1(34@=48^ MQWH)TP12CSE2-RE\U@WBEO82%0&:#'?,2.G/K"5#+)$^ZXZHNPPQE MG.) 7\]P&$/;9=@&J604<"21+(B/(7,[&V2@)':,6/CK:H\E4E@>QX?D9$/S/07E<0+1$W M"P>%PG^$S;'GJ>%I+!PP$F&,F\^?[F]S7;FA2$H00@JM,)_U;>LI%,.)?H>K_H?;JXM_ M]B\^W5_=_J:HQI.ZNYF/OKRZ^Z^9?_%DUWEH:Z0BAB+D9_@K&[**^CEXA!1W9X$,'3@.3KJ8OR6\8GXA[[:%OVX4M[/P7N*!:*F=HE\D%S M:BD\()*.4$V&5OI+;$^_Q$/=&5P_)>L& 1LGZETD17Q2=9N<:4$>1$8<]V1- M(L0.+O$O)B8B[S1_"1#C@E\:;/G&MDSXXY3, M5 ?=%W/5?&#.%S/\C&Y.]:611=&G:RBZ9C(I0LGC6/82:@P25?&BEI%CMXF\ M2VJJ:=S@H'#^WWU 0@I#E*<,)GL-N(B - MVEG,%IN5R10HS.Z=(="L. *#T MN8I94 I2&Q"'H>BP W@$31)8'9D'NJ)H+S/*(<:'?&<*D)SM9UMI@;@9R.3' M'=+6/;([SU[=@5KS5SJUG)6AEGJPH0#!'$4(1AX#'H?M%R&/6C:Z10I!S+?9 MTK.G<^JR8EL/MKK@3UUKPFSEB#(WA@I!3_5<$$+P:BTLFU"T MH0SQEO"G]DQ$.G-0$+@TMA8+RN.&G0\4.@!?)K@7 M1WD"0:HL04[KKDBNG( B\C;N>5UR/ T8"O'1U:/#R.BP) MON+X\@.VU0#*1,C""F-(49Z"*JR-3Q@K &11I0@;1&(AB9(+VJ.R)21WN,E$ M4G04U!K'M!O "4NC'P0>TL,(8/L.FR)PG^" #C/C,0+32H(U!$#\Z!%MF2?= MG\XHN1]MTP$@VT!M44:Y:1J>S5O-U/5J_D]:\3T'Y[)%,YP@>7[,EHR7+Q@ M+C20Y7#R0TX %*'R$_S' K@ICZ V "(H;P[PUW_\>= CE8'(IY4+^5GSY@I7TS',_A+/P.[6L(K/G_Y?/ 67H#E M<9JPSA[1VX+; J'9U_EO8.-+?4G\<>6 Z<35&/@(71P3H ):MH?!:EY@%SZY M.OVO1P)3S6>#:3V4Q_W#$Z2EZR>3V; M5R>&[LSA^T#[,M0G1WJT_@G[U:P%_O5.]31=O(L[X/[X\Q=16@D\3<=6$[I# M:]LZD56V*_LT(@O24?WI/ MJNYRIO=!G=MP:WPS@!T+1(G@C5SST)F/=4@()L5,A)O5]-#(0G:*RSDJ#\J0 M75F(N4TM7CV,Q7;ZE#E\)]Q\6ZJVN^**#D E%0YASI>-O$<2>>$Z^FEB%._$ MYQ/$"#BC$$K6'W]R8D)F$?B>P=3)5>B/TZR^1E$])> /]@ 8Y.[JQE!-]\+4 MKB1W2XD!5:R'/ADDY_E%_ V(@H&?OJ<@GS!6<2Z,P,/*P'1>3&@1BZ^ +[9&F%,G^,@WKH*K--6$ FY3J #R:%/ M %X,"+1@8/YH@S4EKBEZD%_QFJI4)8*/1>J<(E5-B12"AMX#;-;Q5-,W3 !D M!F@M&$QY\'1-%:SHXNXR#_)GA\<]3JJ_Z^\_2(H'+CD!:16X=V+:L&3C#N!A MS J/8('JTG$T9Q M,(&L/M\J^GX\+I -DHEE/Z@F&=I@3_X%A#IE4H&U&18\$_K[W1=4!!E_+W^M M0YOF%"7Y'$)DQFP[*=I]%LB]>\&RK@)0&:;Z#].49'2%\H42CP[0?*;I![+#YCY M<]7ESQ,-BFL,"]8XEHCMZ.8C_)K@@U$=VC@^*@!'C^("/AS2@[V6%%N)FRD MK*7A.?5#*PZBV(%8#&L- =QP*>8:+5+X/O M<">@"$J#P/&2L(T8L;[^)=0KBO,"[05PSU='TN9WE%=';GDL[P91Z#[DI?^P M"G]#BX0_***KH$O$N>' J:B+C-;I(KZF&P4>7*5H0XQL%6PA >6OD4%S@$O.'K??BVB\0FV# MEQ30?8>'@>Y[&<:ZD%X;92%!6Z:@#U?<:->=L$A7;28$#C?CM34L*RVE WAH M\?!,EGX@%6%3BS1 #;@5;\0C\M,"%AK73EW@!5H^[SK)J1AIDG==T!&K2K*3 M0;*)7DH8'P&8?_JU_:W+B1I/U]?@5"XQY+$11- M4F>[/1TAJ]6V9OI:27YW]],$2!0EN$& !D"IM;_^S:L.@* (4@,?!1DP4.5+&DA]QLW,P+5&0^2)>)%LLYE*2*B^TG#HI M'5FN64%VPOM)BG9*"Z0O)/>;O>8HTEN+("B[T06386I5(PE#!6I(=122WX1_ M$XPJY(YUKI^Z0'2)3FE2$G!PY1&/2 G+3 QD"P*JQXG,TRGF/CGB2^7$(IX# MJM0E&PYHQ8\Z1B">,4$@_IB+>Y@MQ_/B3S(K'SPII0PB!6S'/)U0F/GEJ/^C MR XL_%M,41.AK0RR4OR1^)^BK8)X M1AL5! A#H^09D'(FCIEC;N\>.N;V.TY$3,+L"DGAV"[L=)^02D0SO&SWX[%C ML=?$4WX:S ]")Y0"@:D@JMK38$S=:M*@K_N*3FM'P"MOT8QI<(V)0-7"^B M^7*.ST_64RI[%6#4U6M=OGM0#W?ZGV.'I!2$AW/G[C#\G*"IRD]I[A^2+#MR MIG^1%#.G.G&Z="?T.2$*;VYTXF"O@D0[ED0[SYE$.TBB.<48YNBOA M$>VPL>XEVKE+!J4R!. $&-"T*]IHXI@$DX'.E9#7@EHJGBUN!33SW=IH5OSB M!>DEUV 32Q L?*Z%'1-@K>"/,NX%SZX'".Z3\59,,[F^J?"FKKS5@0:=#]:[ M@4FW*EQ9'9;45AI#)O4("O2 SH87G.6:-M^U C8#_OP:#KXFX(B+RX/+[5/] MSW7"MY-F+MM')J<^E>EN>\?@YA)'7W=<;9TL>-BY5('';0K&*_::-(X&HP MP9G"(J#7;"Y[N+-YV9?:OW@[2_ KY&"V,4!_Z& MYG#X ACI%,Q8K]W M64CV[WL38CK665YZYDQP1/#(9XM!VD0Z;>#KW_W#'XW?'.E_;U41D-NYB@Q: M5G3[NCY1[[#';HSD!#U+T!&@LJ:5TQ0GC&V>ROY 19FZ(7M+__0OL$G@2 6+ M.548^= WNP[ -.S#8Z@@PF%H,9E260=OO_'38#M*DJ]D[U$B#HZIRUO*LZ%U M":2X;6UX(+51A/_E\E?\"V<4QA.%?PNN%_]$TRP.\"\_'.%_LJMD$M$'8-N3 MG93QS^73X82"4OA]@IH;N S_T5=1J*X5/0L'%+\\"K^"B;5!--K0F?(-3XS M6%URS(W,4<+_""7IK!& ''U'4!Z*KJ7LF=BEM\CS T=ADBN878E&=@\WW*3; M2/FQE$>>2S:^=W"D[>YSQ@I@;/%H0!'9[NN='0)!@F^!-BN[/^:GW9.*GY[H M(BO[CMWI=V"TR\&'$%3!'RKORD_[V!0)_13N\41@'AW!5WSI" MRST-LZ\<4\,V=N0YT%RE.5!H@>8V$>"@%2EPJ]T+%5^':1*S>W&._#?K[<0[ M'O>0Q)IFBN0)HC$!_V$X5(50IE1C)-P%"1Z1VWO#&;NO>>W>;,!W(C3!1(=Q3&NX8RD%]MBO$=7 MJ-O9_GS8 GXJ6S0^A^T+/ M8/)(\LRI,@Z5,Y DFAF!Y7A YCU[%M]<^JGKD)5]IUE7#]=0P@MTJUVJ1=YJ MYG!1. :L%"(F3P"@?X(<%!&@Y:+)N24!#F\+#"=7HA61L^\Z9_AT:7NV]4)& MQ;+ ,S ;4-C)C7Z6Z6D60YTI^TK%'OE"C--@E>WKJ(.\TAMCKJ*]#AM2FD/! M4?OUW]4VN;2N-W?:5U\X9@O/*YWR:2N_Z#MO5/B.)=_O'C[Y O:3]@B[K^/K[Q)QU[F M\%/5UKA.>?5,R/F:Z3(ON$WW]]"?FX,^EVNZA&U9Y-AAQ!]^)9W'\ M^=/YYP^G[XXN3MYY9R?G?WRX./<^O_<^?SDY.[HXA6_=/F,UB%4I^?EO S5F[#]G8^%T\EMH@4]B1/M)RQ8\@VY"M$7!*B!_96LM M%O-'C$UY\L6G4]U&_O%Y\9'G4 *V$)C &K>S&@V!X8UP(H(D@TX78X*40J8N MQ>B?ZAXQ3 83S-I3_P\P855N3'B8HBVEU.8_N[Q,I0P( &P$'^7@ W S[&F[ M/P+**==!E'5$X'Q&,G%R>TQS1WB )T]-XBCQD,TS7Y^6+1:.+LH)!/;BA93T M5YQVSK"']U%Y4V'+67%(.ZO?V;\R\[K?I:S+!^[NV DBB=!KEV[8=JXL>K01 M9XUBKH;O[M8W^.ZQ\ >_-/X^DRE:+_KNP:KE3]UE\CHS9/R%,QR<*' MBO[.F_X2UX(VDZD_F<<4@V=)+6-<,H-7!>:?ISI>$Q6\WVC@!30PPRJ^/TW; ML-%#L]%.PT85;-1KV&@!-N)KN[RA?YUPHG!S$IM_5*:SUXK!FB.\$9JG%QH& MG*^]<*S?9!I^6XK?)!^)P3HL!C[W(Y4UW-=P7Z/MUGHR#;\UVJ[AOF?&?<]$ MVY4=G[N]G Y>;+ASN+J\D>3F@,X.R6=COQ\H$\>]4S)6(+,W4R]KQG=;![FHWO0GG-:,THS2C-*,THS2C-*,\WU&:<%Z]<)Z*5>I',THS2C-*,THS2C-*,\IS'*4)[]4* M[YTKOGM18GE-*&\U3EZKM[/7N/;5">:?8= BO76UB>2N%ZG36N/+V MN:L"=Y1'[+BU%NMK9/3Q9+3;:V2TD='G*S+?@XRNEX0VT;-FE&:49I1FE&:4 M9I1FE&L;.5 M73C[ 6]\Z*MADBJ)FWFY_ZVY?W;A::SH6LG6WE,VEWINMQFN#YFE&:49I1 MFE&:49I1FE&>[RC/*R:YPFI8'8=LZF%7"Q8Z6./&]<]=&31HH1;1V\;I!\:SEV@\Y9.U9(D!DK%>9KP;;:A7(71A"V?A5NQL_N$[?Z>F_O; MA"'6@Q9KPHKK-8W5Z(OM]:;-]SIVHRW6CA77:QJK:E:P!N9%@YYL1FE&:49I M1FE&:49I1GF6HS3AREKARBGTY%2\$KX;)3',(AE\;6*4S\*+Z+9V=]<0^K N M_FX3=U@/6JP)*Z[7-!IHY9IQ::,MUH,6ZR6F:S*-U35AWE\_^C@F/_S93X); M^@+^1EN6_ZXVIUT2_CG)\G!X^R#3[Q9;1HQY#D%X_98FS)_S'/'#=9JA-XC\ M+/OGQI???OWW1GES.YU7INZ>6$YF65&*S]M1>.'[B[/J-U:H.^USN6^X&FZG MR8WUQHI?#504>5]^^_3'QXW::K1$M2H*\5B>U^OH82!@J< MS<$D36$"Q^AZOO'XT^UPY%\J[ T5JS=>@2!7BHG;&W][XSG^:J?EX?]NH6Q< MJNU^JOROV_XPQR'\Z,:_S>#EE9ZN^>7&3U5;\_N[&EN#V[OLQEQ\/OX0QE_- M($&8C2,?MB",HS"&I43@9MXQ'+S5]ZY2-?SGQM_!(]THG$PW0JXP#O,0VVSQ M-N(3Y0]-1Z[BQS6$J8HY+LA93H;>,7P%^YO]\I/_MBZ?5,G^;'%WQEU:_HO= MQRIDWR4J#8CCN;)\3WN@:GF&H?IO+V"#E3>"EU]EGHH#%? WO[G.VEZMW^V8G]V]!8]"[1DK7[]U^T#\WD8>_F5XB_R*2;V M2GR/;T%&;GFIRL9JD(?7*KIMBS5Q<:6L7>%A< ].APRTD^QM-O;CF='0OP_I M?S;>#KT?=MM@X^'3;Q?Z)0\N*VMY2>IU]UXM\Z*6=^-G\D-^J8\+GD0Y:EJ] MKD!H?IU$$]@I?E#H^3$, M#+)WZ6$]%.XR#TVPYU[N;EZ8CK ]A:]7AY)7-@ ML?\MQ1MRQFDR#',C^:N=V#H0QR4+,J;W0[?3WIMB=OY@I_N*_P!&C;5::+'X M[[@\O3W HR6"=]G[%(=A]10>:%TPPK<8/7(&_HE+2*BK+X%%8 M)U#G.AS(RX>J=*3]-?%36HKY2N; :(XB?;R9"@"-6+!ARU[H/1W0=:##.LR! MN?5SC@?\INS%EF!MUO-D6LD*3$$05/D6S%KE#:/)()^ @0O2BB*)-]4" MS21U,+CUP/J-,W] #[3U%M)2&F[21T3Y/HU&X,P5=:HV>YW#5UN>:R;>RYW2,B+'$ SM MA=I=HD_"V.^'49C?X@>I&B27,:R6IML')W$8YAF]'W&,-A;Q1QSF,(_S'%9D M7N=[8_"C0G"WKOV(A.!F0','!RW,5 W">C%/$'SYE'X32*15.;?T_N C&>[V,5 _B<+ 1T9X#VP4#W#KB25&F*YK+Z% Y^:,%]R! MNU\^"_T[3QEF>9K$E[5)OA@<^&=#-CU,I89]^)75HN%]&+=&]NEQ2.H8/MWV M;O%TKSE@P522WVYVP8BJ^P*O(@SP9-82#VJB:S*L#K+57H()QO7:>PO2KR(4 M@F8;.E'69BNGG] >N\:CJ1BGXYA_7^4YA_G^A'6"3:(&$]1D"UEO#0)H71! MW08!U"" 7C "Z-['Z5+&2O_MA_"O21B@$B5CVQ^'.5AI<#HDDW2@,G;ARG/\ MWNAT[&=70A_X0P'%P(-!AO/@C-*G7NE(=M)C!^5<[P!=P13.,3C4?M@KY:8] M^-]_^3&<9;?>3I??UO8^QZ4SOX4AF9VI'#(HKRBH=,,D%7Z@+9RI'_DY_EU)RGC[92Y0J4&.W6XXSZ5]5 MT&1($RZ/CN\#I0[; TL>#$ 7PT:!ZZI@UT!A\-L"I6V)_JT'!DN)DF:SJW:] MF(/D-W3;KVV\+*-Y6=P,.:[)-?L]'BC?P22C'RKP?MO>$3+1U/8Z>^%=^7<; M4I6=(![.3@F02SNU3+I'GDF)-89XF,/A)]OO#T"1\2,P([#^D(9G*E8W* 4J MQM#",7!:F'OOX=E(;,=/"?B[WM$(!AWX+"7=G6>S7H^6*CR96ZE-U7427=.3 MO&3_$MP(=KV]BP)ST?[NK-]Z>;$:]5)[2VD'#]N[:[H@F18N@)=4<]=001>5 M1 6ZYXE/X:?TEA9Q_DEE#]-D)(BKL4+X"E!5?,909^KIJ)(= >=_*7_5P;S( MFW;:A\N]:;G [H+.=BWO7Q^0"WC_AI#H_R^U?(W5L>F:J(#/1Q3D5'X: XM1,%I] ^.9CO5^2 "1#,VZ"8:DQI'*.3&+9;FN2JD!V;#LBK$L]JCMVC8<"92[@&DN;OX="H$ M&81I"(>V-E1HN_A8JW)6^"DDRK$?^X%?,UG0B,<,\1AR F;UXK%_?_%8X'29 M*QX88/8XUH$L/X=@P23%3Q8FVF)KUI"AP(06$)@^3I.!4D'&TS-N@$@*S-T? MPR/?Z"R*V"$MDM":S]9Q%QMSR)9SR$$"6[X"M E2?P@R.O9O=;#MAXYU=3FF M4!JYXZ*!2\^U#,ZS= MJ+HYE"(_/[VXMCV;UUO$EGNG^CD0)_T2U/JPCM\PFR&:?'['9ZRF.:&U[J[WK977')K8?Y9 MHV#ZLM6;I9&+):QG)H*!J:7,V^9!"T&V0G$K5A(;)ZB/K'.NQCGS3H]T1_>P M& XE#TRE.1[>" 8"*?ZC?=[VC+T8^L6HM;<)^B32V@->EEPJVK";$";EO)K' M^@%$[I7($CBH&I M(QW+\3:=8>1)\Z5Y-TWNRZ=C[U<_!D;[1.2@QA:T)Z=4/&<,Q(M$B.#(NP43Q0; YM_-%I2-_^TLX5N*,MA#Z MUO9._,&5IO4=.R6Q*#AJXIFO*JLG>./&KQS\3K.-+<1D:DK"J^JNJH[HKF^*X,+I)>P'6'RIS_#^,(%3\OWQ,:*J M4PSOMCU3SY143MAEC9"3N55/;6*02PVQSJ< V[N;E%NT[LJ%TO1((:./#Q9P MYQ52M=O>Z[QJV;7B&+@>@XE.8"48H";E!5L-R@B>9!!U<;&X$;.66-HD9W7> MPRZLIQ?6N\_"R.2Y0723SX-:QJ=5^@'J,[*V"J-WVET>O=/N[95'!TJ-M$XW MC*X)>61&T$K:ZINQ#Z+'K\3G84+Q9&3.1&\(+H0,,8E)+>%:G,/Z_II\O97V MCZ6A?RP@V=P?:(Q8C-CSR$ SZU1H4U_3+*,)5:TC#+'0U^;,W#.H\.0^T:/ M F/-/]S1$ND>O)$,$RNJ.:..?#H=2!I+?DYOOUVU3M2NX1#&9J.&LD[.TFNL M%(\^>%-&>C'V,>R!KB^(T A.)&.A(/DHT)+#2O/::[<%(A@W!-41A0HG!C\" M#9RD5 0I09@6_6,RPJB=YP_^FH19*.L8^5^5YR0&6NA.XUE'P3XB,!UZ$_"S M*=:#A$"Y PX* SAVW=1?@'X01AZI"@1TH-$/K;D&VPC>&2S'- MAP 9)Y063UA)L$8$@HPHN3'PT_06CR;\B2@"V(()83+>3%C[+$,O#0A/ L*Z>(S<* ;RW/B>R4 MP56HT$46^T"""">_GEZ\.UKFY)-J*6!L?% :H^;UE9TQ0_N*>"?"48'Q+?B!)*J'FX>_ OR6.O[D*!U=RC@6I?P/,?NV'D=8!8$K8-[L\ M)KX9OQU>MO"[>BZ_@C@3B)MT#MK?-&$7FD9A"2R& MV;SB;RB@(,%YF56!Z@Y$5K#9)1#3@VN?]?%X:Z@W>S3#7."]Z:VGKEG4AZB% M?-@E8/@AA7CP"^=S+QD ]PNP)=,.+BA"XN.88H?(Q&C5AN2\^.0'C^ T8G5" ME=#@/ 8FA#VP<,LG12 J*>Q6>/5",O37KTQ3,"'R_57*.W\_&U:MSJQ9!?M:RP-/& N+U-U*7N]2*M(!S*\?*_*(JMU.^W.4FTK M+5Q(P,R=!Y@9VR*16B#>RAM1SG&7L?QW;,!TTS2SJ-UVY_X3+.!6UBJH4+?P MT58Y3I="SJU[K"I)= 9YW++'F62\LSS;J8'L+5,#^>7HMY/M7\].COZ]??3^ MXN3,*564ZLB:%9!_[]#_5)4XRE?SBQNG"@P?@/K+UC:6J/P]%#H^\+'CF-_N MR \(&A#OZBZX@.N<4*C@RC>X-C^E>#^;NA,IU4*OS>F5JM*2\Z;AJ.VC]DF[ MY9U MR2C$TSNSVS.+(Y_Z5+D',*I&87JQ@$KCE9VL./(QA5,.R^9M M3N$8>U,F4M&JVY(H!-G417ZMK"4T1J (E;;\[;QC:_MK6ZPP*W[LL'WXJJ6= M32R8(.\1P5,XB7]-]'-L\U!<("1]12X0QYY0U-".EXP.6RLT)37]FE>&Q'E#>R5:;$GY8"DXHQL^8 M8?@T2N++;BXZ/2CGNE5N/SQ/DO5+]LS#B(TJS5UN0#V8( MLLEC'TTN@3P/(,^>(\I3S'R7%'N!3/%A! Q$RD*LM,B-GF$X9 ML905Y-"*7*O$GT25 CKVM@QAG;:=6?2M@J*7"&BPI"AU#,E#CZYL^)C!OZ#S M.*4P]=[5##_UVMU"D&>Y,(]^!:AE>4M).Z/2"JL\"M2=(O^8+<&EZV933O$0 MZV$N9%%Y2+DT34+6AT0WTL,&B: #VU*WNIE-!E>DHJ:K4;>FD[X5>PRZQTGT MF]P,'H+B WT!^88\F(W";"Z J[MVH*V(U:D!@_'=.!SYU0 ,4 MOJZ78R)PINHH@M +;F\T[F$:K M/#K-T4M%20YDMXA.H:R&/V+ 4B8ER7&@H10,#S$^M(T"#VUVT24+9V)M1Q-] M5P+8/-KDY_5E)0-!,GC++/,3-D1A[$MOQUMTC>Z.HG3Y5BX/&"<%@ M"JF4Z0QGY6HKB^&Z[5US!KOO]&5WID]]V0OL63S7.BF$>$IF\[J!N%6%W^Y]%,!5-SQ>:" M2_/YISP>Z-,GV,RSOW=8#E24SG>20I(5_=8KZL2=@)V?:61V7G*]1GZ 63U& MPQMX6T&IV]9-O!+=Y$$C(8JRG$4R"N5W)N"S M/K:(SK)BKPJQ^?2K^XI M5S :QZ>8X@L1IF+\N;7]'"[W7(F#KBLY6'^LV[![N5/E-IS*#C8 M;C9D+:/_3T(0Y_#]Z*=@N+%B*#*E2ZK[N=[NFV9YX$6)W3DHN^'\CK/PUH^F M@Y;6(2JUC] &ZY,>3>YR'\E;GK4W3I,0JZN=V$N(&WXKO3[OZ;S(B_;:WAU^ M;H4E5/,P=)W$5SA&4ND=F^;E[44NH^ L&-E= "_Q4E74<%GE0[QRGN0Y#-FLK M/[;I0(-I6(+%RVO1Y;Z&*K.Z,2M7-9EBJ;\FX9C#% LHS&+/O"T)<=@"Z2G; M]ARAJA524*[60$@H=BO N&*.Y7DX&';XN2',+R>7L.%'3O>HN=6N^E,*&LA2 M,#0997PS#(C\0.@#.CE) X(^!QQ.+,*-,YRM' FS"MJ1^*8D2NHP"%AJJHZ2 MU,0P*70TG IB%@QP0SRLYL!*LW(MH M'^5%JG>SR=<6!?;&M 9BJ1KAEW5PZW5E9L<&<,@U6*5H2 M+6RT2JE5X:"F8%"5IWS+#F;J%)FWL9BO, A5RE"MONG"DXH&<^$E#(*]YC*: M6VS5J52L33&=(HC@_9/+JU)90'&\PE#:<79<]0'5QO25UE*!:"+I,>IB\$60 MT#(OU0VQQ0LVU 0+!+#<8A)+]291QH;C+9_S>[ C"ZX!_&_12;!"K!O#XH2, M#Q!;F"JVP]3Z=*.#@$;#=Y%21/0][03>KP6J"?' %6WE"Q8E7_-L:Z01T8\3 MT[ O+BZG!C7>Y^&0G)DS^$)L-JQ^W&ESN?5.NU@:G:0NTJ&" X&H-Y*'@/7R MX8?KTU@K?7Q,F<"[A9'<-@PJE$I7V"R%,:V(IPX_8OZV?18B+#;AC@NXBBZ^ M!LUZSC#6]Y#?6NJ8V$%R73_(V@]">T!AFI=]>D,_I M0=KP$EOQGCD-#;+6#'$NVLTE!J$7!TZS94274'4_)X_$@V7P+$J=32(RZ!]) MVZH(!@?6V:'ZV8S[W.$96#M'O-L^6*2AWHSDL%&4U?9?N]Y\BGK^#HPA&[!' MLSOIS>Q56!,9Q0.T"@?KP[RS[L;L/\2^/.C,O62ASHN+[>6PZ#KBZ3R1!$8V M&:/Y!Q8LWE=%>RXL!E]:.UO7WW'Q'LK1D O8V#+W;!$X"M*0[U"D*DX\_*W) M6>YB<4>_QL<@Q*Q2F ?=2B#.2IBZ[I4#=S*U/0$H4%_H:U)W(K5OK[A;[5G& ML"$0VX6QJOQH]BT&!75Y4?DHNZ\2B!'#@]V>IPGZ+ @QK,3,?7]>AP-0VRE( MMR9G-AD1B@ALV%&89:BLXJ0*BH,=?(N>9$4^3,=8?-=A_C,!F\1#58@- .BY MWR;1$&RF;!+QD[\!VX^]37.+:7=O"V,!,LD!V'U!T4TJ3;=%=K?MY""WY+I5 MS5*T*OR(70YXEIPZ;L+_,KQC?K2KO:.P$=I@4N#H_W8UK'@SLK;GQQGSC' M)TQKR T0!O@ZFX"1H-F+$Q16H9AI!5WL63DCT+AV!XQMQ5E+N\^Y5]<#_0=U-M<*GK M2:I*<4MZ44:UJ$6JD[J4#DP8/Z'K#%D3B[(O;^JAS:"XG4OM&^RE,^8EO7;G M5=O[P^Q#:>YE,S?34,Q)6NBJPT> VX9#2YZF,Q.L?ZMI"3]"0G(L@1K=4/2> M7U15W_UHR/G2<.4_N&_$HL MX^B6S&6G0YR1_1S$]?\XZTH\-F)^=9UB,A^[ P/.K]SQR :M\S_M6^81;UD <>A,FJV'/C,(3&?;&G*W%-H M\V2;H$6A24<3!M\X9YS:D]XNWO^I--'W>Z*6*2@7I$/[&:579I:V-RTD3.#% MZ1JQTW2-:&[$KK/_5?U?UN%6DX<:H4XE,#N#1]- B)_U[-B56^TL2Y1:MJW' MPA@8L,QZG>Y>T;JU5QI:9+B$W9PV&VS'FRSW>= G:VGK+; M+%Q-A@P9J37;E8LPW1=3T2RO)SU''-&6QQ"J9T(*M$.^XZ62CD@#^'$[)]599+)MTEO]S-C=<6T"I;=HVE MCJ :WD?J.1R&; YRG>+?%C"S#QA0-L5 3S4'T M78;!660;%T7%@5"8J([[,U\Z+?[FWJXGH+3!PD>TO"KYRH.-[!,"1'&1FBGT8/3)(Y-YDO+E:Y3=*%:3)%IX8 M)7O$O3.PLVQQ&4$8D+*6RUZXTI?JAU'^_$O4;AKRHG5F%96F"Q++S61_3VY0 MTU,KT:+H5S!Z(GI-D(^$/,)I9I,!XFV 6:LZ HM/R;==Z#40&#^"YY-TNI-\ M2S>GI&!-COH4[P*F23@MP"L5Q.K:\E5;@0]FZ,RPP/IOC\].+TZ/CSYX1\?' MG__X=''ZZ3?OR^G)^?>T:=WWLGYQ>G'HXN3#MK>QW?_\$?C-T<"\24^-]%4SE?JCL=VZ;J5C0C1!+EWA''7,_HH@\4SO>HUKJ=[7^#:@'I MP1NJJM:( -QQX,O-H.LG!G"K\SLQ38("?]F2GX+J$VY(F:2(:V<)RTUBB2HZ N\0O711+%F M1;%VFRA6$\5Z\"@6[\.CA;"X-HQY[9\;G0T/-VV,9GI\:?Z=8=L+^7>5N--\ M\;*0F&3[F]Z\7_)^$MQJ4N2&Z3',@;I7KS%/QG:_?\F#TB![N]S^=@740MB% M[X7!/S=".$MV-S0GPC>PX62G(,I*3+Q??LJ#BF64E]M/A&GHGWS3(X/-P& ZH8B&0[ZP9I[_CNA@FN>!1P%WF&$;L MW/5@3?; [LC W9&QV9'R/4IGDTC2UMT=?[N[MZFVZ!?=O4#^Y>):!CH/?/)M M<(784>^(;_#HOM[9Y>N.N?7=UFS9^'W"L8"<9R"T!+OK.M6QU)9')RH.=*L2;+L<3HYOMV*SPU3",V-7) M)GVJAK#4*I HM. 'NX0 L2TCX$2!&P365';"QQ@XDX@877F8>1C',E%9VIB3 M8W.[4#J)+-Y\)-8YP1GQ8F%1@OV=4IQ$ D[4;LP2B6,PDQ'"-9UX M,M=-V=N.2O<;2=C-N!]NF212: E)8,["+,"8;WW*I=$=$0>O7@&"9.1'8.8B M#1@4+<5B5B@*538%]I.F>WAL#6^Y7I1&ML5;PIUR0Y^1/4[0:HX+[K4:G 5@Y-R>>O _&2W M-S=.+WZC>^,MEH0GP_R,J&F,OR>BCJY##)3H]G; R\@%(Y_"-7\"2^%$%%>J MM[2DR*^F,"ND^;1F$J51_H6NX;2_LA&<(J-*[TE=1OG[F7FRF*B@NP%T&%J7 MD#O<;04AMQ6D'/[&VH1$W[Y9D=K$*P!U/YY\.D+JBOXW21(-N%F 6; MPNH+BKC@.8VC#\S=\I@.+<:5M&J2\Z]" U#H3(M'%4R/*,%D2'Z!(B]YG8[ M24JHTP$?4S"H*&N^''(==FL=YG!4S"M4&DC8Q07#.&105Z5Y+R37!_UGOZWLZ(VY=P= /TXH3 M81%AP+,DKB$!-_J([0J%>9>!-HU6/%RH#3G9*P'$2Y(Z"N^#N(J%F MY*;?89AB4YA(?">>02"'M,8FH?&-A485^4U7;'XL"%] Y?O_Q& M)+,^:O?^H\P54 Z0Y-0L!+FC&-B8R;2LJ-%;*[AXU6)>3ZX'4W*MQ5A<-^%: M<]"74$K458ROLYTZ_F3D.NI,)YEKNG5J$E9 M^1OI.H/@2:L&8!E_3?S!K=P)+05(B HE2T+%5[Y!3!" BF[# 1J*/G+1<4 R%%$F MAM%^R J94GK9!7;3P0J[S6;[9NR)W*]4.+5+VXGTOJZCWMGW#B;H3*>BZ&B' MX)F9EMMS%7.++LQ#K+4GG VRH6A/:[GZ_>3:7#X"M"(:CY#[+?+&"#HY-UF> M K7S*U6.IMDSL1Q;X@NYK:5FE$Z5>5^:FX-&G.40#, W8X]+)R/H)DG6_])L M#"]+R,-H%EW,X\4F3%0$U M?$:I(LG[!5NH^R7M%VS-2F0Y&/ AN+8PI[\X#.:B#&?<=ZZ["FJ10Q@N1;G0 M\986@R:T@OW%OF)(@T!HI1^T%J/6/#S9TSI3#9YL%IYLK\&3-7BRYX8GPYG\ MK5A)Y$PO_ 8G8OP)W-\T')"B@IF=X5X$_T'EN-WI;7>Z\N?N]DYGPXO]$2Q' M#8*?/^9I=($5(9^'%VEPE*87\.-?<;LW"*$UZ.T?=':[\!LXC_PQ\E\Z45HO MS*=,06 ?&#U&Y3MA"3[VY>CLPCL]+=:/;6=JL!U^V[X* SC)?AYTNSL[>_N[ MAZ]+3=YF//>Z4_.Y;LWG>AMO/U_\?G)6:FA8^(]W^NG]Y[./1Q>GGS^Y(*?5 M4+U,GG<]'G M?MKW8Y5M?_X6J5L-I>UU.CU+N$K]],S$I_>=B,_!]RX^M0BPV=N:B7AOQ&=* M?!Y%>![3/*G++(=UF$5O>W=GKU.2#F]SF9J*^1SVNK,_G\.V'IS%5FH:=SO= M]NFG\_NPVHQM/Z48E?<_OYY]P,[/.:4[WVG4 W4:G?XX2!2#(/WQ& O8!=Y+ M:0/NG>*]\W,?MC>R"'B$W] PN7_).4^\%#8(BM44[GPT+&'KQ>SA^?'OCZ@N M'FGB[I9<^-^2.!G=@E3G*L[H9LS!E1KY+TO6CH\^O+A].O:C@31V?UF;]>[D M_8O;K'=8 1B^O+WZ\WN?8F MUUYG_]AGA5BY2(!Y/HUJ-80\ %H(POD\MHI>=$PE5>?77E1T/= M2(*P=+HI!>+_)G@5"[W/G^17"36 6"^0VCK,X7O(:XZH9-U9^UWFW6Z5>;?0 M&_8Z=[T!5-T7!4;@]I=PK#1*5^#YOR=\850+/A]( ZB',6_7B@13;VB6MH8N M)'@MZN<:#F0E25<+0JEU?^O&6[J^L;M3N+:FQH(K.4 6+)ITF_^IS>WTLK_9 M:7GXOUOE1[0B1:U9_$:,5FK6L")*_@HO^"G["3S8ZS#P_D4=3[-AJ*+@Y81* MG /QN3%Z[:D_,!K^'+8[7M76B_+06@X]>5RZFJF_O_ 2/.JO(0I9&S#:<]IZNO':8Z78'D+ M^>W(7I-4PVE8WSL7'+3 AZ/SBVV+A9@)#GE4T,M^()@4 %49 - " 5$/ !E>%\V M-C(V-C@N:'1M4$L! A0#% @ W$/-6%)K6T!0&@ :1L @ M ( !HA0 &QO9V\N:G!G4$L! A0#% @ W$/-6 7=R3KE$@ \]L M !$ ( !&"\ '!P:6@M,C R-# T,S N>'-D4$L! A0#% M @ W$/-6+;2N6:Y#P Q_$ !4 ( !+$( '!P:6@M,C R M-# T,S!?8V%L+GAM;%!+ 0(4 Q0 ( -Q#S5@)%IXB^D< -CO!0 5 M " 1A2 !P<&EH+3(P,C0P-#,P7V1E9BYX;6Q02P$"% ,4 M" #<0\U83$3WX&)J !JOP4 %0 @ %%F@ <'!I:"TR,#(T M,#0S,%]L86(N>&UL4$L! A0#% @ W$/-6.ONT:-T30 594& !4 M ( !V@0! '!P:6@M,C R-# T,S!?<')E+GAM;%!+ 0(4 Q0 ( M -Q#S5A4QC2=)QD! .51#@ 4 " 8%2 0!P<&EH,C R-# T @,S!?,3!Q+FAT;5!+!08 "@ * '0" #::P( ! end XML 75 ppih20240430_10q_htm.xml IDEA: XBRL DOCUMENT 0000914122 2024-02-01 2024-04-30 0000914122 2024-06-13 0000914122 2023-02-01 2023-04-30 0000914122 2024-04-30 0000914122 2024-01-31 0000914122 us-gaap:RelatedPartyMember 2024-04-30 0000914122 us-gaap:RelatedPartyMember 2024-01-31 0000914122 us-gaap:CommonStockMember 2024-01-31 0000914122 us-gaap:AdditionalPaidInCapitalMember 2024-01-31 0000914122 us-gaap:RetainedEarningsMember 2024-01-31 0000914122 us-gaap:TreasuryStockCommonMember 2024-01-31 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-01-31 0000914122 us-gaap:CommonStockMember 2024-02-01 2024-04-30 0000914122 us-gaap:AdditionalPaidInCapitalMember 2024-02-01 2024-04-30 0000914122 us-gaap:RetainedEarningsMember 2024-02-01 2024-04-30 0000914122 us-gaap:TreasuryStockCommonMember 2024-02-01 2024-04-30 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-02-01 2024-04-30 0000914122 us-gaap:CommonStockMember 2024-04-30 0000914122 us-gaap:AdditionalPaidInCapitalMember 2024-04-30 0000914122 us-gaap:RetainedEarningsMember 2024-04-30 0000914122 us-gaap:TreasuryStockCommonMember 2024-04-30 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-04-30 0000914122 us-gaap:CommonStockMember 2023-01-31 0000914122 us-gaap:AdditionalPaidInCapitalMember 2023-01-31 0000914122 us-gaap:RetainedEarningsMember 2023-01-31 0000914122 us-gaap:TreasuryStockCommonMember 2023-01-31 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-01-31 0000914122 2023-01-31 0000914122 us-gaap:CommonStockMember 2023-02-01 2023-04-30 0000914122 us-gaap:AdditionalPaidInCapitalMember 2023-02-01 2023-04-30 0000914122 us-gaap:RetainedEarningsMember 2023-02-01 2023-04-30 0000914122 us-gaap:TreasuryStockCommonMember 2023-02-01 2023-04-30 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-02-01 2023-04-30 0000914122 us-gaap:CommonStockMember 2023-04-30 0000914122 us-gaap:AdditionalPaidInCapitalMember 2023-04-30 0000914122 us-gaap:RetainedEarningsMember 2023-04-30 0000914122 us-gaap:TreasuryStockCommonMember 2023-04-30 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-04-30 0000914122 2023-04-30 0000914122 srt:RestatementAdjustmentMember us-gaap:CommonStockMember 2024-01-31 0000914122 srt:RestatementAdjustmentMember us-gaap:CommonStockMember 2023-01-31 0000914122 us-gaap:UnbilledRevenuesMember 2024-02-01 2024-04-30 0000914122 us-gaap:UnbilledRevenuesMember 2023-02-01 2023-04-30 0000914122 ppih:LandAndBuildingsInLebanonTennesseeMember 2024-02-01 2024-04-30 0000914122 ppih:LandAndBuildingsInLebanonTennesseeMember 2023-02-01 2023-04-30 0000914122 ppih:FinanceLeaseObligationsMember 2024-02-01 2024-04-30 0000914122 ppih:FinanceLeaseObligationsMember 2023-02-01 2023-04-30 0000914122 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2015-12-31 0000914122 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2016-01-01 2024-04-30 0000914122 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2024-04-30 0000914122 us-gaap:OtherNoncurrentAssetsMember us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2024-04-30 0000914122 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2024-02-01 2024-04-30 0000914122 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2023-02-01 2023-04-30 0000914122 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2024-02-01 2024-04-30 0000914122 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-02-01 2023-04-30 0000914122 us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2024-02-01 2024-04-30 0000914122 ppih:OneCustomerMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2024-02-01 2024-04-30 0000914122 us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2023-02-01 2023-04-30 0000914122 ppih:OneCustomerMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2023-02-01 2023-04-30 0000914122 us-gaap:ProductMember us-gaap:TransferredAtPointInTimeMember 2024-02-01 2024-04-30 0000914122 us-gaap:ProductMember us-gaap:TransferredAtPointInTimeMember 2023-02-01 2023-04-30 0000914122 ppih:SpecialtyPipingSystemsAndCoatingMember ppih:TransferredAtPointInTimeUsingInputMethodMember 2024-02-01 2024-04-30 0000914122 ppih:SpecialtyPipingSystemsAndCoatingMember ppih:TransferredAtPointInTimeUsingInputMethodMember 2023-02-01 2023-04-30 0000914122 ppih:SpecialtyPipingSystemsAndCoatingMember ppih:TransferredAtPointInTimeUsingOutputMethodMember 2024-02-01 2024-04-30 0000914122 ppih:SpecialtyPipingSystemsAndCoatingMember ppih:TransferredAtPointInTimeUsingOutputMethodMember 2023-02-01 2023-04-30 0000914122 us-gaap:MiddleEastMember 2024-04-30 0000914122 us-gaap:MiddleEastMember 2024-01-31 0000914122 ppih:PermaPipeCanadaLtdMember 2016-12-31 0000914122 us-gaap:RestrictedStockMember 2024-02-01 2024-04-30 0000914122 us-gaap:RestrictedStockMember 2023-02-01 2023-04-30 0000914122 us-gaap:EmployeeStockOptionMember 2024-01-31 0000914122 us-gaap:EmployeeStockOptionMember 2023-02-01 2024-01-31 0000914122 us-gaap:EmployeeStockOptionMember 2024-02-01 2024-04-30 0000914122 us-gaap:EmployeeStockOptionMember 2024-04-30 0000914122 us-gaap:RestrictedStockMember 2024-01-31 0000914122 us-gaap:RestrictedStockMember 2024-04-30 0000914122 ppih:RevolvingLinesNorthAmericaMember 2018-09-20 2018-09-20 0000914122 ppih:RevolvingLinesNorthAmericaMember 2018-09-20 0000914122 ppih:RevolvingLinesNorthAmericaMember 2021-09-17 2021-09-17 0000914122 ppih:RevolvingLinesNorthAmericaMember 2021-09-17 0000914122 srt:MinimumMember ppih:RevolvingLinesNorthAmericaMember us-gaap:BaseRateMember 2021-09-17 2021-09-17 0000914122 srt:MaximumMember ppih:RevolvingLinesNorthAmericaMember us-gaap:BaseRateMember 2021-09-17 2021-09-17 0000914122 srt:MinimumMember ppih:RevolvingLinesNorthAmericaMember ppih:SecuredOvernightFinancingRateSOFRMember 2021-09-17 2021-09-17 0000914122 srt:MaximumMember ppih:RevolvingLinesNorthAmericaMember ppih:SecuredOvernightFinancingRateSOFRMember 2021-09-17 2021-09-17 0000914122 srt:MinimumMember ppih:AdditionalSOFRAdjustmentBasedOnTermOfInterestPeriodMember ppih:RevolvingLinesNorthAmericaMember ppih:SecuredOvernightFinancingRateSOFRMember 2021-09-17 2021-09-17 0000914122 srt:MaximumMember ppih:AdditionalSOFRAdjustmentBasedOnTermOfInterestPeriodMember ppih:RevolvingLinesNorthAmericaMember ppih:SecuredOvernightFinancingRateSOFRMember 2021-09-17 2021-09-17 0000914122 ppih:RevolvingLinesNorthAmericaMember ppih:NorthAmericanLoanPartiesMember 2021-09-17 0000914122 ppih:RevolvingLinesNorthAmericaMember ppih:NorthAmericanLoanPartiesMember 2021-09-17 2021-09-17 0000914122 ppih:RevolvingLinesNorthAmericaMember 2024-04-30 0000914122 ppih:RevolvingLinesNorthAmericaMember 2024-01-31 0000914122 ppih:LandAndBuildingsInLebanonTennesseeMember 2021-04-14 0000914122 ppih:LandAndBuildingsInLebanonTennesseeMember 2021-04-14 2021-04-14 0000914122 ppih:MortgageNoteSecuredByTennesseeManufacturingFacilityMember 2021-04-14 2021-04-14 0000914122 ppih:LandAndBuildingsInLebanonTennesseeMember 2021-04-14 0000914122 ppih:LandAndBuildingsInLebanonTennesseeMember 2021-04-14 2021-04-14 0000914122 ppih:LandAndBuildingsInLebanonTennesseeMember 2024-01-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member 2024-04-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member 2024-04-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member 2024-01-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member 2024-01-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries2Member 2024-04-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member 2024-01-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries2Member 2024-01-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember 2021-06-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember 2024-04-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember 2023-08-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember 2024-01-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member 2021-12-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member 2024-04-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member 2022-11-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember 2022-03-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember 2024-04-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember 2024-01-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember 2024-04-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember 2024-01-31 0000914122 ppih:ForeignRevolvingLinesMember 2024-04-30 0000914122 ppih:ForeignRevolvingLinesMember 2024-01-31 0000914122 srt:MinimumMember ppih:ForeignRevolvingLinesMember ppih:EIBORMember 2024-02-01 2024-04-30 0000914122 srt:MaximumMember ppih:ForeignRevolvingLinesMember ppih:EIBORMember 2024-02-01 2024-04-30 0000914122 srt:MinimumMember ppih:ForeignRevolvingLinesMember 2024-04-30 0000914122 srt:MinimumMember ppih:ForeignRevolvingLinesMember ppih:CentralBankOfEqyptCbeRateMember 2024-02-01 2024-04-30 0000914122 srt:MaximumMember ppih:ForeignRevolvingLinesMember ppih:CentralBankOfEqyptCbeRateMember 2024-02-01 2024-04-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:SIBORMember 2024-02-01 2024-04-30 0000914122 srt:MaximumMember ppih:ForeignRevolvingLinesMember 2024-04-30 0000914122 srt:WeightedAverageMember ppih:ForeignRevolvingLinesMember 2024-04-30 0000914122 ppih:ForeignRevolvingLinesMember 2024-02-01 2024-04-30 0000914122 ppih:PromissoryNoteMember 2024-04-30 0000914122 ppih:CanadianMortgageNoteMember 2016-07-28 2016-07-28 0000914122 ppih:CanadianMortgageNoteMember 2024-04-30 0000914122 ppih:CanadianMortgageNoteMember 2024-01-31 0000914122 ppih:AbuDhabiLandLeaseMember 2023-02-01 2024-01-31 0000914122 ppih:AbuDhabiLandLeaseMember 2024-02-01 2024-04-30 0000914122 ppih:AbuDhabiLandLeaseMember 2024-04-30 0000914122 srt:MinimumMember 2024-04-30 0000914122 srt:MaximumMember 2024-04-30 0000914122 ppih:FinanceLeasesAssetsMember 2024-04-30 0000914122 ppih:FinanceLeasesAssetsMember 2024-01-31 0000914122 2021-10-04 0000914122 2022-12-07 0000914122 ppih:JointVentureMember 2023-06-01 0000914122 ppih:JointVentureMember ppih:GulfInsulationGroupMember 2023-06-01 0000914122 us-gaap:RelatedPartyMember ppih:GulfInsulationGroupMember 2023-06-01 0000914122 us-gaap:RelatedPartyMember 2023-06-01 0000914122 ppih:GulfInsulationGroupMember 2024-02-01 2024-04-30 0000914122 ppih:GulfInsulationGroupMember 2023-02-01 2023-04-30 0000914122 ppih:GulfInsulationGroupMember 2024-04-30 0000914122 ppih:GulfInsulationGroupMember 2024-01-31 shares thunderdome:item iso4217:USD iso4217:USD shares pure utr:Y iso4217:AED iso4217:EGP iso4217:CAD 0000914122 Perma-Pipe International Holdings, Inc. false --01-31 Q1 2024 644000 699000 0.01 0.01 50000000 50000000 8018000 8018000 8017000 8017000 112000 112000 0 0 1 1 P1Y 0 0 P3Y P5Y P15Y 4 P5Y 200000 1900000 100000 2042-12-23 100000 http://investors.permapipe.com/20240430#LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine http://fasb.org/us-gaap/2024#PropertyPlantAndEquipmentNet P1Y P30Y 100000 http://investors.permapipe.com/20240430#LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine http://fasb.org/us-gaap/2024#LongTermDebtNoncurrent http://fasb.org/us-gaap/2024#PropertyPlantAndEquipmentNet 600000 false false false false 10-Q true 2024-04-30 false 001-32530 DE 36-3922969 24900 Pitkin Road, Suite 309 Spring TX 77386 847 966-1000 Common Stock, $.01 par value per share PPIH NASDAQ Yes Yes Non-accelerated Filer true false false 8017981 34321000 29657000 23804000 22883000 10517000 6774000 6148000 5460000 1235000 1239000 7383000 6699000 3134000 75000 -507000 -512000 -67000 72000 2560000 -365000 770000 758000 1790000 -1123000 347000 0 1443000 -1123000 7906000 8004000 8056000 8004000 0.18 -0.14 0.18 -0.14 1790000 -1123000 -1415000 -437000 375000 -1560000 347000 0 28000 -1560000 7674000 5845000 1390000 1395000 44276000 46646000 15408000 15541000 12223000 9697000 15718000 16597000 2302000 3097000 98991000 98818000 38211000 37620000 6165000 6467000 8160000 7919000 2172000 2222000 3464000 2665000 58172000 56893000 157163000 155711000 24672000 25323000 1752000 1214000 4967000 4523000 5312000 5519000 6099000 4071000 5285000 4264000 845000 914000 7628000 9039000 891000 495000 1959000 2380000 59410000 57742000 4069000 4229000 8982000 9035000 1031000 1212000 993000 1217000 6032000 6270000 2753000 2753000 1313000 1275000 25173000 25991000 7033000 6266000 80000 80000 59870000 60063000 968000 968000 13531000 12088000 -6966000 -5551000 65547000 65712000 157163000 155711000 80000 60063000 12088000 -968000 -5551000 65712000 0 0 1443000 0 0 1443000 0 228000 0 0 0 228000 0 -421000 0 0 0 -421000 0 0 0 0 -1415000 -1415000 80000 59870000 13531000 -968000 -6966000 65547000 80000 62562000 1617000 -26000 -6449000 57784000 0 0 -1123000 0 0 -1123000 0 229000 0 0 0 229000 0 0 0 0 -437000 -437000 80000 62791000 494000 -26000 -6886000 56453000 8016781 8007002 -0 -0 1200 66726 0 -56947 8017981 8016781 1790000 -1123000 829000 915000 -269000 77000 228000 229000 -26000 26000 -14000 5000 -1854000 -1862000 359000 -1813000 1191000 1858000 -268000 -227000 1000000 1279000 1143000 -371000 -694000 -318000 2552000 570000 -295000 359000 2826000 1275000 1350000 3811000 2012000 3227000 0 5000 -2012000 -3222000 18268000 28333000 16405000 25527000 42000 27000 58000 61000 794000 -176000 8000 83000 8000 0 2557000 2459000 -71000 -56000 1824000 2992000 7240000 6793000 9064000 9785000 248000 521000 1575000 939000 <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>Note <em style="font: inherit;">1</em> - Basis of presentation</b></p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">The interim consolidated financial statements of Perma-Pipe International Holdings, Inc., and subsidiaries (collectively, "PPIH", "Company", or "Registrant") are unaudited, but include all adjustments that the Company's management considers necessary to present fairly the financial position and results of operations for the periods presented. These adjustments consist of normal recurring adjustments. Certain information and footnote disclosures have been omitted pursuant to Securities and Exchange Commission ("SEC") rules and regulations. The consolidated balance sheet as of <em style="font: inherit;"> January 31, 2024</em> is derived from the audited consolidated balance sheet as of that date. The results of operations for any interim period are <em style="font: inherit;">not</em> necessarily indicative of future or annual results. Interim financial statements should be read in conjunction with the financial statements and the notes thereto included in the Company's latest Annual Report on Form <em style="font: inherit;">10</em>-K. The Company's fiscal year ends on <em style="font: inherit;"> January 31. </em>Years and balances described as <em style="font: inherit;">2024</em> and <em style="font: inherit;">2023</em> are for the fiscal year ending <em style="font: inherit;"> January 31, </em><em style="font: inherit;">2025</em> and for the fiscal year ended <em style="font: inherit;"> January 31, 2024</em>, respectively.</p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b></b></p><p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>Significant New Accounting Policies</b></p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">Refer to the Company's Annual Report on Form <em style="font: inherit;">10</em>-K for the year ended <em style="font: inherit;"> January 31, 2024</em> as filed with the SEC on <em style="font: inherit;"> April 26, 2024 </em>for discussion of the Company's significant accounting policies.</p><p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"></p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b></b></p><p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>Subsequent Events</b></p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">The Company has evaluated subsequent events through <em style="font: inherit;"> June 13, 2024</em><span style="background-color:#ffffff;">,</span> the date the financial statements were issued. Any material subsequent events that occurred during this time have been properly recognized and/or disclosed in these consolidated financial statements.</p><p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>Significant New Accounting Policies</b></p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">Refer to the Company's Annual Report on Form <em style="font: inherit;">10</em>-K for the year ended <em style="font: inherit;"> January 31, 2024</em> as filed with the SEC on <em style="font: inherit;"> April 26, 2024 </em>for discussion of the Company's significant accounting policies.</p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>Subsequent Events</b></p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">The Company has evaluated subsequent events through <em style="font: inherit;"> June 13, 2024</em><span style="background-color:#ffffff;">,</span> the date the financial statements were issued. Any material subsequent events that occurred during this time have been properly recognized and/or disclosed in these consolidated financial statements.</p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>Note <em style="font: inherit;">2</em> - Business segment reporting</b></p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">The Company is engaged in the manufacture and sale of products in one reportable segment: Piping Systems. The Company engineers, manufactures and sells pre-insulated specialty piping systems, and leak detection systems. Pre-insulated specialty piping systems include: (i) insulated and jacketed district heating and cooling piping systems for efficient energy distribution from central energy plants to multiple locations, (ii) primary and secondary containment piping systems for transporting chemicals, hazardous fluids and petroleum products, (iii) the coating and/or insulation of oil and gas gathering and transmission pipelines, and (iv) liquid and powder based anti-corrosion coatings applied both to the external and internal surfaces of steel pipe, including shapes like bends, reducers, tees, and other spools/fittings used in pipelines for the transportation of oil and gas products and potable water. The Company's leak detection systems are sold with its piping systems or on a stand-alone basis to monitor areas where fluid intrusion <em style="font: inherit;"> may </em>contaminate the environment, endanger personal safety, cause a fire hazard, impair essential services or damage equipment or property.</p> 1 <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>Note <em style="font: inherit;">3</em> - Accounts receivable</b></p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">The majority of the Company's accounts receivable are due from geographically dispersed contractors and manufacturing companies. Credit is extended based on an evaluation of a customer's financial condition. In the United States, collateral is <em style="font: inherit;">not</em> generally required. In the United Arab Emirates ("U.A.E."), Saudi Arabia, Egypt and India letters of credit are usually obtained for significant orders. Accounts receivable are due within various time periods specified in the terms applicable to the specific customer and are stated as amounts due from customers net of an allowance for claims and doubtful accounts. Standard payment terms are generally net <em style="font: inherit;">30</em> to <em style="font: inherit;">60</em> days. The allowance for doubtful accounts is based on specifically identified amounts in customers' accounts, where future collectability is deemed uncertain. Management <em style="font: inherit;"> may </em>exercise its judgment in adjusting the provision as a consequence of known items, such as current economic factors and credit trends. Past due trade accounts receivable balances are written off when the Company's collection efforts have been unsuccessful in collecting the amount due and the amount is deemed uncollectible. The write off is recorded against the allowance for doubtful accounts.</p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="text-align: justify; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; margin: 0pt;">In <em style="font: inherit;">2015,</em> the Company completed a project in the Middle East with billings in the aggregate amount of approximately $41.9 million. The system has <em style="font: inherit;">not</em> yet been commissioned by the customer. Nevertheless, the Company has settled approximately $40.1 million as of <em style="font: inherit;"> April 30, 2024</em>, with a remaining balance due in the amount of $1.8 million, all of which pertains to retention clauses within the agreements with the Company's customer, and which become payable by the customer when this project is fully tested and commissioned. Of this amount, $1.0 million is classified in other<span style="background-color:#ffffff"> long-term assets on the Company's consolidated balance sheets.</span></p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The Company has been actively involved in ongoing efforts to collect this outstanding balance. The Company continues to engage with the customer to ensure full payment of the open balances, and during the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> April 30, 2024, </em>and at various times throughout <em style="font: inherit;">2023,</em> the Company received partial payments to settle $0.3 million and $0.6 million, respectively, of the customer's outstanding balances. Further, the Company has been engaged by the customer to perform additional work in <em style="font: inherit;">2024</em> under customary trade terms that supports the continued cooperation between the Company and the customer. As a result, the Company did <span style="-sec-ix-hidden:c113355907">not</span> reserve any allowance against the remaining outstanding balances as of <em style="font: inherit;"> April 30, 2024</em>. However, if the Company's efforts to collect on this account are <em style="font: inherit;">not</em> successful, the Company <em style="font: inherit;"> may </em>recognize an allowance for all, or substantially all, of any such then uncollected amounts. </p> <p style="text-align: justify; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; margin: 0pt;"> </p> <p style="text-align: justify; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; margin: 0pt;"><span style="background-color:#ffffff;">For the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;">2023</em>, respectively, no <em style="font: inherit;">one</em> customer accounted for greater than <em style="font: inherit;">10%</em> of the Company's consolidated net sales. </span></p> <p style="font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; margin: 0pt;"> </p> <p style="font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; margin: 0pt;"><span style="background-color:#ffffff;">As of </span><em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;"> January 31, 2024</em><span style="background-color:#ffffff;">, </span><span style="-sec-ix-hidden:c113355914">one</span><span style="background-color:#ffffff;"> customer accounted for </span>11%<span style="background-color:#ffffff;"> of the Company's accounts receivable, and <span style="-sec-ix-hidden:c113355916">one</span> customer accounted for </span>12%<span style="background-color:#ffffff;"> of the Company's accounts receivable, respectively.</span></p> 41900000 -40100000 1800000 1000000 -300000 -600000 0 0.11 0.12 <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><b>Note <em style="font: inherit;">4</em> - Revenue recognition </b></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The Company accounts for its revenues under Accounting Standards Codification ("ASC") <em style="font: inherit;">606,</em> <i>Revenue from Contracts with Customers</i>.</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><i><b>Revenue from contracts with customers</b></i></p> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The Company defines a contract as an agreement that has approval and commitment from both parties, defined rights and identifiable payment terms, which ensures the contract has commercial substance and that collectability is reasonably assured.</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The Company’s standard revenue transactions are classified into <em style="font: inherit;">two</em> main categories:</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px; font-family: Times New Roman; font-size: 10pt;"><tbody><tr style="font-family: Times New Roman; font-size: 10pt; vertical-align: top;"><td style="width: 18pt; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 18pt; font-family: Times New Roman; font-size: 10pt;"> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;">1</em>)</p> </td><td style="text-align: justify; font-family: Times New Roman; font-size: 10pt;">Systems and Coating - which include all bundled products in which Perma-Pipe engineers, and manufactures pre-insulated specialty piping systems mainly relating to the district heating and cooling and oil &amp; gas markets.</td></tr> </tbody></table> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px; font-family: Times New Roman; font-size: 10pt;"><tbody><tr style="font-family: Times New Roman; font-size: 10pt; vertical-align: top;"><td style="width: 18pt; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 18pt; font-family: Times New Roman; font-size: 10pt;"> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;">2</em>)</p> </td><td style="text-align: justify; font-family: Times New Roman; font-size: 10pt;">Products - which include cables, leak detection products, heat trace products, material/goods <em style="font: inherit;">not</em> bundled with piping or flowline systems, and field services <em style="font: inherit;">not</em> bundled into a project contract.</td></tr> </tbody></table> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">In accordance with ASC <em style="font: inherit;">606</em>-<em style="font: inherit;">10</em>-<em style="font: inherit;">25</em>-<em style="font: inherit;">27</em> through <em style="font: inherit;">29,</em> the Company recognizes specialty piping and coating systems revenue over time as the manufacturing process progresses because <em style="font: inherit;">one</em> of the following conditions exist:</p> <p style="margin: 0pt 7.2pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px; font-family: Times New Roman; font-size: 10pt;"><tbody><tr style="font-family: Times New Roman; font-size: 10pt;"><td style="width: 3.3%; font-family: Times New Roman; font-size: 10pt; vertical-align: top;"> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"> </p> </td><td style="width: 3.3%; font-family: Times New Roman; font-size: 10pt; vertical-align: top;"> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;">1</em>)</p> </td><td style="width: 93.4%; font-family: Times New Roman; font-size: 10pt; vertical-align: top;"> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">the customer owns the material that is being coated, so the customer controls the asset and thus the work-in-process; or</p> </td></tr> </tbody></table> <p style="margin: 0pt 7.2pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px; font-family: Times New Roman; font-size: 10pt;"><tbody><tr style="font-family: Times New Roman; font-size: 10pt;"><td style="width: 3.3%; font-family: Times New Roman; font-size: 10pt; vertical-align: top;"> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"> </p> </td><td style="width: 3.3%; font-family: Times New Roman; font-size: 10pt; vertical-align: top;"> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;">2</em>)</p> </td><td style="width: 93.4%; font-family: Times New Roman; font-size: 10pt; vertical-align: top;"> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">the customer controls the work-in-process due to the custom nature of the pre-insulated, fabricated system being manufactured, which has <em style="font: inherit;">no</em> alternative future use, and there is a right to payment for work performed to date plus profit margin.</p> </td></tr> </tbody></table> <p style="margin: 0pt 7.2pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt 7.2pt; text-align: justify; text-indent: -9pt; font-family: Times New Roman; font-size: 10pt;"> Products revenue is recognized when goods are shipped or services are performed (ASC <em style="font: inherit;">606</em>-<em style="font: inherit;">10</em>-<em style="font: inherit;">25</em>-<em style="font: inherit;">30</em>).</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">A breakdown of the Company's revenues by revenue class for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> April 30, 2024</em> are as follows:</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td colspan="14" 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);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;">Three Months Ended April 30,</em></em></em></em></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);"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">2024</em></em></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);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">2023</em></em></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);"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </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);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Sales</em></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);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; 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;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">% of Total</em></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);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; 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;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Sales</em></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);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; 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;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">% of Total</em></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);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Products</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">3,253</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">9</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">2,842</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">9</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">%</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Specialty Piping Systems and Coating</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b> </b></td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Revenue recognized under input method</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">10,140</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">30</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">10,338</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">35</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">%</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Revenue recognized under output method</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">20,928</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">61</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">16,477</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">56</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">%</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">34,321</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: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100</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: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">29,657</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: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100</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></tr> </tbody></table> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;">The input method as noted in ASC <em style="font: inherit;">606</em>-<em style="font: inherit;">10</em>-<em style="font: inherit;">55</em>-<em style="font: inherit;">20</em> is used by certain operating entities to measure revenue by the costs incurred to date relative to the estimated costs to satisfy the contract over time. Generally, these contracts are considered a single performance obligation satisfied over time and due to the custom nature of the goods and services, the "over time" method is the most faithful depiction of the Company’s performance as it measures the value of the goods and services transferred to the customer. Costs include all material, labor, and direct costs incurred to satisfy the performance obligations of the contract. Revenue recognition begins when projects costs are incurred.  </p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;"> </p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">The output method as noted in ASC <em style="font: inherit;">606</em>-<em style="font: inherit;">10</em>-<em style="font: inherit;">55</em>-<em style="font: inherit;">17</em> is used by all other operating entities to measure revenue by the direct measurement of the outputs produced relative to the remaining goods promised under the contract. Due to the types of end customers, generally these contracts require formal inspection protocols or specific export documentation for units produced, or produced and shipped, therefore, the output method is the most faithful depiction of the Company’s performance. Depending on the conditions of the contract, revenue <em style="font: inherit;"> may </em>be recognized based on units produced, inspected and held by the Company prior to shipment or on units produced, inspected and shipped. </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;">Some of the Company’s operating entities invoice and collect milestones or other contractual obligations prior to the transfer of goods and services, but do <em style="font: inherit;">not</em> recognize revenue until the performance obligations are satisfied under the methods discussed above.</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;">Contract modifications that occur prior to the start of the manufacturing process will supersede the original contract and revenue is recognized using the modified contract value. Contract modifications that occur during the manufacturing process (changes in scope of work, job performance, material costs, and/or final contract settlements) are recognized in the period in which the revisions are known. Provisions are made for estimated losses on uncompleted contracts in the contract liabilities account in the period in which such losses are determined.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">The transaction price associated with the Company's contracts with customers are generally determined based on the fixed amount of consideration as specified in a contract. This <em style="font: inherit;"> may </em>also include variable consideration in certain instances where it is considered probable that a significant reversal of cumulative revenue recognized will <em style="font: inherit;">not</em> occur. As a result, the amount of consideration ultimately received from the customer can fluctuate due to the variability of future events stated in a contract. Therefore, the aggregate amount of the transaction price includes the fixed consideration contained in a contract that is generally <em style="font: inherit;">not</em> subject to change and excludes sales and value added taxes, or amounts collected on behalf of <em style="font: inherit;">third</em> parties, along with any variable consideration. The total transaction price is then allocated to the performance obligations which is eventually recognized as revenue based on the project type and the method that is used to measure the transfer of promised goods and services to customers. Additionally, transaction prices relating to cost-plus contracts are determined by applying the applicable profit margin to costs incurred on contracts, whereas transaction prices relating to fixed price contracts are determined on a lump-sum basis. Further, standard payment terms are generally net <em style="font: inherit;">30</em> to <em style="font: inherit;">60</em> days, which is customer specific.</p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><i><b>Contract assets and liabilities</b></i></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">Contract assets represent revenue recognized in excess of amounts billed for work in progress for which the Company has a valid contract and an enforceable right to payment for work completed. Contract liabilities represent billings in excess of costs for work in progress for which the Company has a valid contract and an enforceable right to payment for work completed. Both customer billings and the satisfaction (or partial satisfaction) of the performance obligation(s) occur throughout the manufacturing process and impact the period end balances in these accounts. In addition, contract assets include receivables or amounts that are billable beyond the passage of time. For additional information, see Note <em style="font: inherit;">3</em> in the Notes to Consolidated Financial Statements included in the Company's Annual Report on Form <em style="font: inherit;">10</em>-K for the year ended <em style="font: inherit;"> January 31, 2024</em> as filed with the SEC on <em style="font: inherit;"> April 26, 2024, </em>and <i>Unbilled accounts receivable</i>, as further described below. </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The following table shows the reconciliation of costs in excess of billings and billings in excess of costs: </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: Times New Roman; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">April 30, 2024</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">January 31, 2024</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 70%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Costs incurred on uncompleted contracts</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">15,980</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">21,912</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Estimated earnings</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">10,441</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">11,270</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Earned revenue</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">26,421</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">33,182</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Less billings to date</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">25,010</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">30,580</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Costs in excess of billings, net</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">1,411</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">2,602</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Balance sheet classification</b></p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">2,302</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">3,097</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(891</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">)</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(495</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Costs in excess of billings, net</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">1,411</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">2,602</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td></tr> </tbody></table> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;"><span style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; background-color: rgb(255, 255, 255);">The Company anticipates that substantially all costs incurred on uncompleted contracts as of <em style="font: inherit;"> April 30, 2024</em> will be billed and collected within <span style="-sec-ix-hidden:c113355957">one</span> year</span><span style="background-color: rgb(255, 255, 255);"><span style="font-family: Times New Roman;">. </span></span></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><i><b><span style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;">Unbilled accounts receivable</span></b></i></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><span style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;">The Company has recorded<span style="background-color:#ffffff;"> $</span>15.7</span><span style="background-color:#ffffff;"> million</span><span style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><span style="background-color:#ffffff;"> and $16.6 million </span>of unbilled accounts receivable on the consolidated balance sheet<span style="color:#000000;">s </span></span>as of <em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;"> January 31, 2024</em><span style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><span style="color:#000000;">,</span> from revenues generated by certain of its subsidiaries. The Company has fulfilled all performance obligations and has recorded revenue under the respective contracts. The deliverables under these contracts have been accepted by the customer and billings will be made once the customer takes possession of or arranges shipping for the products. The Company anticipates that substantially all of the amounts included in unbilled accounts receivable as of </span><em style="font: inherit;"> April 30, 2024</em><span style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> will be billed within <em style="font: inherit;">one</em> year.</span></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><i><b>Practical expedients</b></i></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">Costs to obtain a contract are <em style="font: inherit;">not</em> considered to be incremental or material, and project duration generally does <em style="font: inherit;">not</em> span more than <em style="font: inherit;">one</em> year. Accordingly, the Company applies the practical expedient for these types of costs and as such, are expensed in the period incurred.</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">As a result of the Company's contracts having a duration of less than <em style="font: inherit;">one</em> year, a practical expedient was applied regarding disclosure of the aggregate amount and future timing of performance obligations that are unsatisfied or partially satisfied as of the end of the reporting period. </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td colspan="14" 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);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;">Three Months Ended April 30,</em></em></em></em></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);"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">2024</em></em></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);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">2023</em></em></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);"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </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);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Sales</em></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);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; 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;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">% of Total</em></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);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; 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;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Sales</em></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);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; 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;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">% of Total</em></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);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Products</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">3,253</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">9</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">2,842</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">9</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">%</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Specialty Piping Systems and Coating</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b> </b></td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Revenue recognized under input method</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">10,140</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">30</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">10,338</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">35</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">%</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Revenue recognized under output method</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">20,928</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">61</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">%</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">16,477</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">56</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">%</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">34,321</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: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100</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: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">29,657</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: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100</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></tr> </tbody></table> 3253000 0.09 2842000 0.09 10140000 0.30 10338000 0.35 20928000 0.61 16477000 0.56 34321000 1 29657000 1 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: Times New Roman; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">April 30, 2024</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">January 31, 2024</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 70%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Costs incurred on uncompleted contracts</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">15,980</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">21,912</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Estimated earnings</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">10,441</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">11,270</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Earned revenue</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">26,421</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">33,182</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Less billings to date</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">25,010</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">30,580</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Costs in excess of billings, net</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">1,411</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">2,602</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Balance sheet classification</b></p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">2,302</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">3,097</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(891</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">)</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(495</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Costs in excess of billings, net</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">1,411</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">2,602</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td></tr> </tbody></table> 15980000 21912000 10441000 11270000 26421000 33182000 25010000 30580000 1411000 2602000 2302000 3097000 891000 495000 1411000 2602000 15700000 16600000 <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>Note <em style="font: inherit;">5</em> - Income taxes </b></p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">The determination of the consolidated provision for income taxes, deferred tax assets and liabilities and related valuation allowances requires management to make judgments and estimates. As a company with subsidiaries in foreign jurisdictions, the process of calculating income taxes involves estimating current tax obligations and exposures in each jurisdiction as well as making judgments regarding the future recoverability of deferred tax assets. The relative proportion of taxable income earned domestically versus internationally can fluctuate significantly from period to period. Changes in the estimated level of annual pre-tax income, tax laws and the results of tax audits can affect the overall effective income tax rate, which impacts the level of income tax expense and net income. Judgments and estimates related to the Company's projections and assumptions are inherently uncertain; therefore, actual results could differ materially from projections.</p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><span style="background-color:#ffffff;">The Company's worldwide effective tax rates ("ETR") for the </span><em style="font: inherit;">three</em> months ended <em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;">2023</em><span style="background-color:#ffffff;"> were </span>30%<span style="background-color:#ffffff;"> and </span>(208%)<span style="background-color:#ffffff;">, respectively. </span>The change in the ETR is due to the inability to recognize tax benefits on losses in the United States due to a partial valuation allowance in the prior period and changes in the mix of income and loss in various jurisdictions.</p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">The Company expects that future distributions from foreign subsidiaries will <em style="font: inherit;">not</em> be subject to incremental U.S. federal tax as they will either be remittances of previously taxed earnings and profits or eligible for a full dividends received deduction. Current and future earnings in the Company's subsidiaries in Canada and Egypt are <em style="font: inherit;">not</em> permanently reinvested. The earnings from these subsidiaries are subject to tax in their local jurisdiction, and withholding taxes in these jurisdictions are considered. As such, the Company has accrued a liability of $0.7 million as of <em style="font: inherit;"> April 30, 2024</em> related to these taxes.</p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> 0.30 -2.08 700000 <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>Note <em style="font: inherit;">6</em> - Impairment of long-lived assets</b></p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">The Company's assessment of long-lived assets, and other identifiable intangibles is based upon factors that market participants would use in accordance with the accounting guidance for the fair value measurement of assets. At <em style="font: inherit;"> April 30, 2024</em>, the Company performed an assessment to determine whether there were any triggering events that <em style="font: inherit;"> may </em>have occurred which could indicate that the carrying value of the Company's long-lived assets are <em style="font: inherit;">not</em> recoverable, and an impairment <em style="font: inherit;"> may </em>exist. Based on this assessment, the Company did <em style="font: inherit;">not</em> identify any triggering events that would indicate that the carrying amounts <em style="font: inherit;"> may </em><em style="font: inherit;">not</em> be recoverable with respect to long-lived assets at <em style="font: inherit;"> April 30, 2024</em>.  The Company will continue testing for potential impairment at least annually or as otherwise required by applicable accounting standards.</p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><i><b>Goodwill.</b></i> The purchase price of an acquired company is allocated between intangible assets and the net tangible assets of the acquired business with the residual of the purchase price recorded as goodwill. All identifiable goodwill as of <em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;"> January 31, 2024</em> is attributable to the purchase of the remaining 50% interest in Perma-Pipe Canada, Ltd., which occurred in <em style="font: inherit;">2016.</em></p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">The following table provides a reconciliation of changes in the carrying amount of goodwill:</p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: Times New Roman; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 49%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">January 31, 2024</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Foreign exchange change effect</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">April 30, 2024</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 49%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Goodwill</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">2,222</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">(50</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">2,172</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> </tbody></table> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;"> </p> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">The Company performs an impairment assessment of goodwill annually as of <em style="font: inherit;"> January 31,</em> or more frequently if triggering events occur, based on the estimated fair value of the related reporting unit or intangible asset. Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants. During the period ended <em style="font: inherit;"> April 30, 2024</em>, the Company performed a periodic assessment to determine whether there were any triggering events that <em style="font: inherit;"> may </em>have occurred which could indicate that more likely than <em style="font: inherit;">not</em> that the fair value of the reporting unit did <em style="font: inherit;">not</em> exceed its carrying value, resulting in an impairment. Based on this assessment, the Company did <em style="font: inherit;">not</em> identify any triggering events that would indicate that the fair value is less than the carrying value of the reporting unit at <em style="font: inherit;"> April 30, 2024</em> and <em style="font: inherit;">2023</em>. Accordingly, the Company did <em style="font: inherit;">not</em> proceed with performing an impairment test as a result of this periodic assessment. the Company will continue testing for impairment at least annually as of <em style="font: inherit;"> January 31,</em> or as otherwise required by applicable accounting standards.</p> <p style="margin: 0pt; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> 0.50 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: Times New Roman; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 49%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">January 31, 2024</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Foreign exchange change effect</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">April 30, 2024</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 49%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Goodwill</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">2,222</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">(50</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 14%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">2,172</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> </tbody></table> 2222000 -50000 2172000 <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><b>Note <em style="font: inherit;">7</em> - Stock-based compensation </b></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The Company’s <em style="font: inherit;">2017</em> Omnibus Stock Incentive Plan dated <em style="font: inherit;"> June 13, 2017, </em>as amended, which the Company's stockholders approved in <em style="font: inherit;"> June 2017 (</em><em style="font: inherit;">"2017</em> Plan"), expired in <em style="font: inherit;"> June 2020.</em></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The Company has prior incentive plans under which previously granted awards remain outstanding, including the <em style="font: inherit;">2017</em> Plan, but under which <em style="font: inherit;">no</em> new awards <em style="font: inherit;"> may </em>be granted. At <em style="font: inherit;"> April 30, 2024</em> the Company had reserved a total of 245,150<span style="background-color:#ffffff;"> shares</span> for grants and issuances under these incentive stock plans, which includes a reserve for issuances pursuant to unvested or unexercised prior awards.</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">While the <em style="font: inherit;">2017</em> Plan provided for the grant of deferred shares, non-qualified stock options, incentive stock options, restricted shares, restricted stock units, and performance-based restricted stock units intended to qualify under section <em style="font: inherit;">422</em> of the Internal Revenue Code, the Company issued only restricted shares and restricted stock units under the <em style="font: inherit;">2017</em> Plan. The <em style="font: inherit;">2017</em> Plan authorized awards to officers, employees, consultants, and independent directors.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The Company's <em style="font: inherit;">2021</em> Omnibus Stock Incentive Plan, dated <em style="font: inherit;"> May 26, 2021, </em>was approved by the Company's stockholders in <em style="font: inherit;"> May 2021 (</em><em style="font: inherit;">"2021</em> Plan"). The <em style="font: inherit;">2021</em> Plan will expire in <em style="font: inherit;"> May 2024. </em>The <em style="font: inherit;">2021</em> Plan authorizes awards to officers, employees, consultants and independent directors. Grants were made to the Company's employees, officers, and independent directors under the <em style="font: inherit;">2021</em> Plan, as described below.</p> <div style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">   </div> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><i><b>Stock-based compensation expense</b></i></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The Company has granted stock-based compensation awards to eligible employees, officers or independent directors. The Company recognized the following stock-based compensation expense for the periods presented:</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended April 30,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </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);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; 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;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 70%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Restricted stock-based compensation expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">228</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">229</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> </tbody></table> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;"> </p> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"><i><b>Stock options</b></i></p> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;">The Company did <span style="-sec-ix-hidden:c113356062">not</span> grant any stock options during the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> April 30, 2024</em>. The following table summarizes the Company's stock option activity:</p> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: Times New Roman; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 40%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Options</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Weighted Average Exercise Price (Per share)</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Weighted Average Remaining Contractual Term (In years)</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Aggregate Intrinsic Value</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 40%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at January 31, 2024</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">22</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">11.15</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">0.7</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">6</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 40%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Exercised</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">(1</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">6.85</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">2</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 40%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Expired or forfeited</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">11.39</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><em style="font: inherit;">-</em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><em style="font: inherit;">-</em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 40%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding and exercisable at April 30, 2024</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">21</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">11.39</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">0.4</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">7</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;"><span style="background-color:#ffffff;">There was no vesting, expiration or forfeiture of previously unvested stock options during the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> April 30, 2024</em></span><span style="background-color:#ffffff;">. In addition</span><span style="background-color:#ffffff;">, there were no remaining unvested stock options outstanding, and therefore no unrecognized compensation expense related to unvested stock options.</span></p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><i><b>Restricted stock</b></i></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The following table summarizes the Company's restricted stock activity for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> April 30, 2024</em>:</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: Times New Roman; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">Restricted Shares</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">Weighted Average Price (Per share)</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">Aggregate Intrinsic Value</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 55%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at January 31, 2024</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">223</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">9.33</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">2,079</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Granted</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="text-align: right; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Vested and issued</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="text-align: right; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Forfeited or retired for taxes</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="text-align: right; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"><em style="font: inherit;"> </em></td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at April 30, 2024</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">223</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9.33</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2,079</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">As of <em style="font: inherit;"> April 30, 2024</em>, there was $0.8<span style="background-color:#ffffff;"> million</span> of unrecognized compensation expense related to unvested restricted stock granted under the plans. These costs are expected to be recognized over a weighted average period of 1.7<span style="background-color:#ffffff;"> years</span>.</p> 245150 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended April 30,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </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);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; 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;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 70%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Restricted stock-based compensation expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">228</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">229</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> </tbody></table> 228000 229000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: Times New Roman; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 40%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Options</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Weighted Average Exercise Price (Per share)</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Weighted Average Remaining Contractual Term (In years)</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Aggregate Intrinsic Value</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 40%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at January 31, 2024</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">22</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">11.15</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">0.7</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">6</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 40%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Exercised</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">(1</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">6.85</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">2</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 40%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Expired or forfeited</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">11.39</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><em style="font: inherit;">-</em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><em style="font: inherit;">-</em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 40%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding and exercisable at April 30, 2024</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">21</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">11.39</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">0.4</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">7</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 22000 11.15 P0Y8M12D 6000 1000 6.85 2000 -0 11.39 21000 11.39 P0Y4M24D 7000 0 0 0 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: Times New Roman; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">Restricted Shares</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">Weighted Average Price (Per share)</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">Aggregate Intrinsic Value</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 55%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at January 31, 2024</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">223</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">9.33</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">2,079</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Granted</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="text-align: right; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Vested and issued</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="text-align: right; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Forfeited or retired for taxes</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="text-align: right; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"><em style="font: inherit;"> </em></td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Outstanding at April 30, 2024</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">223</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9.33</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2,079</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 223000 9.33 2079000 0 0 -0 0 -0 0 223000 9.33 2079000 800000 P1Y8M12D <p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>Note <em style="font: inherit;">8</em> - Earnings per share</b></p> <p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended April 30,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </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);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; 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;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 70%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Basic weighted average common shares outstanding at April 30, 2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7,906</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8,004</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Dilutive effect of equity compensation plans</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Weighted average common shares outstanding assuming full dilution</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,056</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><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,004</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> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Stock options and restricted stock not included in the computation of diluted earnings per share of common stock because the option exercise prices or grant date prices exceeded the average market prices of the common shares</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">32</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">35</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Stock options and restricted stock with exercise prices or grant date prices below the average market prices</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">210</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Net income (loss) attributable to common stock</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">1,443</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">(1,123</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Earnings per share attributable to common stock</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Basic</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">0.18</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">(0.14</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Diluted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">0.18</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">(0.14</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td></tr> </tbody></table> <p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended April 30,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </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);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; 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;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 70%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Basic weighted average common shares outstanding at April 30, 2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7,906</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8,004</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Dilutive effect of equity compensation plans</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Weighted average common shares outstanding assuming full dilution</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,056</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><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,004</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> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Stock options and restricted stock not included in the computation of diluted earnings per share of common stock because the option exercise prices or grant date prices exceeded the average market prices of the common shares</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">32</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">35</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Stock options and restricted stock with exercise prices or grant date prices below the average market prices</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">210</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Net income (loss) attributable to common stock</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">1,443</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">(1,123</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Earnings per share attributable to common stock</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Basic</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">0.18</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">(0.14</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Diluted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">0.18</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">(0.14</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0; margin: 0">)</td></tr> </tbody></table> 7906000 8004000 150000 0 8056000 8004000 32000 35000 150000 210000 1443000 -1123000 0.18 -0.14 0.18 -0.14 <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><b>Note <em style="font: inherit;">9</em> - Debt</b></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">Debt totaled $27.3 million and $25.7 million at <em style="font: inherit;"> April 30, 2024</em> and <em style="font: inherit;"> January 31, 2024</em>, respectively.</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><i><b>Revolving lines - North America</b></i><b>. </b>On <em style="font: inherit;"> September 20, 2018, </em>the Company and certain of its U.S. and Canadian subsidiaries (collectively, together with the Company, the “North American Loan Parties”) entered into a Revolving Credit and Security Agreement (the “Credit Agreement”) with PNC Bank, National Association ("PNC"), as administrative agent and lender, providing for a <span style="-sec-ix-hidden:c113356153">three</span>-year $18 million senior secured revolving credit facility, subject to a borrowing base including various reserves (the “Senior Credit Facility”).</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">On <em style="font: inherit;"> September 17, 2021, </em>the North American Loan Parties executed an extension of the Credit Agreement with PNC, providing for a new <span style="-sec-ix-hidden:c113356155">five</span>-year $18 million senior secured revolving credit facility, subject to a borrowing base including various reserves (the “Renewed Senior Credit Facility”). The Company's obligations under the Renewed Senior Credit Facility are currently guaranteed by Perma-Pipe Canada, Inc. Each of the North American Loan Parties other than Perma-Pipe Canada, Inc. (collectively, the "Borrowers") is a borrower under the Renewed Senior Credit Facility.</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The Borrowers have used and will continue to use borrowings under the Renewed Senior Credit Facility (i) to fund future capital expenditures; (ii) to fund ongoing working capital needs; and (iii) for other corporate purposes, including potentially additional stock repurchases. Borrowings under the Renewed Senior Credit Facility bear interest at a rate equal to an alternate base rate, SOFR rate index, plus, in each case, an applicable margin. The applicable margin is based on a fixed charge coverage ratio ("FCCR") range. Interest on alternate base rate borrowings is the alternate base rate (as defined in the Renewed Senior Credit Facility) plus an applicable margin ranging from 1.00% to 1.50%, based on the FCCR in the most recently reported period. Interest on SOFR rate borrowings is the SOFR rate (as defined in the Renewed Senior Credit Facility) plus an applicable margin ranging from 2.00% to 2.50%, based on the FCCR in the most recently reported period, as well as an additional SOFR adjustment ranging from 0.10% to 0.25%, based on the term of the interest period. Additionally, the Borrowers pay a 0.25% per annum facility fee on the unused portion of the Renewed Senior Credit Facility.</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;">Subject to certain exceptions, borrowings under the Renewed Senior Credit Facility are secured by substantially all of the North American Loan Parties’ assets. The Renewed Senior Credit Facility matures on <em style="font: inherit;"> September 20, 2026. </em>Subject to certain qualifications and exceptions, the Renewed Senior Credit Facility contains covenants that, among other things, restrict the North American Loan Parties’ ability to create liens, merge or consolidate, consummate acquisitions, make investments, dispose of assets, incur debt, and pay dividends and other distributions. In addition, the North American Loan Parties <em style="font: inherit;"> may </em><em style="font: inherit;">not</em> make capital expenditures in excess of $5.0 million annually, plus a limited carryover of unused amounts. Further, the North American Loan Parties <em style="font: inherit;"> may </em><em style="font: inherit;">not</em> make repurchases of the Company's common stock in excess of $3.0 million.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The Renewed Senior Credit Facility also contains financial covenants requiring the North American Loan Parties to achieve a ratio of its EBITDA (as defined in the Renewed Senior Credit Facility) to the sum of scheduled cash principal payments on indebtedness for borrowed money and interest payments on the advances under the Renewed Senior Credit Facility to be <em style="font: inherit;">not</em> less than 1.10 to <em style="font: inherit;">1.00</em> for any <em style="font: inherit;">five</em> consecutive days in which the undrawn availability is less than $3.0 million or any day in which the undrawn availability is less than $2.0 million. In order to cure any future breach of these covenants by the North American Loan Parties, the Company <em style="font: inherit;"> may </em>repatriate cash from any of its foreign subsidiaries that are otherwise <em style="font: inherit;">not</em> a party to the Renewed Senior Credit Facility in an amount which, when added to the amount of the Company’s Consolidated EBITDA, would result in compliance on a pro forma basis. The Company was in compliance with respect to these covenants as of <em style="font: inherit;"> April 30, 2024</em>.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The Renewed Senior Credit Facility contains customary events of default. If an event of default occurs and is continuing, then PNC <em style="font: inherit;"> may </em>terminate all commitments to extend further credit and declare all amounts outstanding under the Renewed Senior Credit Facility due and payable immediately. In addition, if any of the North American Loan Parties or certain of their subsidiaries become the subject of voluntary or involuntary proceedings under any bankruptcy, insolvency or similar law, then any outstanding obligations under the Renewed Senior Credit Facility will automatically become immediately due and payable. Loans outstanding under the Renewed Senior Credit Facility will bear interest at a rate of 2.00% per annum in excess of the otherwise applicable rate (i) while a bankruptcy event of default exists or (ii) upon the lender's request, during the continuance of any other event of default.</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">As of <em style="font: inherit;"> April 30, 2024</em>, the Company had borrowed an aggregate of <span style="background-color:#ffffff">$5.3</span><span style="background-color:#ffffff"> million at a rate of 10.0%</span><span style="background-color:#ffffff"> and had $5.0</span><span style="background-color:#ffffff"> million available under the Renewed Senior Credit Facility. As of <em style="font: inherit;"> January 31, 2024</em>, the Company had borrowed an aggregate of $5.5 million and had $4.0 million available under the Renewed Senior Credit Facility.  </span></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;"><i><b><span style="background-color:#ffffff;">Finance obligation - buildings and land. </span></b></i><span style="background-color:#ffffff;">On <em style="font: inherit;"> April 14, 2021, </em>the Company entered into a purchase and sale agreement (the "Purchase and Sale Agreement"). Pursuant to the terms of the Purchase and Sale Agreement, the Company sold its land and buildings in Lebanon, Tennessee (the "Property") for $10.4 million. The transaction generated net cash proceeds of $9.1 million. Concurrently with the sale, the Company paid off the approximately $0.9 million mortgage note on the Property to its lender.  The Company used the remaining proceeds to repay its borrowings under the Senior Credit Facility, for strategic investments, and for general corporate needs. Concurrent with the sale of the Property, the Company entered into a <span style="-sec-ix-hidden:c113356185">fifteen</span>-year lease agreement (the “Lease Agreement”), whereby the Company leases back the Property at an annual rental rate of approximately $0.8 million, subject to annual rent increases of 2.0%. Under the Lease Agreement, the Company has <span style="-sec-ix-hidden:c113356188">four</span> consecutive options to extend the term of the lease by <span style="-sec-ix-hidden:c113356189">five</span> years for each such option.  </span></p> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;"><span style="background-color:#ffffff;">In accordance with ASC <em style="font: inherit;">842,</em> <i>Leases</i>, this transaction was recorded as a failed sale and leaseback as the present value of lease payments exceeded substantially the fair value of the underlying assets. The Company utilized an incremental borrowing rate of 8.0% to determine the finance obligation to record for the amounts received and will continue to depreciate the assets. The current portion of the finance obligation of $0.2 million is recognized in current maturities of long-term debt and the long-term portion of $9.0 million is recognized in long-term finance obligation on the Company's consolidated balance sheets as of <em style="font: inherit;"> April 30, 2024</em></span><span style="background-color:#ffffff;">. The net carrying amount of the financial liability and remaining assets will be <em style="font: inherit;">zero</em> at the end of the lease term.</span></p> <p style="margin: 0pt 7.2pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;"><i><b><span style="background-color:#ffffff;">Revolving lines - foreign</span></b></i><b><span style="background-color:#ffffff;">.</span></b><span style="background-color:#ffffff;"> The Company also has credit arrangements used by its Middle Eastern subsidiaries in the U.A.E.</span><span style="background-color:#ffffff;">,</span><span style="background-color:#ffffff;"> Egypt </span><span style="background-color:#ffffff;">and Saudi Arabia </span><span style="background-color:#ffffff;">as discussed further below.</span></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><i>United Arab Emirates</i></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The Company has a revolving line for 8.0 million U.A.E. Dirhams (approximately $2.2 million at <em style="font: inherit;"> April 30, 2024</em>) from a bank in the U.A.E. As of <em style="font: inherit;"> April 30, 2024</em> the facility has an interest rate of approximately 8.8%, and is set to expire in <em style="font: inherit;"> July </em><em style="font: inherit;">2024,</em> with intentions to be subsequently renewed and extended thereafter. The Company had borrowed an aggregate of $0.2 million as of <em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;"> January 31, 2024</em>, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. The Company had unused borrowing availability of approximately $1.9 million as of <em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;"> January 31, 2024</em>, respectively. </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has a revolving line for 20.5 million U.A.E. Dirhams (approximately $5.6 million at <em style="font: inherit;"> April 30, 2024</em>) from a bank in the U.A.E. As of <em style="font: inherit;"> April 30, 2024</em> the facility has an interest rate of approximately 8.7%, and is set to expire in <em style="font: inherit;"> August </em><em style="font: inherit;">2024,</em> with intentions to be subsequently renewed and extended thereafter. The Company had borrowed an aggregate of $0.1 million as of <em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;"> January 31, 2024</em>, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. As of <em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;"> January 31, 2024</em>, the Company had unused borrowing availability of approximately $1.6 million and $1.0 million, respectively.</p> <p style="margin: 0px; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0px; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><i>Egypt</i></p> <p style="margin: 0px; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <div> <div style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <div style="font-size:10pt"> <div style="font-family:Times New Roman"> In <em style="font: inherit;"> June 2021, </em>and as renewed or amended subsequently thereafter, the Company's Egyptian subsidiary entered into a credit arrangement with a bank in Egypt for a revolving line of 100.0 million Egyptian Pounds (approximately <span style="background-color:#ffffff">$2.1</span> <span style="background-color:#ffffff"> million</span> at <em style="font: inherit;"> April 30, 2024</em>). This credit arrangement is in the form of project financing at rates competitive in Egypt. The line is secured by certain assets (such as accounts receivable) of the Company's Egyptian subsidiary. Among other covenants, the credit arrangement established a maximum leverage ratio allowable and restricted the Company's Egyptian subsidiary's ability to undertake any additional debt. As of <em style="font: inherit;"> April 30, 2024</em> the facility has an interest rate of approximately 9.5% <span style="background-color:#ffffff"> and expired in <em style="font: inherit;"> June 2022. </em>This credit arrangement was subsequently renewed in <em style="font: inherit;"> August 2023 </em>with substantially the same terms and conditions, except for the facility interest rate which increased to 20.8%, and expires in <em style="font: inherit;"> August 2024. </em>This credit arrangement was subsequently renewed in <em style="font: inherit;"> November 2023 </em>with substantially the same terms and conditions and expires in <em style="font: inherit;"> November 2024. </em>As of <em style="font: inherit;"> April 30, 2024</em>, the Company had substantially nothing outstanding with respect to this credit arrangement, and approximately $1.4 million outstanding at <em style="font: inherit;"> January 31, 2024</em>, which is presented as a component of current </span>maturities of long-term debt in the Company's consolidated balance sheets. Further, as of  <em style="font: inherit;"> April 30, 2024</em> and  <em style="font: inherit;"> January 31, 2024</em>, the Company had unused borrowing capacity of $2.1 million and $3.2 million, respectively.  </div> </div> </div> <div style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">   </div> </div> <div> <div style="font-size:10pt"> <div style="font-family:Times New Roman"> In <em style="font: inherit;"> December 2021, </em>the Company entered into a credit arrangement for project financing with a bank in Egypt for 28.2 million Egyptian Pounds. As this project has progressed and the Company has made collections, the facility has decreased to a current amount of  2.1 million Egyptian Pounds (approximatel <span style="background-color:#ffffff">y $0.1 </span> <span style="background-color:#ffffff">mi</span>llion at <em style="font: inherit;"> April 30, 2024</em>). This credit arrangement is in the form of project financing at rates competitive in Egypt. The line is secured by the contract for a project being financed by the Company's Egyptian subsidiary. <span style="background-color:#ffffff">The facility has an interest rate of approximately 11.0%</span> <span style="background-color:#ffffff"> and, as of</span>  <em style="font: inherit;"> November 2022, </em>is no longer available for borrowings by the Company. The facility will expire in connection with final customer balance collections and the completion of the project. The Company had approximately $0.1 million outstanding  as of <em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;"> January 31, 2024</em>, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. </div> </div> </div> <p style="margin: 0px; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; margin: 0pt;"><i>Saudi Arabia</i></p> <p style="font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; margin: 0pt;"> </p> <p style="font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> March 2022, </em>the Company's Saudi Arabian subsidiary entered into a credit arrangement with a bank in Saudi Arabia for a revolving line of 37.0 million Saudi Riyals (approximately $9.9 million at <em style="font: inherit;"> April 30, 2024</em>). This credit arrangement is in the form of project financing at rates competitive in Saudi Arabia. The line is secured by certain assets (such as accounts receivable) of the Company's Saudi Arabian subsidiary. The facility was renewed in <em style="font: inherit;"> May 2024 </em>with substantially the same terms and conditions and expires in <em style="font: inherit;"> May 2025. </em>As of <em style="font: inherit;"> April 30, 2024</em>, the facility has an interest rate of approximately 9.5%. The Company had borrowed an aggregate of $4.1 million and $3.2 million as of <em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;"> January 31, 2024</em>, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. The unused borrowing availability attributable to this credit arrangement at <em style="font: inherit;"> April 30, 2024</em> and <em style="font: inherit;"> January 31, 2024</em>, was $5.4 million and $6.1 million, respectively. </p> <p style="font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; margin: 0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">These credit arrangements are in the form of overdraft facilities and project financing at rates competitive in the countries in which the Company operates. The lines are secured by certain equipment, certain assets (such as accounts receivable and inventory), and a guarantee by the Company. Some credit arrangement covenants require a minimum tangible net worth to be maintained, including maintaining certain levels of intercompany subordinated debt. In addition, some of the revolving credit facilities restrict payment of dividends or undertaking of additional debt. The Company guarantees only a portion of the subsidiaries' debt, including foreign debt. The amount of foreign subsidiary debt guaranteed by the Company was approxim<span style="background-color:#ffffff;">ately $0.3 million and $0.1 million at <em style="font: inherit;"> April 30, 2024</em> and <em style="font: inherit;"> January 31, 2024</em>, respectively. </span></p> <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"> </p> <p style="margin: 0px; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The Company was in compliance with the covenants under the credit arrangements in the U.A.E., Egypt and Saudi Arabia as of <em style="font: inherit;"> April 30, 2024</em>, with the exception of those arrangements that have expired or are set to expire and have <em style="font: inherit;">not</em> yet been renewed. Although certain of the arrangements have expired and the borrowings could be required to be repaid immediately by the banks, the Company is in regular communication with the respective banks throughout the renewal process and all of the arrangements have continued without interruption or penalty. On <em style="font: inherit;"> April 30, 2024</em>, interest rates were based on (i) the Emirates Inter Bank Offered Rate plus 3.0% to 3.5% per annum for the U.A.E. credit arrangements, <em style="font: inherit;">two</em> of which have a minimum interest rate of 4.5% per annum; (ii) either the Central Bank of Egypt corporate loan rate plus 1.5% to 3.5% per annum or the stated interest rate in the agreements for the Egypt credit arrangements; and (iii) the Saudi Inter-Bank Offered Rate plus 3.5% for the Saudi Arabia credit arrangement. Based on these base rates, as of <em style="font: inherit;"> April 30, 2024</em>, the Company's interest rates ranged from 8.7% to 20.8%, with a weighted average rate of 11.5%, and the Company had facility limits totaling <span style="background-color:#ffffff;">$24.7</span><span style="background-color:#ffffff;"> million</span> under these credit arrangements. <span style="background-color: rgb(255, 255, 255); font-family: Times New Roman; font-size: 10pt;">As of </span><em style="font: inherit;"> April 30, 2024</em><span style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;">, </span><span style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><span style="background-color:#ffffff;">$6.7</span><span style="background-color:#ffffff;"> million</span></span><span style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> o</span><span style="background-color: rgb(255, 255, 255); font-family: Times New Roman; font-size: 10pt;">f availability was used to support letters of credit to guarantee amounts committed for inventory purchases and for performance guarantees. Additionally, as of </span><em style="font: inherit;"> April 30, 2024</em><span style="background-color: rgb(255, 255, 255); font-family: Times New Roman; font-size: 10pt;">, the Company had borrow</span><span style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;">ed </span><span style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><span style="background-color:#ffffff;">$8.4</span><span style="background-color:#ffffff;"> million</span> and had an additional <span style="background-color:#ffffff;">$13.0</span><span style="background-color:#ffffff;"> million</span> of </span>borrowing remaining available under the foreign revolving credit arrangements. The foreign revolving lines balances were included as a component of current maturities of long-term debt in the Company's consolidated balance sheets as of <em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;"> January 31, 2024</em>.</p> <p style="margin: 0px; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0px; text-align: justify; font-family: Times New Roman; font-size: 10pt;">In <em style="font: inherit;"> June 2023, </em>the Company assumed a promissory note of approximately $2.8 million in connection with the formation of the joint venture with Gulf Insulation Group (see Note <em style="font: inherit;">15</em>). In accordance with the promissory note, all principal is due and payable on the maturity date of <em style="font: inherit;"> April 9, 2026, </em>with the option to prepay, in whole or in part, at any time prior to the maturity date, without premium or penalty.</p> <p style="margin: 0px; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0px; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><i><b>Mortgages. </b></i>On <em style="font: inherit;"> July </em><em style="font: inherit;">28,</em> <em style="font: inherit;">2016,</em> the Company entered into a mortgage agreement secured by the Company's manufacturing facility located in Alberta, Canada that matures on <em style="font: inherit;"> December </em><span style="-sec-ix-hidden:c113356254">23,</span> <em style="font: inherit;">2042.</em> As of <em style="font: inherit;"> April 30, 2024</em>, the remaining balance on the mortgage in Canada is approximately CAD 6.00 million (approximately $4.4 million at <em style="font: inherit;"> April 30, 2024</em>). The interest rate is variable, and was 9.1%<span style="background-color:#ffffff;"> </span>at <em style="font: inherit;"> April 30, 2024</em>. The principal balance is included as a component of long-term debt, less current maturities in the Company's consolidated balance sheets and is presented net of issuance costs of $0.1 million as of <em style="font: inherit;"> April 30, 2024 </em>and <em style="font: inherit;"> January 31, 2024</em>, respectively.</p> 27300000 25700000 18000000 18000000 0.01 0.015 0.02 0.025 0.001 0.0025 0.0025 5000000 3000000 1.1 3000000 2000000 0.02 5300000 0.10 5000000 5500000 4000000 10400000 9100000 900000 800000 0.02 0.08 200000 9000000 8000000 2200000 0.088 200000 1900000 20500000 5600000 0.087 100000 1600000 1000000 100000000 2100000 0.095 0.208 1400000 2100000 3200000 28200000 2100000 100000 0.11 0 100000 37000000 9900000 0.095 4100000 3200000 5400000 6100000 300000 100000 0.03 0.035 0.045 0.015 0.035 0.035 0.087 0.208 0.115 24700000 6700000 8400000 13000000 2800000 6000000 4400000 0.091 100000 <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><b>Note <em style="font: inherit;">10</em> - Leases</b></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The Company accounts for its leases under ASC <em style="font: inherit;">842,</em> <i>Leases</i>. Under this guidance, arrangements meeting the definition of a lease are classified as operating or financing leases, and are recorded on the consolidated balance sheets. Operating leases are included in operating lease right-of-use (“ROU”) assets, operating lease liabilities short-term, and operating lease liabilities long-term in the Company's consolidated balance sheets. Finance leases are included in property, plant and equipment, current maturities of long-term debt, and long-term debt less current maturities in the Company's consolidated balance sheets. </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;">ROU assets represent the Company's right to use an underlying asset for the lease term and lease liabilities represent the Company's obligation to make lease payments arising from the lease calculated by discounting fixed lease payments over the lease term at the rate implicit in the lease or the Company’s incremental borrowing rate.  Lease liabilities are increased by interest and reduced by payments each period, and the ROU asset is amortized over the lease term.  For operating leases, interest on the lease liability and the amortization of the ROU asset result in straight-line rent expense over the lease term.  For finance leases, interest on the lease liability and the amortization of the ROU asset results in front-loaded expense over the lease term.  Variable lease expenses are recorded when incurred. ROU assets and liabilities are recognized at the commencement date of the lease based on the present value of lease payments over the lease term.</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;">As most of the Company's leases do <em style="font: inherit;">not</em> provide an implicit rate, the Company uses its incremental borrowing rate based on the information available at the commencement date in determining the present value of lease payments. The incremental borrowing rate is the rate of interest that the Company would have to pay to borrow on a collateralized basis over a similar term and amount equal to the lease payments in a similar economic environment.</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;">In calculating the ROU asset and lease liability, the Company elects to combine lease and non-lease components. Additionally, the Company excludes short-term leases having an initial term of <em style="font: inherit;">12</em> months or less in accordance with the new guidance as an accounting policy election, and recognizes rent expense on a straight-line basis over the lease term.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><i><b>Operating Leases. </b></i>In <em style="font: inherit;"> August 2020, </em>the Company entered into a new lease in Abu Dhabi for land upon which the Company built a facility. The initial annual payments were approximately 1.2 million U.A.E. Dirhams (approximatel<span style="background-color:#ffffff;">y $0.3 </span>million at <em style="font: inherit;"> April 30, 2024), </em>inclusive of rent, escalation clauses, and other common charges contained in the agreement. Rent payments previously deferred until <em style="font: inherit;"> August 2022 </em>have commenced, and the lease expires in <em style="font: inherit;"> August 2050. </em></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><span style="background-color:#ffffff;">In <em style="font: inherit;"> March </em>and <em style="font: inherit;"> December 2022, </em>the Company served Notices of Termination to its lessor for the Company's lease of land and buildings in Fujairah in the U.A.E. The Company served the Notices of Termination in connection with the Company's intended relocation to a different facility in Abu Dhabi. The Company vacated portions of the leased space in <em style="font: inherit;"> December 2022 </em>and expects to vacate the remaining space in <em style="font: inherit;"> December 2024. </em>The <em style="font: inherit;">first</em> Notice of Termination required that the Company pay an additional amount equal to <em style="font: inherit;">three</em> months' rent after that termination to enable the lessor to prepare the assets for lease by another party. As a result of the termination, the Company has recognized adjustments to the amounts recorded in the consolidated financial statements as of </span><em style="font: inherit;"> April 30, 2024</em><span style="background-color:#ffffff;">. The termination resulted in decreases of $0.4 million, $6.0 million and $5.5 million to operating lease liability short-term, operating lease liability long-term and operating lease right-of-use asset, respectively, in the consolidated balance sheets as of </span><em style="font: inherit;"> April 30, 2024</em><span style="background-color:#ffffff;">. The termination also resulted in a decrease in rent expense of $1.1 million in the consolidated statement of operations for the year ended <em style="font: inherit;"> January 31, 2023. </em>There were <em style="font: inherit;">no</em> other adjustments in connection with these terminations for the year ended <em style="font: inherit;"> January 31, 2024, </em>or during the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> April 30, 2024</em>. </span></p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">At <em style="font: inherit;"> April 30, 2024</em>, the Company had total operating lease liabilities of <span style="background-color:#ffffff">$6.9 </span>million and operating ROU assets of <span style="background-color:#ffffff">$6.2</span><span style="background-color:#ffffff"> million</span>, which are reflected in the consolidated balance sheets. At <em style="font: inherit;"> April 30, 2024</em>, the Company also had total finance lease liabilities of $0.1 million included in <span style="-sec-ix-hidden:c113356283">current maturities of long-term debt</span>, and total finance ROU assets of $0.4 million which were included in <span style="-sec-ix-hidden:c113356285">property plant and equipment, net of accumulated depreciation</span> in the consolidated balance sheets.</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"><i><b>Finance Leases. </b></i>The Company has several significant operating lease agreements, with lease terms of <span style="-sec-ix-hidden:c113356286">one</span> to <span style="-sec-ix-hidden:c113356287">thirty</span> years, which consist of real estate, vehicles and office equipment leases. These leases do <em style="font: inherit;">not</em> require any contingent rental payments, impose any financial restrictions or contain any residual value guarantees.  Certain of the Company’s leases include renewal options and escalation clauses; renewal options have <em style="font: inherit;">not</em> been included in the calculation of the lease liabilities and ROU assets as the Company is <em style="font: inherit;">not</em> reasonably certain to exercise the options.  The Company does <em style="font: inherit;">not</em> have any arrangements where it acts as a lessor. </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">At <em style="font: inherit;"> April 30, 2024</em>, the Company also had finance lease liabilities of $0.1 million included in <span style="-sec-ix-hidden:c113356294">current maturities of long-term debt</span> and <span style="-sec-ix-hidden:c113356295">long-term debt less current maturities</span>, and financial ROU assets of $0.4 million which were included in <span style="-sec-ix-hidden:c113356297">property plant and equipment, net of accumulated depreciation</span> in the consolidated balance sheets. </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">Supplemental balance sheet information related to leases is as follows: </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; text-indent: 0px; font-family: Times New Roman; font-size: 10pt;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="width: 70%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;"><b>Operating and Finance leases:</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: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt;"><b>April 30, 2024</b></p> </td><td style="font-family: Times New Roman; 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: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt;"><b>January 31, 2024</b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;">Finance leases assets:</p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 9pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Property and Equipment - gross</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">949</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">970</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 9pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Accumulated depreciation and amortization</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(562</td><td style="width: 1%; font-family: Times New Roman; 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 black;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(536</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Property and Equipment - net</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">387</td><td style="width: 1%; font-family: Times New Roman; 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; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">434</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;">Finance lease liabilities:</p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 9pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Finance lease liability short-term</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">32</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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">113</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0pt;">Finance lease liability long-term</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">71</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Total finance lease liabilities</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">103</td><td style="width: 1%; font-family: Times New Roman; 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; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">113</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;">Operating lease assets:</p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 9pt;">Operating lease ROU assets</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">6,165</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">6,467</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;">Operating lease liabilities:</p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0pt;">Operating lease liability short-term</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">845</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">914</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0pt;">Operating lease liability long-term</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">6,032</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">6,270</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 9pt;">Total operating lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">6,877</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">7,184</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td></tr> </tbody></table> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">Total lease costs consist of the following: </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended April 30,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 25.3%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Lease costs</b></p> </td><td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 44.7%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Consolidated Statements of Operations Classification</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </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);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; 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;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Finance Lease Costs</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Amortization of ROU assets</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Cost of sales</em></p> </td><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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">38</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">53</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Interest on lease liabilities</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Interest expense</em></p> </td><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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Operating lease costs</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Cost of sales, SG&amp;A expenses</em></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">455</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">456</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Short-term lease costs (1)</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Cost of sales, SG&amp;A expenses</em></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">143</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">179</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Sub-lease income</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">SG&amp;A expenses</em></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(20</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td colspan="2" style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Total Lease costs</em></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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">638</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><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">671</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="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;">(<em style="font: inherit;">1</em>) Includes variable lease costs, which are <em style="font: inherit;">not</em> material.</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;">Supplemental cash flow information related to leases is as follows:</p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; text-indent: 0px; font-family: Times New Roman; font-size: 10pt;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0"> </td><td colspan="7" rowspan="1" style="text-align: center; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"><b><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;">Three Months Ended April 30,</em></em></em></b></td></tr> <tr style="background-color: rgb(255, 255, 255); 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: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="padding-bottom: 1px; font-family: Times New Roman; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="padding-bottom: 1px; font-family: Times New Roman; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0);"><em style="font: inherit;"> </em></td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="width: 70%; font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;"><b>Cash paid for amounts included in the measurement of lease liabilities:</b></p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Financing cash outflows from finance leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">8</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">83</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;"> </em></td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Operating cash outflows from finance leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">2</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">3</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;"> </em></td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Operating cash outflows from operating leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">454</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">468</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;"> </em></td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="width: 70%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;"><b>ROU assets obtained in exchange for new lease obligations:</b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 9pt;">Operating leases liabilities</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">129</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"><em style="font: inherit;"> </em></td></tr> </tbody></table> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">Weighted-average lease terms and discount rates are as follows: </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; text-indent: 0px; font-family: Times New Roman; font-size: 10pt;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="width: 85%; font-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 colspan="2" style="width: 1%; text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt;"><b><em style="font: inherit;">April 30, 2024</em></b></p> </td><td style="width: 1%; padding-bottom: 1px; font-family: Times New Roman; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;"><b>Weighted-average remaining lease terms (in years):</b></p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Finance leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">3.0</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Operating leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">13.8</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;"><b>Weighted-average discount rates:</b></p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Finance leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">6.9</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">%</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Operating leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">9.8</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">%</td></tr> </tbody></table> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">Maturities of lease liabilities as of <em style="font: inherit;"> April 30, 2024</em>, is as follows:</p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: Times New Roman; text-indent: 0px;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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;"><em style="font: inherit;">Operating Leases</em></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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;"><em style="font: inherit;">Finance Leases</em></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 70%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">For the nine months ending January 31, 2024</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">1,416</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">28</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">For the year ended January 31, 2026</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">1,714</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">38</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">For the year ended January 31, 2027</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">1,701</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">38</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">For the year ended January 31, 2028</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">1,656</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">9</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">For the year ended January 31, 2029</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">1,286</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">For the year ended January 31, 2030</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">499</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Thereafter</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">6,982</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total lease payments</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-bottom: 3px;"> </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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">15,254</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; border-bottom: 3px double rgb(0, 0, 0);"> </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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">113</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> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Less: amount representing interest</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(8,377</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(10</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Total lease liabilities at April 30, 2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">6,877</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">103</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td></tr> </tbody></table> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">Rent expense on operating leases, which is recorded on straight-line basis, was $0.6 <span style="background-color:#ffffff;">million</span><span style="background-color:#ffffff;"> </span>for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> April 30, 2024</em> and <em style="font: inherit;">2023</em>, respectively.</p> 1200000 300000 400000 6000000 5500000 1100000 6900000 6200000 100000 400000 100000 400000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; text-indent: 0px; font-family: Times New Roman; font-size: 10pt;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="width: 70%; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;"><b>Operating and Finance leases:</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: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt;"><b>April 30, 2024</b></p> </td><td style="font-family: Times New Roman; 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: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt;"><b>January 31, 2024</b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;">Finance leases assets:</p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 9pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Property and Equipment - gross</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">949</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">970</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 9pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Accumulated depreciation and amortization</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(562</td><td style="width: 1%; font-family: Times New Roman; 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 black;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(536</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Property and Equipment - net</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">387</td><td style="width: 1%; font-family: Times New Roman; 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; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">434</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;">Finance lease liabilities:</p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 9pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-indent: -9pt;">Finance lease liability short-term</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">32</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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">113</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0pt;">Finance lease liability long-term</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">71</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt; text-indent: -9pt;">Total finance lease liabilities</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">103</td><td style="width: 1%; font-family: Times New Roman; 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; border-bottom: 3px double black;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">113</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;">Operating lease assets:</p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 9pt;">Operating lease ROU assets</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">6,165</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">6,467</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;">Operating lease liabilities:</p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0pt;">Operating lease liability short-term</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">845</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">914</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0pt;">Operating lease liability long-term</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">6,032</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">6,270</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 9pt;">Total operating lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"><em style="font: inherit;"> </em></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">6,877</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">7,184</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td></tr> </tbody></table> 949000 970000 562000 536000 387000 434000 32000 113000 71000 0 103000 113000 6165000 6467000 845000 914000 6032000 6270000 6877000 7184000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended April 30,</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 25.3%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Lease costs</b></p> </td><td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 44.7%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">Consolidated Statements of Operations Classification</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </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);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; 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;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; text-align: center; margin: 0pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Finance Lease Costs</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Amortization of ROU assets</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Cost of sales</em></p> </td><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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">38</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">53</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Interest on lease liabilities</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Interest expense</em></p> </td><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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Operating lease costs</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Cost of sales, SG&amp;A expenses</em></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">455</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">456</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Short-term lease costs (1)</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Cost of sales, SG&amp;A expenses</em></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">143</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">179</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;">Sub-lease income</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">SG&amp;A expenses</em></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(20</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td colspan="2" style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Total Lease costs</em></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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">638</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><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">671</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> 38000 53000 2000 3000 455000 456000 143000 179000 -0 20000 638000 671000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; text-indent: 0px; font-family: Times New Roman; font-size: 10pt;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0"> </td><td colspan="7" rowspan="1" style="text-align: center; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"><b><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;">Three Months Ended April 30,</em></em></em></b></td></tr> <tr style="background-color: rgb(255, 255, 255); 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: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt;"><b><em style="font: inherit;">2024</em></b></p> </td><td style="padding-bottom: 1px; font-family: Times New Roman; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="padding-bottom: 1px; font-family: Times New Roman; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0);"><em style="font: inherit;"> </em></td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="width: 70%; font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;"><b>Cash paid for amounts included in the measurement of lease liabilities:</b></p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Financing cash outflows from finance leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">8</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">83</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;"> </em></td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Operating cash outflows from finance leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">2</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">3</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;"> </em></td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Operating cash outflows from operating leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">454</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">468</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;"> </em></td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="width: 70%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;"><b>ROU assets obtained in exchange for new lease obligations:</b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 9pt;">Operating leases liabilities</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">129</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"><em style="font: inherit;"> </em></td></tr> </tbody></table> 8000 83000 2000 3000 454000 468000 0 129000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; text-indent: 0px; font-family: Times New Roman; font-size: 10pt;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="width: 85%; font-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 colspan="2" style="width: 1%; text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt;"><b><em style="font: inherit;">April 30, 2024</em></b></p> </td><td style="width: 1%; padding-bottom: 1px; font-family: Times New Roman; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;"><b>Weighted-average remaining lease terms (in years):</b></p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Finance leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">3.0</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Operating leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">13.8</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt;"><b>Weighted-average discount rates:</b></p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Finance leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">6.9</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">%</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="width: 85%; font-family: Times New Roman; font-size: 10pt;"> <p style="text-indent: -9pt; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt 0pt 0pt 18pt;">Operating leases</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">9.8</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">%</td></tr> </tbody></table> P3Y P13Y9M18D 0.069 0.098 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: Times New Roman; text-indent: 0px;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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;"><em style="font: inherit;">Operating Leases</em></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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;"><em style="font: inherit;">Finance Leases</em></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 70%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">For the nine months ending January 31, 2024</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">1,416</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">28</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">For the year ended January 31, 2026</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">1,714</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">38</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">For the year ended January 31, 2027</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">1,701</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">38</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">For the year ended January 31, 2028</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">1,656</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">9</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">For the year ended January 31, 2029</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">1,286</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">For the year ended January 31, 2030</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">499</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Thereafter</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">6,982</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Total lease payments</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-bottom: 3px;"> </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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">15,254</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; border-bottom: 3px double rgb(0, 0, 0);"> </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: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">113</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> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Less: amount representing interest</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0px 0px 1px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(8,377</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">(10</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 1px solid rgb(0, 0, 0);">)</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px;"> <p style="margin: 0pt; font-size: 10pt; font-family: Times New Roman;">Total lease liabilities at April 30, 2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0px 0px 3px; margin: 0px;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">6,877</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);">103</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin: 0px; border-bottom: 3px double rgb(0, 0, 0);"> </td></tr> </tbody></table> 1416000 28000 1714000 38000 1701000 38000 1656000 9000 1286000 0 499000 0 6982000 0 15254000 113000 8377000 10000 6877000 103000 600000 <p style="text-align: justify; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; margin: 0pt;"><b>Note <em style="font: inherit;">11</em> - Restricted cash</b></p> <p style="text-align: justify; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; margin: 0pt;"> </p> <div style="font-size:10pt"> <div style="font-family:Times New Roman"> Restricted cash held by foreign subsidiaries is related to fixed deposits that also serve as security deposits and guarantees:  </div> <div style="font-family:Times New Roman">   </div> <div style="font-family:Times New Roman"> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: Times New Roman; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">April 30, 2024</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">January 31, 2024</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 70%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Cash and cash equivalents</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">7,674</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">5,845</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Restricted cash</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,390</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,395</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Cash, cash equivalents and restricted cash shown in the statement of cash flows</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,064</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">7,240</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;"> </p> </div> </div> <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: Times New Roman; text-indent: 0px;"><tbody><tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">April 30, 2024</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; 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><em style="font: inherit;">January 31, 2024</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt; width: 70%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Cash and cash equivalents</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">7,674</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">5,845</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Restricted cash</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,390</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,395</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Cash, cash equivalents and restricted cash shown in the statement of cash flows</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,064</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">7,240</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td></tr> </tbody></table> 7674000 5845000 1390000 1395000 9064000 7240000 <p style="font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; margin: 0pt;"><b>Note <em style="font: inherit;">12</em> - Fair value </b></p> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: justify; font-family: Times New Roman; font-size: 10pt;">The carrying values of cash and cash equivalents, accounts receivable and accounts payable are considered reasonable estimates of fair value due to their short-term nature. The carrying amount of the Company's short-term debt, revolving lines of credit and long-term debt approximate fair value because the majority of the amounts outstanding accrue interest at variable market rates.</p> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"><b>Note <em style="font: inherit;">13</em> - Recent accounting pronouncements</b></p> <p style="margin: 0pt; text-align: left; font-family: Times New Roman; font-size: 10pt;"> </p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;"><span style="background-color:#ffffff;">The Company evaluated recent accounting pronouncements and does <em style="font: inherit;">not</em> expect any to have a material impact on its consolidated financial statements or related disclosures.</span></p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;"><b>Note <em style="font: inherit;">14</em> - Treasury stock</b></p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;"> </p> <p style="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;">The repurchase program approved on <em style="font: inherit;"> October 4, 2021 </em>authorized the Company to use up to $3.0 million for the purchase of its outstanding shares of common stock. Stock repurchases were permitted to be executed through open market or privately negotiated transactions, depending upon current market conditions and other factors. On <em style="font: inherit;"> December 7, 2022 </em>the Board of Directors authorized the use of $1.0 million remaining under the share repurchase program previously approved on <em style="font: inherit;"> October 4, 2021 </em>that expired on <em style="font: inherit;"> October 3, 2022. </em>During the <em style="font: inherit;">twelve</em> months ended <em style="font: inherit;"> January 31, 2024</em>, the Company used the remaining $1.0 million authorized to repurchase its outstanding shares of common stock. Accordingly, t<span style="background-color:#ffffff;">here was no repurchase activity with respect to the Company's shares of common stock during the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> April 30, 2024</em>.</span></p> 3000000 1000000 1000000 0 <p style="font-family: Times New Roman; font-size: 10pt; margin: 0pt; text-align: left;"><b>Note <em style="font: inherit;">15</em> - Noncontrolling interest</b></p> <p style="font-family: Times New Roman; font-size: 10pt; margin: 0pt; text-align: left;"> </p> <p style="font-family: Times New Roman; font-size: 10pt; margin: 0pt; text-align: left;">On <em style="font: inherit;"> June 1, 2023, </em>the Company closed on its formation of a joint venture ("the JV", and the agreement governing the JV, "the JV Agreement") with Gulf Insulation Group ("GIG"), a leading provider of pre-insulated piping systems and pipe fabrication, in which the Company acquired a 60% controlling financial interest and contributed assets consisting of a building and equipment. The JV is a limited liability company named Perma Pipe Gulf Arabia Industry and is a closed joint stock company established under the laws of the Kingdom of Saudi Arabia. The JV's capital is comprised of ordinary shares with <em style="font: inherit;">60%</em> owned by the Company and remaining 40% owned by GIG. The Company expects this collaborative business arrangement to result in expanding its market presence in Saudi Arabia, Kuwait, and Bahrain. The primary business activities of the JV include the manufacture and sale of the pre-insulated piping systems and pipe coating services. The other party to this business arrangement acquired a <em style="font: inherit;">40%</em> non-controlling interest by contributing assets to the JV of approximately $6.8 million in fair value, mainly consisting of an idle building and equipment. The fair value of the net assets contributed was determined through the use of a <em style="font: inherit;">third</em>-party appraiser using the indirect cost method.</p> <div style="font-size: 10pt; margin: 0pt;"> <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;">Pursuant to the applicable guidance in ASC <em style="font: inherit;">805,</em> <i>Business Combinations and Noncontrolling Interests</i>, the Company determined that the transaction did <em style="font: inherit;">not</em> meet the necessary conditions to be considered a business as the set of assets acquired did <em style="font: inherit;">not</em> contain an organized workforce and therefore was recorded as an asset acquisition. The assets transferred by the Company to the JV were recorded at historical cost, and <em style="font: inherit;">no</em> gain was recognized as a result of this exchange since the Company has a controlling interest in the JV. The Company’s measurement of the acquired assets is comprised of the fair value of the contributed net assets given up by the Company and the fair value of the non-controlling interest excluding the contributed assets. The non-controlling interest attributable to the other party was recorded as of the investment date and was measured as part of the carrying amount of the ownership interest in the net assets given up by the Company plus the fair value of the non-controlling interest excluding the contributed assets. <em style="font: inherit;">No</em> gain or loss was recognized as a result of this exchange. The Company also assumed a promissory note payable to GIG issued as part of the formation of the JV in the principal amount of $2.8 million. The principal amount is presented within the Long-term debt, less current maturities caption in the Company's consolidated balance sheets. The Company also has a promissory note due from the JV that was issued as part of the formation of the JV in the amount of approximately $4.2 million and eliminates in consolidation.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">The Company has a <em style="font: inherit;">60%</em> controlling financial interest in the JV which is <em style="font: inherit;">not</em> considered a wholly owned subsidiary. Accordingly, there remains a minority portion of the equity interest that is owned by a <em style="font: inherit;">third</em> party, GIG. Pursuant to the applicable guidance contained in ASC <em style="font: inherit;">810,</em> <i>Consolidations</i>, the balance sheets and operating activities of this investment are included in the Company's consolidated financial statements. T<span style="background-color:#ffffff;">he carrying amount of the assets and liabilities of the JV that are consolidated by the Company totaled $26.3 million and $17.7 million, respectively, as of <em style="font: inherit;"> April 30, 2024</em>.</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;margin:0pt;">The Company adjusts net income in the consolidated statements of operations to exclude the proportionate share of results that is attributable to the non-controlling interest. Additionally, the Company presents the proportionate share that is attributable to the redeemable non-controlling interest as temporary equity within the consolidated balance sheets. This mezzanine presentation is the result of the non-controlling interest being subject to a put option that is <em style="font: inherit;">not</em> solely within the Company's control and in connection with the equity shares of the business arrangement that is redeemable at any time after <em style="font: inherit;">five</em> years following the date of formation. The redemption amount per the JV Agreement is at fair value of the non-controlling interest which represents the fair value of ordinary shares of the JV that is owned by GIG. Further, neither the call option or put option contained in the JV Agreement met the definition of a derivative as a result of <em style="font: inherit;">not</em> containing a net settlement provision and the shares <em style="font: inherit;">not</em> being readily convertible to cash, thereby being considered embedded with respect to non-controlling interest and <em style="font: inherit;">not</em> a freestanding instrument.</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;">As a result of the non-controlling interest being subject to redemption rights that are <em style="font: inherit;">not</em> entirely within the Company's control, it was concluded that the necessary conditions were met to be accounted for in accordance with ASC <em style="font: inherit;">480,</em> <i>Distinguishing Liabilities from Equity</i>. Pursuant to this accounting standard, the Company determined that the only criteria for the security to become redeemable is the passage of time and, therefore, is considered probable of redemption. The Company made a policy election to measure changes in the non-controlling interest immediately as they occur and adjust the carrying amount of non-controlling interest equal to its redemption amount as the non-controlling interest has <em style="font: inherit;">no</em> stated fixed price or fixed date. As such, at each subsequent balance sheet date following the formation of the JV, the Company must determine whether further adjustment is required to increase the carrying value of the redeemable non-controlling interest. If the Company determines that the fair value of the redeemable non-controlling interest exceeds its carrying value, an adjustment is made to reflect this change. However, if the value is determined to be less than its carrying value, such adjustment is limited to its original carrying value at the formation of the business arrangement. Additionally, adjustments made to reflect the change in the value of the redeemable non-controlling interest are offset against permanent equity within the Company's consolidated balance sheets.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">Net income attributable to GIG was $0.3 million and $0.0 million for the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> April 30, 2024</em> and <em style="font: inherit;">2023</em>, respectively. The proportionate share of net income was accounted for as a reduction in deriving net income attributable to common stock in the Company's consolidated statements of operations.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">The Company is the ultimate parent of the JV through its <em style="font: inherit;">60%</em> controlling financial interest and as part of the JV Agreement majority control of the operational activities of the JV and <em style="font: inherit;">no</em> joint control exists. The JV Agreement has <em style="font: inherit;">no</em> veto or kickout rights and board voting is proportional to the ownership interest. Certain activities do include a <em style="font: inherit;">two</em>-thirds majority affirmative vote of shareholders of the JV and include acquiring another company, establishing new subsidiaries, entering another partnership or joint venture, engaging in any merger or materially changing the business of the JV. These are considered protective rights. The <em style="font: inherit;">60%</em> equity ownership of the JV by the Company allows it to receive its proportionate share of losses and residual returns.</p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;"> </p> <p style="font-family:'Times New Roman';font-size:10pt;font-variant:normal;margin:0pt;">The non-controlling interest as measured at fair value was $7.0 million and $6.3 million, and was recorded within temporary equity at <em style="font: inherit;"> April 30, 2024</em> and <em style="font: inherit;"> January 31, 2024</em>, respectively. The change in non-controlling interest consists of $0.3 million in current year net income attributable to non-controlling interest, and approximately $0.4 million as an adjustment in the carrying value of the redeemable non-controlling interest pertaining to the business arrangement. In addition, there were <em style="font: inherit;">no</em> dividends or any other form of distributions from non-controlling interest for the period ended <em style="font: inherit;"> April 30, 2024</em> and <em style="font: inherit;"> January 31, 2024</em>, respectively. </p> </div> <p style="font-family: Times New Roman; font-size: 10pt; margin: 0pt; text-align: left;"> </p> 0.60 0.40 6800000 2800000 4200000 26300000 17700000 300000 0 7000000 6300000 300000 400000 <p style="margin: 0pt; text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b><a href="#" id="partii"></a>PART II <span style="-sec-ix-hidden:c113356489"><span style="-sec-ix-hidden:c113356490"><span style="-sec-ix-hidden:c113356491"><span style="-sec-ix-hidden:c113356492">OTHER</span></span></span></span> INFORMATION</b></p> <p style="margin: 0pt; text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> <p style="margin: 0pt; text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> </p> Includes variable lease costs, which are not material.