0001437749-23-033936.txt : 20231208 0001437749-23-033936.hdr.sgml : 20231208 20231208090735 ACCESSION NUMBER: 0001437749-23-033936 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 72 CONFORMED PERIOD OF REPORT: 20231031 FILED AS OF DATE: 20231208 DATE AS OF CHANGE: 20231208 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] 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: 231474059 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 ppih20231031_10q.htm FORM 10-Q ppih20231031_10q.htm
0000914122 Perma-Pipe International Holdings, Inc. false --01-31 Q3 2023 574 612 0.01 0.01 50,000 50,000 7,951 7,951 8,004 8,004 109 3 0 1 0 1 1 0 0 0 3 5 15 4 5 0.3 December 23, 2042 0.1 1 30 0.7 Includes variable lease costs, which are immaterial. 00009141222023-02-012023-10-31 xbrli:shares 00009141222023-12-07 thunderdome:item iso4217:USD 00009141222023-08-012023-10-31 00009141222022-08-012022-10-31 00009141222022-02-012022-10-31 iso4217:USDxbrli:shares 00009141222023-10-31 00009141222023-01-31 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2023-10-31 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2023-01-31 0000914122us-gaap:RelatedPartyMember2023-10-31 0000914122us-gaap:RelatedPartyMember2023-01-31 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 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 00009141222023-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 0000914122us-gaap:CommonStockMember2023-05-012023-07-31 0000914122us-gaap:AdditionalPaidInCapitalMember2023-05-012023-07-31 0000914122us-gaap:RetainedEarningsMember2023-05-012023-07-31 0000914122us-gaap:TreasuryStockCommonMember2023-05-012023-07-31 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-05-012023-07-31 00009141222023-05-012023-07-31 0000914122us-gaap:CommonStockMember2023-07-31 0000914122us-gaap:AdditionalPaidInCapitalMember2023-07-31 0000914122us-gaap:RetainedEarningsMember2023-07-31 0000914122us-gaap:TreasuryStockCommonMember2023-07-31 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-07-31 00009141222023-07-31 0000914122us-gaap:CommonStockMember2023-08-012023-10-31 0000914122us-gaap:AdditionalPaidInCapitalMember2023-08-012023-10-31 0000914122us-gaap:RetainedEarningsMember2023-08-012023-10-31 0000914122us-gaap:TreasuryStockCommonMember2023-08-012023-10-31 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-08-012023-10-31 0000914122us-gaap:CommonStockMember2023-10-31 0000914122us-gaap:AdditionalPaidInCapitalMember2023-10-31 0000914122us-gaap:RetainedEarningsMember2023-10-31 0000914122us-gaap:TreasuryStockCommonMember2023-10-31 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-10-31 0000914122us-gaap:CommonStockMember2022-01-31 0000914122us-gaap:AdditionalPaidInCapitalMember2022-01-31 0000914122us-gaap:RetainedEarningsMember2022-01-31 0000914122us-gaap:TreasuryStockCommonMember2022-01-31 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-01-31 00009141222022-01-31 0000914122us-gaap:CommonStockMember2022-02-012022-04-30 0000914122us-gaap:AdditionalPaidInCapitalMember2022-02-012022-04-30 0000914122us-gaap:RetainedEarningsMember2022-02-012022-04-30 0000914122us-gaap:TreasuryStockCommonMember2022-02-012022-04-30 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-02-012022-04-30 00009141222022-02-012022-04-30 0000914122us-gaap:CommonStockMember2022-04-30 0000914122us-gaap:AdditionalPaidInCapitalMember2022-04-30 0000914122us-gaap:RetainedEarningsMember2022-04-30 0000914122us-gaap:TreasuryStockCommonMember2022-04-30 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-04-30 00009141222022-04-30 0000914122us-gaap:CommonStockMember2022-05-012022-07-31 0000914122us-gaap:AdditionalPaidInCapitalMember2022-05-012022-07-31 0000914122us-gaap:RetainedEarningsMember2022-05-012022-07-31 0000914122us-gaap:TreasuryStockCommonMember2022-05-012022-07-31 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-05-012022-07-31 00009141222022-05-012022-07-31 0000914122us-gaap:CommonStockMember2022-07-31 0000914122us-gaap:AdditionalPaidInCapitalMember2022-07-31 0000914122us-gaap:RetainedEarningsMember2022-07-31 0000914122us-gaap:TreasuryStockCommonMember2022-07-31 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-07-31 00009141222022-07-31 0000914122us-gaap:CommonStockMember2022-08-012022-10-31 0000914122us-gaap:AdditionalPaidInCapitalMember2022-08-012022-10-31 0000914122us-gaap:RetainedEarningsMember2022-08-012022-10-31 0000914122us-gaap:TreasuryStockCommonMember2022-08-012022-10-31 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-08-012022-10-31 0000914122us-gaap:CommonStockMember2022-10-31 0000914122us-gaap:AdditionalPaidInCapitalMember2022-10-31 0000914122us-gaap:RetainedEarningsMember2022-10-31 0000914122us-gaap:TreasuryStockCommonMember2022-10-31 0000914122us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-10-31 00009141222022-10-31 0000914122us-gaap:TreasuryStockCommonMember2023-02-012023-10-31 0000914122us-gaap:TreasuryStockCommonMember2022-02-012022-10-31 0000914122us-gaap:CommonStockMember2023-02-012023-10-31 0000914122us-gaap:CommonStockMember2022-02-012022-10-31 0000914122srt:RestatementAdjustmentMemberus-gaap:TreasuryStockCommonMember2023-01-31 0000914122srt:RestatementAdjustmentMemberus-gaap:TreasuryStockCommonMember2022-01-31 0000914122us-gaap:UnbilledRevenuesMember2023-02-012023-10-31 0000914122us-gaap:UnbilledRevenuesMember2022-02-012022-10-31 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2023-02-012023-10-31 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2022-02-012022-10-31 0000914122ppih:FinanceLeaseObligationsMember2023-02-012023-10-31 0000914122ppih:FinanceLeaseObligationsMember2022-02-012022-10-31 xbrli:pure 0000914122us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2015-12-31 0000914122us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2023-02-012023-10-31 0000914122us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2023-10-01 0000914122us-gaap:OtherNoncurrentAssetsMemberus-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2023-10-31 0000914122us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2023-09-012023-09-30 0000914122us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2022-06-012022-06-30 0000914122us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember2023-07-31 0000914122us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2023-08-012023-10-31 0000914122us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMemberppih:OneCustomerMember2023-08-012023-10-31 0000914122us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2022-08-012022-10-31 0000914122us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2023-02-012023-10-31 0000914122us-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2022-02-012022-10-31 0000914122us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2023-02-012023-10-31 0000914122us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMemberppih:TwoCustomersMember2023-02-012023-10-31 0000914122us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2022-02-012023-01-31 0000914122us-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMemberppih:OneCustomerMember2022-02-012023-01-31 0000914122us-gaap:ProductMemberus-gaap:TransferredAtPointInTimeMember2023-08-012023-10-31 0000914122us-gaap:ProductMemberus-gaap:TransferredAtPointInTimeMember2022-08-012022-10-31 0000914122us-gaap:ProductMemberus-gaap:TransferredAtPointInTimeMember2023-02-012023-10-31 0000914122us-gaap:ProductMemberus-gaap:TransferredAtPointInTimeMember2022-02-012022-10-31 0000914122ppih:SpecialtyPipingSystemsAndCoatingMemberppih:TransferredAtPointInTimeUsingInputMethodMember2023-08-012023-10-31 0000914122ppih:SpecialtyPipingSystemsAndCoatingMemberppih:TransferredAtPointInTimeUsingInputMethodMember2022-08-012022-10-31 0000914122ppih:SpecialtyPipingSystemsAndCoatingMemberppih:TransferredAtPointInTimeUsingInputMethodMember2023-02-012023-10-31 0000914122ppih:SpecialtyPipingSystemsAndCoatingMemberppih:TransferredAtPointInTimeUsingInputMethodMember2022-02-012022-10-31 0000914122ppih:SpecialtyPipingSystemsAndCoatingMemberppih:TransferredAtPointInTimeUsingOutputMethodMember2023-08-012023-10-31 0000914122ppih:SpecialtyPipingSystemsAndCoatingMemberppih:TransferredAtPointInTimeUsingOutputMethodMember2022-08-012022-10-31 0000914122ppih:SpecialtyPipingSystemsAndCoatingMemberppih:TransferredAtPointInTimeUsingOutputMethodMember2023-02-012023-10-31 0000914122ppih:SpecialtyPipingSystemsAndCoatingMemberppih:TransferredAtPointInTimeUsingOutputMethodMember2022-02-012022-10-31 utr:Y 0000914122us-gaap:MiddleEastMember2023-10-31 0000914122us-gaap:MiddleEastMember2023-01-31 0000914122ppih:PermaPipeCanadaLtdMember2016-12-31 0000914122us-gaap:RestrictedStockMember2023-08-012023-10-31 0000914122us-gaap:RestrictedStockMember2022-08-012022-10-31 0000914122us-gaap:RestrictedStockMember2023-02-012023-10-31 0000914122us-gaap:RestrictedStockMember2022-02-012022-10-31 0000914122us-gaap:EmployeeStockOptionMember2023-01-31 0000914122us-gaap:EmployeeStockOptionMember2022-02-012023-01-31 0000914122us-gaap:EmployeeStockOptionMember2023-02-012023-10-31 0000914122us-gaap:EmployeeStockOptionMember2023-10-31 0000914122us-gaap:RestrictedStockMember2023-01-31 0000914122us-gaap:RestrictedStockMember2023-10-31 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:RevolvingLinesNorthAmericaMemberppih:NorthAmericanLoanPartiesMember2023-02-012023-04-30 0000914122ppih:RevolvingLinesNorthAmericaMember2023-10-31 0000914122ppih:RevolvingLinesNorthAmericaMember2023-01-31 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2021-04-14 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2021-04-142021-04-14 0000914122ppih:MortgageNoteSecuredByTennesseeManufacturingFacilityMember2021-04-142021-04-14 0000914122ppih:LandAndBuildingsInLebanonTennesseeMember2021-04-14 0000914122country:AE2021-04-142021-04-14 0000914122srt:MaximumMember2023-02-012023-10-31 iso4217:AED 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member2023-10-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member2023-01-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries2Member2023-10-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries2Member2023-01-31 iso4217:EGP 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember2021-06-30 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember2023-10-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember2022-06-30 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember2023-01-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member2021-12-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member2023-10-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member2022-11-30 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member2023-01-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember2022-03-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember2023-10-31 iso4217:SAR 0000914122ppih:ForeignRevolvingLinesMemberppih:RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember2023-05-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember2023-10-31 0000914122ppih:ForeignRevolvingLinesMemberppih:RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember2023-01-31 0000914122ppih:ForeignRevolvingLinesMember2023-10-01 0000914122ppih:ForeignRevolvingLinesMembersrt:MinimumMemberppih:EIBORMember2023-02-012023-10-31 0000914122ppih:ForeignRevolvingLinesMembersrt:MaximumMemberppih:EIBORMember2023-02-012023-10-31 0000914122ppih:ForeignRevolvingLinesMembersrt:MinimumMember2023-10-31 0000914122ppih:ForeignRevolvingLinesMembersrt:MinimumMemberppih:CentralBankOfEqyptCbeRateMember2023-02-012023-10-31 0000914122ppih:ForeignRevolvingLinesMembersrt:MaximumMemberppih:CentralBankOfEqyptCbeRateMember2023-02-012023-10-31 0000914122ppih:ForeignRevolvingLinesMemberppih:SIBORMember2023-02-012023-10-31 0000914122ppih:ForeignRevolvingLinesMembersrt:MaximumMember2023-10-31 0000914122ppih:ForeignRevolvingLinesMembersrt:WeightedAverageMember2023-10-31 0000914122ppih:ForeignRevolvingLinesMember2023-10-31 0000914122ppih:ForeignRevolvingLinesMember2023-02-012023-10-31 0000914122ppih:CanadianMortgageNoteMember2016-07-282016-07-28 iso4217:CAD 0000914122ppih:CanadianMortgageNoteMember2023-02-012023-10-31 0000914122ppih:CanadianMortgageNoteMember2023-10-31 0000914122ppih:CanadianMortgageNoteMember2023-01-31 0000914122ppih:AbuDhabiLandLeaseMember2022-02-012023-01-31 0000914122ppih:AbuDhabiLandLeaseMember2023-10-31 0000914122srt:MinimumMember2023-10-31 0000914122srt:MaximumMember2023-10-31 0000914122ppih:CurrentMaturitiesOfLongtermDebtMember2023-10-31 0000914122ppih:FinanceLeasesAssetsMember2023-10-31 0000914122ppih:FinanceLeasesAssetsMember2023-01-31 0000914122us-gaap:OtherCurrentLiabilitiesMember2023-10-31 0000914122us-gaap:OtherCurrentLiabilitiesMember2023-01-31 0000914122us-gaap:OtherNoncurrentLiabilitiesMember2023-10-31 0000914122us-gaap:OtherNoncurrentLiabilitiesMember2023-01-31 00009141222021-10-04 00009141222022-12-07 00009141222023-08-012023-08-31 0000914122ppih:PubliclyAnnouncedShareRepurchaseProgramMember2023-08-012023-08-31 00009141222023-08-31 00009141222023-09-012023-09-30 0000914122ppih:PubliclyAnnouncedShareRepurchaseProgramMember2023-09-012023-09-30 00009141222023-09-30 00009141222023-10-012023-10-31 0000914122ppih:PubliclyAnnouncedShareRepurchaseProgramMember2023-10-012023-10-31 0000914122ppih:PubliclyAnnouncedShareRepurchaseProgramMember2023-08-012023-10-31 00009141222022-07-262022-07-26 0000914122ppih:JointVentureMember2023-06-01 0000914122ppih:JointVentureMember2023-06-012023-06-01 0000914122ppih:GulfInsulationGroupMemberppih:JointVentureMember2023-06-01 0000914122ppih:GulfInsulationGroupMemberppih:JointVentureMember2023-06-012023-06-01 0000914122us-gaap:RelatedPartyMember2023-06-01 0000914122ppih:GulfInsulationGroupMember2023-08-012023-10-31 0000914122ppih:GulfInsulationGroupMember2022-08-012022-10-31 0000914122ppih:GulfInsulationGroupMember2023-02-012023-10-31 0000914122ppih:GulfInsulationGroupMember2022-02-012022-10-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 October 31, 2023

 

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)

permapipelogo10q.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 December 8, 2023, there were 8,063,501 shares of the registrant's common stock outstanding.

 

 

 

 

Perma-Pipe International Holdings, Inc.

 

FORM 10-Q

 

For the fiscal quarter ended October 31, 2023

 

TABLE OF CONTENTS

 

Item

 

Page

 

 

 

Part I

Financial Information

 

 

 

 

1.

Financial Statements

 

 

Consolidated Statements of Operations (Unaudited) for the Three and Nine Months Ended October 31, 2023 and 2022

2

 

Consolidated Statements of Comprehensive Loss (Unaudited) for the Three and Nine Months Ended October 31, 2023 and 2022

3

 

Consolidated Balance Sheets as of October 31, 2023 (Unaudited) and January 31, 2023

4

 

Consolidated Statements of Stockholders' Equity (Unaudited) for the Three and Nine Months Ended October 31, 2023 and 2022

5

 

Consolidated Statements of Cash Flows (Unaudited) for the Nine Months Ended October 31, 2023 and 2022

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

26

 

 

 

Part II

Other Information

 

     
2. Unregistered Sales of Equity Securities, Use of Proceeds and Issuer Purchases of Equity Securities 27
     

6.

Exhibits

27

 

 

 

Signatures

28

 

 

 

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 October 31,

  

Nine Months Ended October 31,

 
  

2023

  

2022

  

2023

  

2022

 

Net sales

 $45,690  $37,903  $110,489  $106,128 

Cost of sales

  32,506   26,773   81,065   78,063 

Gross profit

  13,184   11,130   29,424   28,065 
                 

Operating expenses

                

General and administrative expenses

  5,674   5,284   16,417   16,180 

Selling expenses

  1,471   1,310   4,201   3,863 

Total operating expenses

  7,145   6,594   20,618   20,043 
                 

Income from operations

  6,039   4,536   8,806   8,022 
                 

Interest expense

  640   717   1,788   1,585 

Other expense

  (502)  (948)  (350)  (963)

Income before income taxes

  4,897   2,871   6,668   5,474 
                 

Income tax expense

  1,533   1,143   3,257   2,763 
                 

Net income

  3,364   1,728   3,411   2,711 

Less: Net income attributable to non-controlling interest

  1,429   -   1,577   - 

Net income attributable to common stock

 $1,935  $1,728  $1,834  $2,711 
                 

Weighted average common shares outstanding

                

Basic

  7,955   8,004   7,996   8,096 

Diluted

  8,021   8,146   8,106   8,238 
                 

Earnings per share attributable to common stock

                

Basic

 $0.24  $0.22  $0.23  $0.33 

Diluted

 $0.24  $0.21  $0.23  $0.33 

 

See accompanying notes to consolidated financial statements.

 

 

 

 

PERMA-PIPE INTERNATIONAL HOLDINGS, INC. 

CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS)

(In thousands)

 (Unaudited)

 

   

Three Months Ended October 31,

   

Nine Months Ended October 31,

 
   

2023

   

2022

   

2023

   

2022

 

Net income

  $ 3,364     $ 1,728     $ 3,411     $ 2,711  
                                 

Other comprehensive income (loss)

                               

Foreign currency translation adjustments, net of tax

    (2,035 )     (2,735 )     (2,133 )     (4,122 )

Minimum pension liability adjustment, net of tax

    -       1,247       -       1,247  

Comprehensive income (loss)

  $ 1,329     $ 240     $ 1,278     $ (164 )

Less: Comprehensive income attributable to non-controlling interests

    1,429       -       1,577       -  

Total comprehensive (loss) income attributable to common stock

  $ (100 )   $ 240     $ (299 )   $ (164 )

 

See accompanying notes to consolidated financial statements.

 

 

 

PERMA-PIPE INTERNATIONAL HOLDINGS, INC. 

CONSOLIDATED BALANCE SHEETS

(In thousands, except per share data)

 

  

October 31, 2023

  

January 31, 2023

 
   (Unaudited)     

ASSETS

        

Current assets

        

Cash and cash equivalents

 $6,021  $5,773 

Restricted cash

  1,387   1,020 

Trade accounts receivable, less allowance for credit losses of $574 at October 31, 2023 and $612 at January 31, 2023

  47,095   42,010 

Inventories

  16,052   14,738 

Prepaid expenses and other current assets

  7,316   7,357 

Unbilled accounts receivable

  14,320   11,634 

Costs and estimated earnings in excess of billings on uncompleted contracts

  2,462   3,126 

Total current assets

  94,653   85,658 

Long-term assets

        

Property, plant and equipment, net of accumulated depreciation

  35,851   26,518 

Operating lease right-of-use asset

  6,376   4,527 

Deferred tax assets

  639   696 

Goodwill

  2,152   2,227 

Other long-term assets

  4,534   3,340 

Total long-term assets

  49,552   37,308 

Total assets

 $144,205  $122,966 

LIABILITIES AND STOCKHOLDERS' EQUITY

        

Current liabilities

        

Trade accounts payable

 $26,104  $14,754 

Accrued compensation and payroll taxes

  1,551   1,179 

Commissions and management incentives payable

  4,546   4,764 

Revolving line - North America

  6,702   4,387 

Current maturities of long-term debt

  7,132   6,227 

Customers' deposits

  3,220   1,951 

Operating lease liability short-term

  920   912 

Other accrued liabilities

  3,076   5,549 

Billings in excess of costs and estimated earnings on uncompleted contracts

  904   1,743 

Income taxes payable

  3,383   2,324 

Total current liabilities

  57,538   43,790 

Long-term liabilities

        

Long-term debt, less current maturities

  4,158   4,389 

Long-term finance obligation

  9,114   9,215 

Deferred compensation liabilities

  1,142   1,608 

Deferred tax liabilities

  976   909 

Operating lease liability long-term

  6,143   4,252 

Related party loan

  2,753   - 

Other long-term liabilities

  1,252   1,019 

Total long-term liabilities

  25,538   21,392 

Non-controlling interest

  4,156   - 

Stockholders' equity

        

Common stock, $.01 par value, authorized 50,000 shares; 7,951 issued and outstanding at October 31, 2023 and 8,004 at January 31, 2023

  80   80 

Additional paid-in capital

  62,991   62,562 

Treasury stock, 109 shares at October 31, 2023 and 3 shares at January 31, 2023

  (967)  (26)

Retained earnings

  3,451   1,617 

Accumulated other comprehensive loss

  (8,582)  (6,449)

Total stockholders' equity

  56,973   57,784 

Total liabilities and stockholders' equity

 $144,205  $122,966 

 

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

Net income

  -   -   1,022   -   -   1,022 

Common stock issued under stock plans, net of shares used for tax withholding

  -   (274)  -   -   -   (274)

Repurchase of common stock

  1   -   -   (312)  -   (311)

Stock-based compensation expense

  -   245   -   -   -   245 

Foreign currency translation adjustment

  -   -   -   -   339   339 

Total stockholders' equity at July 31, 2023

 $81  $62,762  $1,516  $(338) $(6,547) $57,474 
                         

Net income

  -   -   1,935   -   -   1,935 

Repurchase of common stock

  (1)  -   -   (629)  -   (630)

Stock-based compensation expense

  -   229   -   -   -   229 

Foreign currency translation adjustment

  -   -   -   -   (2,035)  (2,035)

Total stockholders' equity at October 31, 2023

 $80  $62,991  $3,451  $(967) $(8,582) $56,973 

 

   

Common Stock

   

Additional Paid-in Capital

   

Accumulated Deficit

   

Treasury Stock

   

Accumulated Other Comprehensive Loss

   

Total Stockholders' Equity

 

Total stockholders' equity at January 31, 2022

  $ 82     $ 61,766     $ (2,295 )   $ (1,992 )   $ (3,104 )   $ 54,457  
                                                 

Net loss

    -       -       (885 )     -       -       (885 )

Common stock issued under stock plans, net of shares used for tax withholding

    -       16       -       -       -       16  

Stock-based compensation expense

    -       236       -       -       -       236  

Foreign currency translation adjustment

    -       -       -       -       (932 )     (932 )

Total stockholders' equity at April 30, 2022

  $ 82     $ 62,018     $ (3,180 )   $ (1,992 )   $ (4,036 )   $ 52,892  
                                                 

Net income

    -       -       1,868       -       -       1,868  

Common stock issued under stock plans, net of shares used for tax withholding

    -       (247 )     -       -       -       (247 )

Repurchase of common stock

    -       -       -       (43 )     -       (43 )

Retirement of treasury stock

    (2 )     -       (2,033 )     2,035       -       -  

Stock-based compensation expense

    -       284       -       -       -       284  

Foreign currency translation adjustment

    -       -       -       -       (455 )     (455 )

Total stockholders' equity at July 31, 2022

  $ 80     $ 62,055     $ (3,345 )   $ -     $ (4,491 )   $ 54,299  
                                                 

Net income

    -       -       1,728       -       -       1,728  

Common stock issued under stock plans, net of shares used for tax withholding

    -       9       -       -       -       9  

Stock-based compensation expense

    -       243       -       -       -       243  

Pension liability

    -       -       -       -       1,247       1,247  

Foreign currency translation adjustment

    -       -       -       -       (2,735 )     (2,735 )

Total stockholders' equity at October 31, 2022

  $ 80     $ 62,307     $ (1,617 )   $ -     $ (5,979 )   $ 54,791  

 

Shares

 

2023

   

2022

 

Balances at beginning of year

    8,007,002       8,151,754  

Treasury stock retired

    -       (4,887 )

Shares issued, net of shares used for tax withholding

    56,499       94,416  

Prior period adjustments

    -       (234,281 )

Balances at period end

    8,063,501       8,007,002  

 

See accompanying notes to consolidated financial statements.

 

 

 

PERMA-PIPE INTERNATIONAL HOLDINGS, INC. 

CONSOLIDATED STATEMENTS OF CASH FLOWS

(In thousands)

(Unaudited)

 

   

Nine Months Ended October 31,

 
   

2023

   

2022

 

Operating activities

               

Net income

  $ 3,411     $ 2,711  

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

               

Depreciation and amortization

    2,774       2,781  

Deferred tax expense

    145       358  

Stock-based compensation expense

    686       763  

Non-cash pension termination expense

    -       813  

Provision on uncollectible accounts

    (37 )     20  

(Loss) gain from disposal of fixed assets

    (13 )     134  

Changes in operating assets and liabilities

               

Accounts receivable

    (5,377 )     (4,345 )

Inventories

    (1,426 )     (1,545 )

Costs and estimated earnings in excess of billings on uncompleted contracts

    (175 )     (3,086 )

Accounts payable

    9,346       513  

Accrued compensation and payroll taxes

    1,167       126  

Customers' deposits

    1,272       1,250  

Income taxes payable

    327       530  

Prepaid expenses and other current assets

    205       (785 )

Unbilled accounts receivable

    (2,776 )     (7,037 )

Other assets and liabilities

    (1,912 )     1,699  

Net cash provided by (used in) operating activities

    7,617       (5,100 )

Investing activities

               

Capital expenditures

    (8,204 )     (3,236 )

Proceeds from insurance recovery for property and equipment

    5       -  

Proceeds from sales of property and equipment

    -       117  

Net cash used in investing activities

    (8,199 )     (3,119 )

Financing activities

               

Proceeds from revolving credit lines

    120,467       62,778  

Payments of debt on revolving credit lines

    (117,419 )     (54,259 )

Payments of principal on finance obligation

    (84 )     (65 )

Payments of other debt

    (179 )     (198 )

Decrease in drafts payable

    (199 )     (130 )

Payments on finance lease obligations

    (176 )     (251 )

Repurchase of common stock

    (941 )     (43 )

Stock options exercised and taxes paid related to restricted shares vested

    (273 )     (222 )

Net cash provided by financing activities

    1,196       7,610  

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

    1       563  

Net increase (decrease) in cash, cash equivalents and restricted cash

    615       (46 )

Cash, cash equivalents and restricted cash - beginning of period

    6,793       9,771  

Cash, cash equivalents and restricted cash - end of period

  $ 7,408     $ 9,725  

Supplemental cash flow information

               

Cash interest paid

  $ 1,754     $ 1,505  

Cash income taxes paid

    2,546       2,107  

Fixed assets acquired from non affiliates - non-cash

  $ 4,357     $ -  

 

See accompanying notes to consolidated financial statements.

 

 

PERMA-PIPE INTERNATIONAL HOLDINGS, INC. 

NOTES TO CONSOLIDATED FINANCIAL STATEMENTS

October 31, 2023

(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, 2023 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 2023 and 2022 are for the fiscal year ending January 31, 2024 and for the fiscal year ended  January 31, 2023, respectively.

 

Significant New Accounting Policies

 

Refer to the Company's Annual Report on Form 10-K for the year ended January 31, 2023 as filed with the SEC on April 27, 2023 for discussion of the Company's significant accounting policies. During the nine months ended October 31, 2023, the following accounting policy was adopted: 

 

Current Expected Credit Loss

 

In June 2016, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") No. 2016-13, Financial Instruments - Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments. The new guidance affects loans, debt securities, trade receivables, net investments in leases, off-balance-sheet credit exposures, reinsurance receivables, and any other financial assets not excluded from the scope that have the contractual right to receive cash. The amended guidance requires the application of a current expected credit loss (“CECL”) model, which measures credit losses based on relevant information about past events, including historical experience, current conditions, and reasonable and supportable forecasts. This ASU is effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2022.  The Company adopted this guidance effective February 1, 2023, which was not material to the consolidated financial statements for the nine months ended October 31, 2023.

 

Subsequent Events

 

The Company has evaluated subsequent events through December 8, 2023, 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 consist of 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 obtained for substantially all orders. Accounts receivable are due within various time periods specified in the terms applicable to the specific contract and are stated at amounts due from customers net of any allowance for claims and credit losses. The allowance for credit losses is based on specifically identified amounts in customers' accounts, where future collectability is deemed uncertain. Management exercises 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 an amount is deemed uncollectible and all attempts to collect have been exhausted. The write-off is recorded against the allowance for credit losses. 

 

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 $39.5 million as of October 31, 2023, with a remaining balance due in the amount of $2.4 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.6 million is classified in other long-term assets on the Company's consolidated balance sheets.

 

Regardless of the contractual due date for payment, the Company has been actively engaged in ongoing efforts to collect this outstanding balance. The Company continues to engage with the customer to ensure full payment of the open balances. In September 2023 and June 2022, a partial payment was received to settle $0.4 million and $0.9 million of the customer's outstanding balances, respectively. Further, the Company has been engaged by the customer to perform additional work in 2022 and 2023 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 October 31, 2023. 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 uncollected amounts.

 

For the three months ended October 31, 2023one customer accounted for 14% of the Company's consolidated net sales, and during the same period in 2022no individual customer accounted for greater than 10% of the Company’s consolidated net sales. For the nine months ended October 31, 2023 and 2022no individual customer accounted for greater than 10% of the Company's consolidated net sales. 

 

As of  October 31, 2023 and January 31, 2023two customers accounted for 24% 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 - Includes all bundled products in which the Company engineers and manufactures pre-insulated specialty piping systems mainly relating to the district heating and cooling and oil & gas markets.

 

 

2)

Products - Includes 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 as evidenced by the Company’s 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 and nine months ended October 31, 2023 and 2022 are as follows:

 

  

Three Months Ended October 31,

  

Nine Months Ended October 31,

 
  

2023

  

2022

  

2023

  

2022

 
  

Sales

  

% of Total

  

Sales

  

% of Total

  

Sales

  

% of Total

  

Sales

  

% of Total

 

Products

 $2,553   5% $4,363   12% $7,541   7% $11,144   10%
                                 

Specialty Piping Systems and Coating

                                

Revenue recognized under input method

  18,641   41%  12,593   33%  41,779   38%  35,918   34%

Revenue recognized under output method

  24,496   54%  20,947   55%  61,169   55%  59,066   56%

Total

 $45,690   100% $37,903   100% $110,489   100% $106,128   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 milestone payments or receive 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.

 

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.

 

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

 

  

October 31, 2023

  

January 31, 2023

 

Costs incurred on uncompleted contracts

 $22,560  $18,342 

Estimated earnings

  11,916   9,370 

Earned revenue

  34,476   27,712 

Less billings to date

  32,918   26,329 

Costs in excess of billings, net

 $1,558  $1,383 

Balance sheet classification

        

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

 $2,462  $3,126 

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

  (904)  (1,743)

Costs in excess of billings, net

 $1,558  $1,383 

 

The Company anticipates that substantially all costs incurred on uncompleted contracts as of  October 31, 2023 will be billed and collected within one year, and all billings on uncompleted contracts as of  October 31, 2023 will be satisfied and collected within one year. 

 

Unbilled accounts receivable

 

The Company has recorded $14.3 million and $11.6 million of unbilled accounts receivable on the consolidated balance sheets as of October 31, 2023 and January 31, 2023, 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 in accordance with the terms of the contract. The Company anticipates that substantially all of the amounts included in unbilled accounts receivable as of  October 31, 2023 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 the Company's contracts are generally less than one year, the Company has applied the practical expedient 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. Income earned in the U.A.E. is not subject to local country income tax. Additionally, 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 October 31, 2023 and 2022 were 31% and 40%, respectively. The change in the ETR is due primarily to the inability to recognize tax benefits due to losses incurred in the United States resulting in a full valuation allowance and due to 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. The Company's liability was $0.9 million as of October 31, 2023 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. During  October 31, 2023, the Company performed a periodic 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 for the three and nine months ended October 31, 2023 and 2022. Accordingly, the Company did not proceed with performing an impairment test as a result of this periodic assessment. 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 October 31, 2023 and January 31, 2023 was 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, 2023

  

Foreign exchange change effect

  

October 31, 2023

 

Goodwill

 $2,227  $(75) $2,152 

 

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 at the measurement date. During  October 31, 2023, 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 for the Three and Nine Months Ended October 31, 2023 and 2022. 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 has prior incentive plans under which previously granted awards remain outstanding but under which no new awards may be granted. At October 31, 2023 the Company had reserved a total of 250,448 shares for grants and issuances under these incentive stock plans, which includes a reserve for issuances pursuant to unvested or unexercised prior awards.

 

The Company's prior incentive plans 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 prior incentive plans 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 October 31,

  

Nine Months Ended October 31,

 
  

2023

  

2022

  

2023

  

2022

 

Restricted stock-based compensation expense

 $229  $243  $686  $763 

 

Stock options

 

The Company did not grant any stock options during the three or nine months ended October 31, 2023. 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, 2023

  40  $10.85   1.1  $19 

Exercised

  (1)  6.85   -   2 

Expired or forfeited

  (17)  10.60   -   - 

Outstanding and exercisable at October 31, 2023

  22  $11.15   0.9  $1 

 

There was no vesting, expiration or forfeiture of previously unvested stock options during the nine months ended October 31, 2023. As of October 31, 2023, 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 nine months ended  October 31, 2023:

 

  

Restricted Shares

  

Weighted Average Price (Per share)

  

Aggregate Intrinsic Value

 

Outstanding at January 31, 2023

  267  $8.55  $2,286 

Granted

  91   10.26     

Vested and issued

  (84)  8.43     

Forfeited or retired for taxes

  (47)  9.23     

Outstanding at October 31, 2023

  228  $9.35  $2,133 

 

As of October 31, 2023, there was $1.3 million of unrecognized compensation expense related to unvested restricted stock granted under the plans. That cost is expected to be recognized over a weighted average period of 2.0 years.

 

Note 8 - Earnings per share

 

  

Three Months Ended October 31,

  

Nine Months Ended October 31,

 
  

2023

  

2022

  

2023

  

2022

 

Basic weighted average common shares outstanding at October 31, 2023

  7,955   8,004   7,996   8,096 

Dilutive effect of equity compensation plans

  66   142   110   142 

Weighted average common shares outstanding assuming full dilution

  8,021   8,146   8,106   8,238 
                 

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

  122   105   18   105 

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

  66   142   170   142 
                 

Net income attributable to common stock

 $1,935  $1,728  $1,834  $2,711 
                 

Earnings per share attributable to common stock

                

Basic

 $0.24  $0.22  $0.23  $0.33 

Diluted

 $0.24  $0.21  $0.23  $0.33 

 

12

 
 

Note 9 - Debt

 

Debt totaled $27.2 million and $24.3 million at October 31, 2023 and January 31, 2023, 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 or the Secured Overnight Financing Rate (as defined in the Renewed Senior Credit Facility, "SOFR"), 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 borrowings is SOFR 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 any 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 of 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. As of October 31, 2023, the calculated ratio was less than 1.10 to 1.00. 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 North American Loan Parties' EBITDA, would result in compliance on a pro forma basis. The Company was in compliance with respect to these covenants as of  October 31, 2023.

 

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 October 31, 2023, the Company had borrowed an aggregate of $6.7 million at a rate of 10.0% and had $4.6 million available under the Renewed Senior Credit Facility. As of January 31, 2023, the Company had borrowed an aggregate of $4.4 million and had $9.9 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.1 million is recognized in current maturities of long-term debt and the long-term portion of $9.1 million is recognized in long-term finance obligation on the Company's consolidated balance sheets as of October 31, 2023. 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 October 31, 2023) from a bank in the U.A.E. As of October 31, 2023 the facility has an interest rate of approximately 9.0% and is set to expire in May 2024. The Company had borrowed an aggregate of $0.1 million and $0.6 million as of October 31, 2023 and January 31, 2023, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. 

 

The Company has a revolving line for 19.5 million U.A.E. Dirhams (approximately $5.3 million at October 31, 2023) from a bank in the U.A.E. As of October 31, 2023 the facility has an interest rate of approximately 9.0% and is set to expire in May 2024. The Company had borrowed an aggregate of $1.3 million and $1.1 million as of October 31, 2023 and January 31, 2023, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. 

 

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 $3.2 million at October 31, 2023). 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 October 31, 2023 the facility has an interest rate of approximately 8.0% and expired in June 2022. This credit arrangement was subsequently renewed in August 2022 with substantially the same terms and conditions, expect for the facility interest rate which increased to 20.8%, and expired in August 2023. The Company is in regular communication with the bank throughout the renewal process and the facility has continued without interruption or penalty. The Company had borrowed an aggregate of $1.6 million and $3.1 million as of October 31, 2023 and January 31, 2023, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. 

 

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 8.9 million Egyptian Pounds (approximately $0.3 million at October 31, 2023). 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 20.8% 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.3 million outstanding as of October 31, 2023 and January 31, 2023, 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  October 31, 2023). 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 2023, and the line was increased to 37.0 million Saudi Riyal (approximately $9.9 million at October 31, 2023). As of October 31, 2023, the facility has an interest rate of approximately 9.5% and is set to expire in May 2024. The Company had borrowed an aggregate of $3.8 million and $1.1 million as of October 31, 2023 and January 31, 2023, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. 

 

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. As of October 31, 2023, the amount of foreign subsidiary debt guaranteed by the Company was approximately $0.1 million. 

 

The Company was in compliance with the covenants under the credit arrangements in the U.A.E., Egypt and Saudi Arabia as of October 31, 2023, with the exception of those arrangements that have expired 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 October 31, 2023, 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 October 31, 2023, the Company's interest rates ranged from 8.0% to 20.8%, with a weighted average rate of 12.1%, and the Company had facility limits totaling $27.2 million under these credit arrangements. As of October 31, 2023$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 October 31, 2023, the Company had borrowed $9.5 million and had an additional $13.7 million of borrowing remaining available under the foreign revolving credit arrangements. The foreign revolving lines balances as of October 31, 2023 and January 31, 2023, were included as current maturities of long-term debt in the Company's consolidated balance sheets. 

 

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 October 31, 2023, the remaining balance on the mortgage in Canada is approximately CAD 6.1 million (approximately $4.4 million at October 31, 2023). The interest rate is variable, and was 9.1% at October 31, 2023. 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 October 31, 2023 and January 31, 2023, respectively.

 

Note 10 - Leases

 

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), 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 2023. 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 October 31, 2023. The termination resulted in decreases of $0.3 million, $4.0 million and $3.6 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 October 31, 2023. 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. 

 

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 right-of-use ("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 October 31, 2023, the Company had total operating lease liabilities of $7.1 million and operating ROU assets of $6.4 million, which are reflected in the consolidated balance sheets. At October 31, 2023, 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.5 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:

 

October 31, 2023

  

January 31, 2023

 

Finance leases assets:

        

Property and Equipment - gross

 $940  $1,161 

Accumulated depreciation and amortization

  (482)  (700)

Property and Equipment - net

 $458  $461 
         

Finance lease liabilities:

        

Finance lease liability short-term

 $31  $164 

Total finance lease liabilities

 $117  $164 
         

Operating lease assets:

        

Operating lease ROU assets

 $6,376  $4,527 
         

Operating lease liabilities:

        

Operating lease liability short-term

 $920  $912 

Operating lease liability long-term

  6,143   4,252 

Total operating lease liabilities

 $7,063  $5,164 

 

Total lease costs consist of the following: 

 

   

Three Months Ended October 31,

  

Nine Months Ended October 31,

 

Lease costs

Consolidated Statements of Operations Classification

 

2023

  

2022

  

2023

  

2022

 

Finance Lease Costs

                 

Amortization of ROU assets

Cost of sales

 $37  $62  $121  $125 

Interest on lease liabilities

Interest expense

  3   8   7   18 

Operating lease costs

Cost of sales, SG&A expenses

  564   694   1,450   587 

Short-term lease costs (1)

Cost of sales, SG&A expenses

  99   13   350   72 

Sub-lease income

SG&A expenses

  (20)  (27)  (61)  (40)

Total Lease costs

 $683  $750  $1,867  $762 

 

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

 

16

 

Supplemental cash flow information related to leases is as follows:

 

  Nine Months Ended October 31,
  

2023

  

2022

 

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

        

Financing cash outflows from finance leases

 $176  $251 

Operating cash outflows from finance leases

  7   24 

Operating cash outflows from operating leases

  1,399   1,377 
         

ROU liabilities obtained in exchange for new lease obligations:

        

Operating leases liabilities

 $3,615  $- 

 

  Nine Months Ended October 31,
  

2023

  

2022

 

ROU liabilities obtained in exchange for new lease obligations:

        

Finance leases liabilities

 $139  $- 

Operating leases liabilities

  3,615   - 

 

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

 

  

October 31, 2023

 

Weighted-average remaining lease terms (in years):

    

Finance leases

  3.3 

Operating leases

  14.9 
     

Weighted-average discount rates:

    

Finance leases

  10.2%

Operating leases

  8.9%

 

Maturities of lease liabilities as of October 31, 2023, are as follows:

 

  

Operating Leases

  

Finance Leases

 

For the three months ending January 31, 2024

 $565  $9 

For the year ending January 31, 2025

  1,515   37 

For the year ending January 31, 2026

  1,349   37 

For the year ending January 31, 2027

  1,326   37 

For the year ending January 31, 2028

  1,273   9 

For the year ending January 31, 2029

  947   - 

Thereafter

  7,465   - 

Total lease payments

 $14,440  $129 

Less: amount representing interest

  (7,377)  (12)

Total lease liabilities at October 31, 2023

 $7,063  $117 

 

Rent expense on operating leases, which is recorded on straight-line basis, was $0.7 million for the three months ended  October 31, 2023 and 2022, respectively.

 

Note 11 - Restricted cash

 

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

October 31, 2023

  

January 31, 2023

 

Cash and cash equivalents

 $6,021  $5,773 

Restricted cash

  1,387   1,020 

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

 $7,408  $6,793 

 

17

 

 

Note 12 - Fair value

 

The carrying values of cash and cash equivalents, accounts receivable and accounts payable are reasonable estimates of their 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 three months ended  October 31, 2023 the Company used the remaining $0.6 million of the $1.0 million authorized to repurchase its outstanding shares of common stock.

 

The following table sets forth the repurchase activity with respect to the Company's shares of common stock during the three months ended October 31, 2023:

 

Period

 

Total number of shares purchased

  

Average price paid (per share)

  

Total number of shares purchased as part of publicly announced plans or programs

  

Approximate dollar value of shares that may yet be purchased under the plans or programs

 

August 1, 2023 - August 31, 2023

  62  $8.64   62  $91 

September 1, 2023 - September 30, 2023

  10   8.92   10   - 

October 1, 2023 - October 31, 2023

  -   -   -   - 

Total

  72       72     

 

On  July 26, 2022, the Company retired 239,168 shares of treasury stock previously repurchased under the stock repurchase program. The retirement was recorded as a reduction to common stock based on the par value of the shares, and the excess over par value was recorded as a decrease to retained earnings in accordance with ASC 505-30, Equity - Treasury Stock.

 

Note 15 - Noncontrolling interest

 

The Company has a controlling financial interest in a certain investment 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. Pursuant to the applicable guidance contained in ASC 810, Consolidations, the balance sheets and operating activities of this investment is included in the Company's consolidated financial statements. The Company adjusts net income in the consolidated statements of operations to exclude the proportionate share of results that is attributable to non-controlling interest. Additionally, the Company presents the proportionate share that is attributable to 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 any time after five years following the date of incorporation. Further, the put option did not meet 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. 

 

On June 1, 2023, the Company closed on its formation of the joint venture ("The JV Agreement") with Gulf Insulation Group ("GIG") a leading provider of pre-insulated piping systems, leak detection systems, and pipe fabrication, in which the Company acquired a 60% controlling interest in exchange for consideration of $2.7 million, consisting of land and equipment. The Company expects this collaborative business arrangement to result in expanding its market presence in Saudi Arabia, Kuwait, and Bahrain. 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 combination. As such, the assets transferred by the Company were recorded at historical cost, and no gain was recognized as a result of this exchange. Further, the other party to this business arrangement acquired a 40% non-controlling interest by contributing assets of approximately $2.7 million, mainly consisting of land and equipment. The non-controlling interest attributable to the other party was recorded at its estimated fair value as of the investment date, and no gain was recognized as a result of this exchange. In connection with the joint venture, the Company agreed to a promissory note in the principal amount $2.7 million payable to the related party contained in this agreement. The principal amount is presented within the note payable to GIG caption in the Company's consolidated balance sheets. 

 

Net income attributable to GIG was $1.4 million and $0.0 million for the three months ended October 31, 2023 and 2022, respectively. Net income attributable to GIG was $1.6 million and $0.0 million for the nine months ended October 31, 2023 and 2022, 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 had carrying amounts attributable to non-controlling interest of $4.2 million and $0.0 million recorded within temporary equity at  October 31, 2023 and January 31, 2023, respectively. There were no dividends or any other forms of distributions from non-controlling interest as of October 31, 2023 and January 31, 2023, respectively. 

 

Note 16 - Contingencies

 

The Company is subject to various legal proceedings and claims that arise in the ordinary course of business, including those involving environmental, tax, product liability and general liability claims. The Company accrues for such liabilities when it is probable that future costs will be incurred and such costs can be reasonably estimated. Such accruals are based on developments to date, the Company's estimates of the outcomes with respect to these matters, and its experience in contesting, litigating and settling other similar matters.

 

As of October 31, 2023, the Company is actively involved in certain legal proceedings that are ongoing and for which the ultimate outcome remains uncertain. For all other legal proceedings, the Company does not currently anticipate that the ultimate liability with respect to these matters will materially affect the Company's financial position, liquidity or future operations.

 

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 2023 and 2022 are for the fiscal year ending January 31, 2024 and the fiscal year ended January 31, 2023, 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. 

 

 

 

RESULTS OF OPERATIONS

 

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.

 

($ in thousands)

 

Three Months Ended October 31,

   

Nine Months Ended October 31,

 
   

2023

   

2022

    Change favorable (unfavorable)    

2023

   

2022

    Change favorable (unfavorable)  
   

Amount

   

Percent of Net Sales

   

Amount

   

Percent of Net Sales

   

Amount

   

Amount

   

Percent of Net Sales

   

Amount

   

Percent of Net Sales

   

Amount

 

Net sales

  $ 45,690             $ 37,903             $ 7,787     $ 110,489             $ 106,128             $ 4,361  
                                                                                 

Gross profit

    13,184       29 %     11,130       29 %     2,054       29,424       27 %     28,065       26 %     1,359  
                                                                                 

General and administrative expenses

    5,674       12 %     5,284       14 %     (390 )     16,417       15 %     16,180       15 %     (237 )
                                                                                 

Selling expense

    1,471       3 %     1,310       3 %     (161 )     4,201       4 %     3,863       4 %     (338 )
                                                                                 

Interest expense

    640               717               77       1,788               1,585               (203 )
                                                                                 

Other expense

    (502 )             (948 )             446       (350 )             (963 )             613  
                                                                                 

Income before income taxes

    4,897               2,871               2,026       6,668               5,474               1,194  
                                                                                 

Income tax expense

    1,533               1,143               (390 )     3,257               2,763               (494 )
                                                                                 

Net income (loss)

    3,364               1,728               1,636       3,411               2,711               700  
                                                                                 

Less: Net income attributable to non-controlling interest

    1,429               -               (1,429 )     1,577               -               (1,577 )
                                                                                 

Net income (loss) attributable to common stock

    1,935               1,728               207       1,834               2,711               (877 )

 

 

 

 

Three months ended October 31, 2023 vs. Three months ended October 31, 2022

 

Net sales:

 

Net sales were $ 45.7 million and $ 37.9 million in the three months ended October 31, 2023 and 2022, respectively.  The  increase o f $7.8  million, or 21% , was a result of increased sales volumes in Saudi Arabia. 

 

Gross profit:

 

Gross profit was $13.2 million, or 29% of net sales, and $11.1 million, or 29% of net sales, in the three months ended October 31, 2023 and 2022, respectively. The increase of $2.1 million was primarily driven by increased sales volumes in Saudi Arabia.

 

General and administrative expenses:

 

General and administrative expenses were $5.7 million and $5.3 million in the three months ended October 31, 2023 and 2022, respectively. The increase of $0.4 million, or 8%, was due to higher payroll costs in the quarter.  

 

Selling expenses:

 

Selling expenses were $ 1.5 million and $ 1.3 million in the  three months ended October 31, 2023 and 2022, respectively.  The  increase of $ 0.2 million was consistent with prior quarter results.                                                                                                       

 

Interest expense:

 

Net interest expense remained consistent and was $0.6 million and $0.7 million in the three months ended October 31, 2023 and 2022, respectively.  

 

Other expense:

 

Other expense was $(0.5) million and $(0.9) million for the three months ended October 31, 2023 and 2022, respectively. The components of other expense were both related to the pension plan termination. 

 

Income tax expense:

 

The Company's worldwide effective tax rates ("ETR") were 31% and 40% in the three months ended October 31, 2023 and 2022, respectively. The change in the ETR is due primarily to the inability to recognize tax benefits due to losses incurred in the United States resulting in a full valuation allowance and due to 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 attributable to common stock:

 

Net income attributable to common stock was $1.9 million and $1.7 million in the three months ended October 31, 2023 and 2022, respectively. The increase of $0.2 million was mainly due to increased sales activity in the quarter. 

 

 

Nine months ended October 31, 2023 vs. Nine months ended October 31, 2022

 

Net sales:

 

Net sales were $ 110.5  million and $ 106.1  million in the  nine months ended October 31, 2023 and 2022 , respectively.  The  increase of $ 4.4  million, or 4%  was a result of increased sales volumes in Saudi Arabia.

 

Gross profit:

 

Gross profit was $29.4 million, or 27% of net sales, and $28.1 million, or 26% of net sales, in the nine months ended October 31, 2023 and 2022, respectively. The increase of $1.3 million was driven by increased sales volumes in Saudi Arabia.

 

General and administrative expenses:

 

General and administrative expenses were $16.4 million and $16.2 million in the nine months ended October 31, 2023 and 2022, respectively. The increase of $0.2 million was consistent with prior year results. 

 

Selling expenses:

 

Selling expenses were $4.2 million and $3.9 million in the nine months ended October 31, 2023 and 2022, respectively. The increase of $0.3 million was driven by higher payroll expenses.     

   

Interest expense:

 

Net interest expense remained consistent and was $1.8 million and $1.6 million in the nine months ended October 31, 2023 and 2022, respectively.  The increase of $0.2 million was attributable to increases in interest rates and borrowing activity during the year.

 

Other expense:

 

Other expense was $(0.4) million and $(1.0) million for the nine months ended October 31, 2023 and 2022, respectively. The components of other expense were both related to the pension plan termination.                                                   

 

Income tax expense:

 

The Company's worldwide effective tax rates ("ETR") were 31% and 40% in the nine months ended October 31, 2023 and 2022, respectively. The change in the ETR is due primarily to the inability to recognize tax benefits due to losses incurred in the United States resulting in a full valuation allowance and due to 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 attributable to common stock:

 

Net income (loss) attributable to common stock was $1.8 million and $2.7 million in the nine months ended October 31, 2023 and 2022, respectively.  The decrease of $0.9 million was mainly due to increased selling, general and administrative expenses as compared to the same period in 2022. 

 

 

Liquidity and capital resources

 

Cash and cash equivalents as of October 31, 2023 were $6.0 million compared to $5.8 million on January 31, 2023. On October 31, 2023, $0.1 million was held in the United States, and $5.9 million was held at the Company's foreign subsidiaries. The Company's working capital was $37.1 million on October 31, 2023 compared to $41.9 million on January 31, 2023. Of the working capital components, accounts receivable increased by $5.1 million and cash and cash equivalents increased by $0.2 million as the result of the movements discussed below. As of October 31, 2023, the Company had $4.6 million of borrowing capacity under the Renewed Senior Credit Facility in North America and $13.7 million of borrowing capacity under its foreign revolving credit agreements. The Company had $6.7 million borrowed under the Renewed Senior Credit Facility and $9.5 million borrowed under its foreign revolving credit agreements at October 31, 2023.

 

Net cash provided by operating activities was $7.6 million and net cash used in operating activities was $5.1 million in the nine months ended October 31, 2023 and 2022, respectively. The increase of $12.7 million was due primarily attributable to decreases in unbilled accounts receivable, inventory and costs and estimated earnings in excess of billings on uncompleted contracts, partially offset by changes to accounts receivable and accounts payable. 

 

Net cash provided by (used in) operating activities in the nine months ended October 31, 2023 and 2022 was $8.2 million and $3.1 million, respectively. The increase of $5.1 million was due primarily to investments in the Middle East and Canada.

 

Net cash provided by financing activities in the nine months ended October 31, 2023 and 2022 was $1.2 million and $7.6 million, respectively. The main source of cash from financing activities during the nine months ended October 31, 2023 was net proceeds from borrowings of approximately $4.8 million under the Company's credit facilities, as compared to the nine months ended October 31, 2022, when net proceeds were approximately $11.3 million. Debt totaled $27.2 million and $24.3 million as of October 31, 2023 and January 31, 2023, 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. Share repurchases may be executed through open market or in privately negotiated transactions over the course of the 12 months following the Board of Directors authorization. See Note 14 - Treasury stock, for further discussion relating to this topic.

 

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 or the Secured Overnight Financing Rate (as defined in the Renewed Senior Credit Facility, "SOFR"), 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 borrowings is SOFR 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 any 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 of 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. As of October 31, 2023, the calculated ratio was less than 1.10 to 1.00. 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 North American Loan Parties' EBITDA, would result in compliance on a pro forma basis. The Company was in compliance with respect to these covenants as of October 31, 2023.

 

 

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 October 31, 2023, the Company had borrowed an aggregate of $6.7  million at a rate of 10.0%  and had $4.6  million available under the Renewed Senior Credit Facility. As of January 31, 2023, the Company had borrowed an aggregate of $4.4 million and had $9.9 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 October 31, 2023) from a bank in the U.A.E. As of October 31, 2023 the facility has an interest rate of approximately 9.0% and is set to expire in May 2024. The Company had borrowed an aggregate of $0.1 million and $0.6 million as of October 31, 2023 and January 31, 2023, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. 

 

The Company has a revolving line for 19.5 million U.A.E. Dirhams (approximately $5.3 million at October 31, 2023) from a bank in the U.A.E. As of October 31, 2023 the facility has an interest rate of approximately 9.0% and is set to expire in May 2024. The Company had borrowed an aggregate of $1.3 million and $1.1 million as of October 31, 2023 and January 31, 2023, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. 

 

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 $3.2  million at October 31, 2023). 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 October 31, 2023 the facility has an interest rate of approximately 8.0%  and expired in June 2022. This credit arrangement was subsequently renewed in August 2022 with substantially the same terms and conditions, expect for the facility interest rate which increased to 20.8%, and expired in August 2023. The Company is in regular communication with the bank throughout the renewal process and the facility has continued without interruption or penalty. The Company had borrowed an aggregate of $1.6 million and $3.1 million  as of October 31, 2023 and January 31, 2023, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. 

 

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  8.9 million Egyptian Pounds (approximatel y $0.3  million at October 31, 2023). 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 20.8%  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.3 million outstanding  as of October 31, 2023 and January 31, 2023, 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 October 31, 2023). 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 2023, and the line was increased to 37.0 million Saudi Riyal (approximately $9.9 million at October 31, 2023). As of October 31, 2023, the facility has an interest rate of approximately 9.5% and is set to expire in May 2024. The Company had borrowed an aggregate of $3.8 million and $1.1 million as of October 31, 2023 and January 31, 2023, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. 

 

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. As of October 31, 2023, the amount of foreign subsidiary debt guaranteed by the Company was approximately $0.1 million. 

 

 

The Company was in compliance with the covenants under the credit arrangements in the U.A.E., Egypt and Saudi Arabia as of October 31, 2023, with the exception of those arrangements that have expired 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 October 31, 2023, 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 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 October 31, 2023, the Company's interest rates ranged from 8.0% to 20.8%, with a weighted average rate of 12.1%, and the Company had facility limits totaling $27.2 million under these credit arrangements. As of October 31, 2023$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 October 31, 2023, the Company had borrowed $9.5 million and had an additional $13.7 million of borrowing remaining available under the foreign revolving credit arrangements. The foreign revolving lines balances as of October 31, 2023 and January 31, 2023, were included as current maturities of long-term debt in the Company's consolidated balance sheets. 

 

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 the Property for $10.4 million. The transaction generated net cash proceeds of $9.1 million. Concurrently with the sale of the Property, the Company paid off the approximately $0.9 million remaining on the 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 15-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 all of the fair value of the underlying asset. 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.1 million is recognized in current maturities of long-term debt and the long-term portion of $9.1 million is recognized in long-term finance obligation on the Company's consolidated balance sheets as of October 31, 2023. 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 $39.5 million as of October 31, 2023, with a remaining balance due in the amount of $2.4 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 retention amount, $1.6 million is classified in a long-term receivable account.

 

Regardless of the contractual due date for payment, the Company has been actively engaged in ongoing efforts to collect the outstanding amount. The Company continues to engage with the customer to ensure full payment of open balances. In September 2023 and June 2022, a partial payment was received to settle $0.4 million and $0.9 million of the customer's outstanding balances, respectively. Further, the Company has been engaged by the customer to perform additional work in 2023 and 2022 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 October 31, 2023. 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 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, 2023 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 October 31, 2023. 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 a material weakness in the Company's internal control over financial reporting regarding the design and operating effectiveness of controls related to the existence of inventory during the fiscal year ended January 31, 2023. Specifically, the Company failed to appropriately perform cycle count procedures at one of the Company's operating facilities, resulting in a significant adjustment during the full physical inventory count at period end. Further, management review of the process and resulting adjustments on a periodic basis failed to identify the issue. 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, 2023, the Company's internal control over financial reporting was not effective. Subsequent to the fiscal year end, the Company has substantially executed on its plan to remediate the material weakness in internal control over financial reporting. As of  October 31, 2023, and on the date of this Quarterly Report on Form 10-Q, the Company's remediation plan is substantially complete, subject to testing the design and operating effectiveness of controls in connection with the annual audit. 

 

Notwithstanding the material weakness described above, the Company's management, including the Chief Executive Officer and Chief Financial Officer, has concluded that the financial statements included in this Quarterly Report on Form 10-Q present fairly, in all material respects, the Company's financial position, results of operations, and cash flows for the periods presented in conformity with accounting principles generally accepted in the United States.

 

Changes in Internal Control over Financial Reporting. 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.

 

Management identified a material weakness in the Company's internal control over financial reporting regarding the design and operating effectiveness of controls related to the existence of inventory during the fiscal year ended January 31, 2023. As a result of the material weakness identified, the Company has begun updating its internal control over financial reporting as discussed in its remediation plan updated below. 

 

Remediation Plan for the Material Weakness in Internal Control over Financial Reporting. To address the material weakness, the Company has implemented its remediation plan. Specifically, the Company has:

 

Hired additional personnel with significant experience in inventory management to oversee the process at the Lebanon, Tennessee facility;
Engaged outside consultants to assist in reviewing and updating policies, procedures and controls over inventory management;
Redesigned cycle count procedures to better identify higher value and more active inventory parts, as well as to include additional review of results prior to recording of any adjustments; and
Performed updates with respect to the Company's physical inventory and inventory management system.

 

The Company anticipates the actions described above and resulting improvements in controls will strengthen the Company's processes, procedures and controls related to inventory management and will address the related material weakness described above. However, the material weakness cannot be considered fully remediated until the remediation processes have been in operation for a period of time, are successfully tested and management concludes that these processes and controls are operating effectively. The Company will continue to monitor the effectiveness of its remediation measures in connection with its future assessments of the effectiveness of internal control over financial reporting and disclosure controls and procedures, and management will make any changes to the design of the Company's plan and take such other actions deemed appropriate given the circumstances.

 

 

PART II OTHER INFORMATION

 

Item 2.

Unregistered Sales of Equity Securities, Use of Proceeds and Issuer Purchases of Equity Securities

 

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 three months ended October 31, 2023 the Company used the remaining $0.6 million of the $1.0 million authorized to repurchase its outstanding shares of common stock.

 

The following table sets forth the repurchase activity with respect to the Company's shares of common stock during the three months ended October 31, 2023:

 

Period

 

Total number of shares purchased

   

Average price paid (per share)

   

Total number of shares purchased as part of publicly announced plans or programs

   

Approximate dollar value of shares that may yet be purchased under the plans or programs

 

August 1, 2023 - August 31, 2023

    62     $ 8.64       62     $ 91  

September 1, 2023 - September 30, 2023

    10       8.92       10       -  

October 1, 2023 - October 31, 2023

    -       -       -       -  

Total

    72               72        

 

 

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:

December 7, 2023

By: /s/ David J. Mansfield

 

 

David J. Mansfield

 

 

President and Chief Executive Officer

 

 

(Principal Executive Officer)

 

 

 

Date:

December 7, 2023

By: /s/ Matthew E. Lewicki

 

 

Matthew E. Lewicki

 

 

Vice President and Chief Financial Officer

 

 

(Principal Financial and Accounting Officer)

 

28
EX-31.1 2 ex_571123.htm EXHIBIT 31.1 ex_571123.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:

December 8, 2023

 

/s/ David J. Mansfield

David J. Mansfield

President and Chief Executive Officer

(Principal Executive Officer)

 

 
EX-31.2 3 ex_571124.htm EXHIBIT 31.2 ex_571124.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:

December 8, 2023

 

/s/ Matthew E. Lewicki

Matthew E. Lewicki

Vice President and Chief Financial Officer

(Principal Financial and Accounting Officer)

 

 
EX-32 4 ex_571125.htm EXHIBIT 32 ex_571125.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 October 31, 2023 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)

 

December 8, 2023

 

 

 

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-20231031.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 (Loss) 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 022 - Disclosure - Note 16 - Contingencies link:calculationLink link:definitionLink link:presentationLink 023 - Disclosure - Significant Accounting Policies (Policies) link:calculationLink link:definitionLink link:presentationLink 024 - Disclosure - Note 4 - Revenue Recognition (Tables) link:calculationLink link:definitionLink link:presentationLink 025 - Disclosure - Note 6 - Impairment of Long-lived Assets (Tables) link:calculationLink link:definitionLink link:presentationLink 026 - Disclosure - Note 7 - Stock-based Compensation (Tables) link:calculationLink link:definitionLink link:presentationLink 027 - Disclosure - Note 8 - Earnings (Loss) Per Share (Tables) link:calculationLink link:definitionLink link:presentationLink 028 - Disclosure - Note 10 - Leases (Tables) link:calculationLink link:definitionLink link:presentationLink 029 - Disclosure - Note 11 - Restricted Cash (Tables) link:calculationLink link:definitionLink link:presentationLink 030 - Disclosure - Note 14 - Treasury Stock (Tables) link:calculationLink link:definitionLink link:presentationLink 031 - Disclosure - Note 2 - Business Segment Reporting (Details Textual) link:calculationLink link:definitionLink link:presentationLink 032 - Disclosure - Note 3 - Accounts Receivable (Details Textual) link:calculationLink link:definitionLink link:presentationLink 033 - Disclosure - Note 4 - Revenue Recognition (Details Textual) link:calculationLink link:definitionLink link:presentationLink 034 - Disclosure - Note 4 - Revenue Recognition - Revenues by Revenue Class (Details) link:calculationLink link:definitionLink link:presentationLink 035 - Disclosure - Note 4 - Revenue Recognition - Reconciliation of the Cost in Excess of Billings (Details) link:calculationLink link:definitionLink link:presentationLink 036 - Disclosure - Note 5 - Income Taxes (Details Textual) link:calculationLink link:definitionLink link:presentationLink 037 - Disclosure - Note 6 - Impairment of Long-lived Assets (Details Textual) link:calculationLink link:definitionLink link:presentationLink 038 - Disclosure - Note 6 - Impairment of Long-lived Assets - Goodwill (Details) link:calculationLink link:definitionLink link:presentationLink 039 - Disclosure - Note 7 - Stock-based Compensation (Details Textual) link:calculationLink link:definitionLink link:presentationLink 040 - Disclosure - Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details) link:calculationLink link:definitionLink link:presentationLink 041 - Disclosure - Note 7 - Stock-based Compensation - Stock Option Activity (Details) link:calculationLink link:definitionLink link:presentationLink 042 - Disclosure - Note 7 - Stock-based Compensation - Restricted Stock Activity (Details) link:calculationLink link:definitionLink link:presentationLink 043 - Disclosure - Note 8 - Earnings (Loss) Per Share - Summary of Earnings Per Share (Details) link:calculationLink link:definitionLink link:presentationLink 044 - Disclosure - Note 9 - Debt (Details Textual) link:calculationLink link:definitionLink link:presentationLink 045 - Disclosure - Note 10 - Leases (Details Textual) link:calculationLink link:definitionLink link:presentationLink 046 - Disclosure - Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details) link:calculationLink link:definitionLink link:presentationLink 047 - Disclosure - Note 10 - Leases - Lease Costs (Details) link:calculationLink link:definitionLink link:presentationLink 048 - Disclosure - Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details) link:calculationLink link:definitionLink link:presentationLink 049 - Disclosure - Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details) link:calculationLink link:definitionLink link:presentationLink 050 - Disclosure - Note 10 - Leases - Maturities of Lease Liabilities (Details) link:calculationLink link:definitionLink link:presentationLink 051 - Disclosure - Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details) link:calculationLink link:definitionLink link:presentationLink 052 - Disclosure - Note 14 - Treasury Stock (Details Textual) link:calculationLink link:definitionLink link:presentationLink 053 - Disclosure - Note 14 - Treasury Stock - Repurchases of Common Stock (Details) link:calculationLink link:definitionLink link:presentationLink 054 - Disclosure - Note 15 - Noncontrolling Interests (Details Textual) link:calculationLink link:definitionLink link:presentationLink EX-101.CAL 6 ppih-20231031_cal.xml XBRL TAXONOMY EXTENSION CALCULATION LINKBASE EX-101.DEF 7 ppih-20231031_def.xml XBRL TAXONOMY EXTENSION DEFINITION LINKBASE EX-101.LAB 8 ppih-20231031_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 (Loss) Per Share Note 10 - Leases Note 11 - Restricted Cash Long-term liabilities Note 14 - Treasury Stock Note 4 - Revenue Recognition - Revenues by Revenue Class (Details) Income Tax Disclosure [Text Block] Note 4 - Revenue Recognition - Reconciliation of the Cost in Excess of Billings (Details) 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) us-gaap_LiabilitiesCurrent Total current liabilities Note 8 - Earnings (Loss) Per Share - Summary of Earnings Per Share (Details) 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) Note 14 - Treasury Stock - Repurchases of Common Stock (Details) us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent Minimum pension liability adjustment, net of tax 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_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] Proceeds from sales of property and equipment 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 Current liabilities Weighted average common shares outstanding Treasury Stock [Text Block] Product [Member] Asset Impairment Charges [Text Block] Supplemental cash flow information us-gaap_Assets Total assets 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 (loss) Net income 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 Commitments and Contingencies Disclosure [Text Block] us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment Accumulated depreciation and amortization Property, plant and equipment, net of accumulated depreciation Property and Equipment - net Goodwill Goodwill Goodwill Property and Equipment - gross Long-Term Debt, Type [Axis] Long-Term Debt, Type [Domain] UNITED ARAB EMIRATES Net income Net income Net income 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. Repurchase of common stock Equity impact of the common stock that were repurchased during the period. us-gaap_IncreaseDecreaseInEmployeeRelatedLiabilities Accrued compensation and payroll taxes Income tax expense us-gaap_IncreaseDecreaseInAccountsPayable Accounts payable 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 (loss) income attributable to common stock City Area Code us-gaap_DebtInstrumentMaturityDate Debt Instrument, Maturity Date us-gaap_TreasuryStockSharesRetired Treasury Stock, Shares, Retired (in shares) Treasury stock retired (in shares) New Accounting Pronouncements, Policy [Policy Text Block] Total number of shares purchased (in shares) 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_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] Finance leases liabilities Document Period End Date Operating leases liabilities Operating leases (Year) Entity File Number Entity Emerging Growth Company Document Type Entity Small Business Entity Shell Company us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlements1 Non-cash pension termination expense 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] us-gaap_TreasuryStockRetiredCostMethodAmount Retirement of treasury stock Entity Address, Address Line One us-gaap_TreasuryStockValueAcquiredCostMethod Repurchase of common stock Entity Address, City or Town Entity Address, Postal Zip Code us-gaap_TreasuryStockCommonValue Treasury stock, 109 shares at October 31, 2023 and 3 shares at January 31, 2023 Entity Address, State or Province Concentration Risk Type [Axis] us-gaap_AllowanceForDoubtfulAccountsReceivable Accounts Receivable, Allowance for Credit Loss Concentration Risk Type [Domain] 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 Current Maturities of Long-term Debt [Member] Primary financial statement caption encompassing current maturities of long-term debt. 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 (Loss) gain 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 Party, Type [Axis] Related Party, Type [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 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 expense ppih_AssetsTransferredToAcquireNoncontrollingInterest Assets Transferred To Acquire Noncontrolling Interest Represents the amount of assets transferred to acquire noncontrolling interest. Operating lease liability short-term Cash and Cash Equivalents Disclosure [Text Block] Finance lease liability short-term Finance Lease, Liability, Current Long-term finance obligation us-gaap_FinanceLeaseLiabilityNoncurrent Finance Lease, Liability, Noncurrent Operating lease right-of-use asset Operating Lease, Right-of-Use Asset us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue Total lease payments, operating leases us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount Less: amount representing interest, operating leases Total lease liabilities, finance leases Total finance lease liabilities Financing cash outflows from finance leases Payments of principal on finance obligation For the year ending January 31, 2027, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree Joint Venture [Member] Relating to the Joint Venture. For the year ending January 31, 2028, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour us-gaap_FinanceLeaseRightOfUseAsset Finance Lease, Right-of-Use Asset, after Accumulated Amortization For the year ending January 31, 2029, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive Thereafter, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive For the year ending January 31, 2025, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths For the year ending January 31, 2026, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo Subsequent Events, Policy [Policy Text Block] us-gaap_ShareBasedCompensation Stock-based compensation expense Other long-term assets For the three months ending January 31, 2024, operating leases us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear Operating expenses us-gaap_AccountsReceivableNetNoncurrent Accounts Receivable, after Allowance for Credit Loss, Noncurrent 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. us-gaap_LesseeOperatingLeaseTermOfContract Lessee, Operating Lease, Term of Contract (Year) One Customer [Member] Represents information pertaining to one customer. Two Customers [Member] Represents information pertaining to two customers. 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 Treasury stock (in shares) us-gaap_LesseeFinanceLeaseTermOfContract1 Lessee, Finance Lease, Term of Contract (Year) us-gaap_LesseeFinanceLeaseRenewalTerm1 Lessee, Finance Lease, Renewal Term (Year) Common stock, $.01 par value, authorized 50,000 shares; 7,951 issued and outstanding at October 31, 2023 and 8,004 at January 31, 2023 Adjustments to reconcile net income to net cash provided by (used in) operating activities Common stock, authorized (in shares) Common stock, issued (in shares) Fixed assets acquired from non affiliates - non-cash 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 $574 at October 31, 2023 and $612 at January 31, 2023 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 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 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 us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect Net increase (decrease) in cash, cash equivalents and restricted cash us-gaap_NetCashProvidedByUsedInFinancingActivities Net cash provided by financing activities 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 (used in) 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 us-gaap_PaymentsForRepurchaseOfCommonStock Repurchase of common stock Scenario [Domain] Retained Earnings [Member] Average price paid per share (in dollars per share) Scenario [Axis] Treasury Stock, Common [Member] Approximate dollar value of shares that may yet be purchased under the plans or programs (in shares) Additional Paid-in Capital [Member] us-gaap_ForeignEarningsRepatriated Foreign Earnings Repatriated Share Repurchase Program [Domain] Common Stock [Member] us-gaap_StockRepurchaseProgramAuthorizedAmount1 Stock Repurchase Program, Authorized Amount Class of Treasury Stock [Table Text Block] us-gaap_DebtAndCapitalLeaseObligations Debt and Lease Obligation Equity Components [Axis] Equity Component [Domain] Share Repurchase Program [Axis] Other Noncurrent Assets [Member] Other Current Liabilities [Member] Other Noncurrent Liabilities [Member] us-gaap_NotesPayable Notes Payable us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest Income 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) Common stock issued under stock plans, net of shares used for tax withholding The amount of common stock issued under stock plans, net of shares used for tax withholding. 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. 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] Balance Sheet Location [Axis] ppih_LineOfCreditFacilityCommonStockRepurchaseRestrictions Line of Credit Facility, Common Stock Repurchase Restrictions Maximum amount of common stock repurchase allowed under credit agreement. Balance Sheet Location [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 ppih_LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine 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] us-gaap_ProceedsFromIssuanceOfSecuredDebt Proceeds from Issuance of Secured Debt 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. us-gaap_MinorityInterestOwnershipPercentageByNoncontrollingOwners Subsidiary, Ownership Percentage, Noncontrolling Owner 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] 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 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 ending January 31, 2029 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 ending January 31, 2025 For the year ending January 31, 2026 For the year ending January 31, 2027 For the year ending January 31, 2028 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] Finance leases For the three months ending January 31, 2024 us-gaap_LiabilitiesNoncurrent Total long-term liabilities Finance leases (Year) Publicly Announced Share Repurchase Program [Member] Represents publicly announced share repurchase program. Financing activities Other long-term liabilities us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossBeforeTax Pension liability 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, less current maturities Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] Related party loan 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-20231031_pre.xml XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE GRAPHIC 10 permapipelogo10q.jpg begin 644 permapipelogo10q.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 11 R1.htm IDEA: XBRL DOCUMENT v3.23.3
Document And Entity Information - shares
9 Months Ended
Oct. 31, 2023
Dec. 07, 2023
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 Q3  
Document Fiscal Year Focus 2023  
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Oct. 31, 2023  
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,063,501
XML 12 R2.htm IDEA: XBRL DOCUMENT v3.23.3
Consolidated Statements of Operations (Unaudited) - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended 9 Months Ended
Oct. 31, 2023
Oct. 31, 2022
Oct. 31, 2023
Oct. 31, 2022
Net sales $ 45,690 $ 37,903 $ 110,489 $ 106,128
Cost of sales 32,506 26,773 81,065 78,063
Gross profit 13,184 11,130 29,424 28,065
Operating expenses        
General and administrative expenses 5,674 5,284 16,417 16,180
Selling expenses 1,471 1,310 4,201 3,863
Total operating expenses 7,145 6,594 20,618 20,043
Income from operations 6,039 4,536 8,806 8,022
Interest expense 640 717 1,788 1,585
Other expense (502) (948) (350) (963)
Income before income taxes 4,897 2,871 6,668 5,474
Income tax expense 1,533 1,143 3,257 2,763
Net income 3,364 1,728 3,411 2,711
Less: Net income attributable to non-controlling interest 1,429 0 1,577 0
Net income attributable to common stock $ 1,935 $ 1,728 $ 1,834 $ 2,711
Weighted average common shares outstanding        
Basic (in shares) 7,955 8,004 7,996 8,096
Diluted (in shares) 8,021 8,146 8,106 8,238
Earnings per share attributable to common stock        
Basic (in dollars per share) $ 0.24 $ 0.22 $ 0.23 $ 0.33
Diluted (in dollars per share) $ 0.24 $ 0.21 $ 0.23 $ 0.33
XML 13 R3.htm IDEA: XBRL DOCUMENT v3.23.3
Consolidated Statements of Comprehensive Income (Loss) (Unaudited) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Oct. 31, 2023
Oct. 31, 2022
Oct. 31, 2023
Oct. 31, 2022
Net income $ 3,364 $ 1,728 $ 3,411 $ 2,711
Other comprehensive income (loss)        
Foreign currency translation adjustment (2,035) (2,735) (2,133) (4,122)
Minimum pension liability adjustment, net of tax 0 1,247 0 1,247
Comprehensive income (loss) 1,329 240 1,278 (164)
Less: Comprehensive income attributable to non-controlling interests 1,429 0 1,577 0
Total comprehensive (loss) income attributable to common stock $ (100) $ 240 $ (299) $ (164)
XML 14 R4.htm IDEA: XBRL DOCUMENT v3.23.3
Consolidated Balance Sheets (Current Period Unaudited) - USD ($)
$ in Thousands
Oct. 31, 2023
Jan. 31, 2023
Current assets    
Cash and cash equivalents $ 6,021 $ 5,773
Restricted cash 1,387 1,020
Trade accounts receivable, less allowance for credit losses of $574 at October 31, 2023 and $612 at January 31, 2023 47,095 42,010
Inventories 16,052 14,738
Prepaid expenses and other current assets 7,316 7,357
Unbilled accounts receivable 14,320 11,634
Costs and estimated earnings in excess of billings on uncompleted contracts 2,462 3,126
Total current assets 94,653 85,658
Long-term assets    
Property, plant and equipment, net of accumulated depreciation 35,851 26,518
Operating lease right-of-use asset 6,376 4,527
Deferred tax assets 639 696
Goodwill 2,152 2,227
Other long-term assets 4,534 3,340
Total long-term assets 49,552 37,308
Total assets 144,205 122,966
Current liabilities    
Trade accounts payable 26,104 14,754
Accrued compensation and payroll taxes 1,551 1,179
Commissions and management incentives payable 4,546 4,764
Revolving line - North America 6,702 4,387
Current maturities of long-term debt 7,132 6,227
Customers' deposits 3,220 1,951
Operating lease liability short-term 920 912
Other accrued liabilities 3,076 5,549
Billings in excess of costs and estimated earnings on uncompleted contracts 904 1,743
Income taxes payable 3,383 2,324
Total current liabilities 57,538 43,790
Long-term liabilities    
Long-term debt, less current maturities 4,158 4,389
Deferred compensation liabilities 1,142 1,608
Deferred tax liabilities 976 909
Operating lease liability long-term 6,143 4,252
Other long-term liabilities 1,252 1,019
Total long-term liabilities 25,538 21,392
Non-controlling interest 4,156 0
Stockholders' equity    
Common stock, $.01 par value, authorized 50,000 shares; 7,951 issued and outstanding at October 31, 2023 and 8,004 at January 31, 2023 80 80
Additional paid-in capital 62,991 62,562
Treasury stock, 109 shares at October 31, 2023 and 3 shares at January 31, 2023 (967) (26)
Retained earnings 3,451 1,617
Accumulated other comprehensive loss (8,582) (6,449)
Total stockholders' equity 56,973 57,784
Total liabilities and stockholders' equity 144,205 122,966
Related Party [Member]    
Long-term liabilities    
Related party loan 2,753 0
Land and Buildings in Lebanon, Tennessee [Member]    
Long-term liabilities    
Long-term finance obligation $ 9,114 $ 9,215
XML 15 R5.htm IDEA: XBRL DOCUMENT v3.23.3
Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) - USD ($)
shares in Thousands, $ in Thousands
Oct. 31, 2023
Jan. 31, 2023
Allowance for doubtful accounts $ 574 $ 612
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) 7,951 8,004
Common stock, outstanding (in shares) 7,951 8,004
Treasury stock (in shares) 109 3
XML 16 R6.htm IDEA: XBRL DOCUMENT v3.23.3
Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($)
$ in Thousands
Common Stock [Member]
Additional Paid-in Capital [Member]
Retained Earnings [Member]
Treasury Stock, Common [Member]
Revision of Prior Period, Adjustment [Member]
Treasury Stock, Common [Member]
AOCI Attributable to Parent [Member]
Total
Balance at Jan. 31, 2022 $ 82 $ 61,766 $ (2,295)   $ (1,992) $ (3,104) $ 54,457
Net income (loss) 0 0 (885)   0 0 (885)
Stock-based compensation expense 0 236 0   0 0 236
Foreign currency translation adjustment 0 0 0   0 (932) (932)
Common stock issued under stock plans, net of shares used for tax withholding 0 16 0   0 0 16
Balance at Apr. 30, 2022 $ 82 62,018 (3,180)   (1,992) (4,036) 52,892
Balances (in shares) at Jan. 31, 2022 8,151,754     (234,281)      
Balance at Jan. 31, 2022 $ 82 61,766 (2,295)   (1,992) (3,104) 54,457
Net income (loss)             2,711
Foreign currency translation adjustment             (4,122)
Balance at Oct. 31, 2022 $ 80 62,307 (1,617)   $ 0 (5,979) 54,791
Balances (in shares) at Jan. 31, 2022 8,151,754     (234,281)      
Treasury stock retired (in shares)         (4,887)    
Shares issued, net of shares used for tax withholding (in shares) 94,416            
Balances (in shares) at Oct. 31, 2022 8,007,002            
Balance at Apr. 30, 2022 $ 82 62,018 (3,180)   $ (1,992) (4,036) 52,892
Net income (loss) 0 0 1,868   0 0 1,868
Stock-based compensation expense 0 284 0   0 0 284
Foreign currency translation adjustment 0 0 0   0 (455) (455)
Common stock issued under stock plans, net of shares used for tax withholding 0 (247) 0   0 0 (247)
Repurchase of common stock 0 0 0   (43) 0 (43)
Balance at Jul. 31, 2022 80 62,055 (3,345)   0 (4,491) 54,299
Retirement of treasury stock (2) 0 (2,033)   2,035 0 0
Net income (loss) 0 0 1,728   0 0 1,728
Stock-based compensation expense 0 243 0   0 0 243
Foreign currency translation adjustment 0 0 0   0 (2,735) (2,735)
Common stock issued under stock plans, net of shares used for tax withholding 0 9 0   0 0 9
Balance at Oct. 31, 2022 80 62,307 (1,617)   0 (5,979) 54,791
Pension liability $ 0 0 0   0 1,247 1,247
Balances (in shares) at Oct. 31, 2022 8,007,002            
Balance at Jan. 31, 2023 $ 80 62,562 1,617   (26) (6,449) 57,784
Net income (loss) 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 8,007,002     0      
Balance at Jan. 31, 2023 $ 80 62,562 1,617   (26) (6,449) 57,784
Net income (loss)             1,834
Foreign currency translation adjustment             (2,133)
Balance at Oct. 31, 2023 $ 80 62,991 3,451   $ (967) (8,582) 56,973
Balances (in shares) at Jan. 31, 2023 8,007,002     0      
Treasury stock retired (in shares)         0    
Shares issued, net of shares used for tax withholding (in shares) 56,499            
Balances (in shares) at Oct. 31, 2023 8,063,501            
Balance at Apr. 30, 2023 $ 80 62,791 494   $ (26) (6,886) 56,453
Net income (loss) 0 0 1,022   0 0 1,022
Stock-based compensation expense 0 245 0   0 0 245
Foreign currency translation adjustment 0 0 0   0 339 339
Common stock issued under stock plans, net of shares used for tax withholding 0 (274) 0   0 0 (274)
Repurchase of common stock 1            
Repurchase of common stock   0 0   (312) 0 (311)
Balance at Jul. 31, 2023 81 62,762 1,516   (338) (6,547) 57,474
Net income (loss) 0 0 1,935   0 0 1,935
Stock-based compensation expense 0 229 0   0 0 229
Foreign currency translation adjustment 0 0 0   0 (2,035) (2,035)
Repurchase of common stock (1)            
Repurchase of common stock   0 0   (629) 0 (630)
Balance at Oct. 31, 2023 $ 80 $ 62,991 $ 3,451   $ (967) $ (8,582) $ 56,973
Balances (in shares) at Oct. 31, 2023 8,063,501            
XML 17 R7.htm IDEA: XBRL DOCUMENT v3.23.3
Consolidated Statements of Cash Flows (Unaudited) - USD ($)
$ in Thousands
9 Months Ended
Oct. 31, 2023
Oct. 31, 2022
Operating activities    
Net income $ 3,411 $ 2,711
Adjustments to reconcile net income to net cash provided by (used in) operating activities    
Depreciation and amortization 2,774 2,781
Deferred tax expense 145 358
Stock-based compensation expense 686 763
Non-cash pension termination expense 0 813
Provision on uncollectible accounts (37) 20
(Loss) gain from disposal of fixed assets (13) 134
Changes in operating assets and liabilities    
Accounts receivable (5,377) (4,345)
Inventories (1,426) (1,545)
Costs and estimated earnings in excess of billings on uncompleted contracts (175) (3,086)
Accounts payable 9,346 513
Accrued compensation and payroll taxes 1,167 126
Customers' deposits 1,272 1,250
Income taxes payable 327 530
Prepaid expenses and other current assets 205 (785)
Other assets and liabilities (1,912) 1,699
Net cash provided by (used in) operating activities 7,617 (5,100)
Investing activities    
Capital expenditures (8,204) (3,236)
Proceeds from insurance recovery for property and equipment 5 0
Proceeds from sales of property and equipment 0 117
Net cash used in investing activities (8,199) (3,119)
Financing activities    
Proceeds from revolving credit lines 120,467 62,778
Payments of debt on revolving credit lines (117,419) (54,259)
Payments of other debt (179) (198)
Decrease in drafts payable (199) (130)
Repurchase of common stock (941) (43)
Stock options exercised and taxes paid related to restricted shares vested (273) (222)
Net cash provided by financing activities 1,196 7,610
Effect of exchange rate changes on cash, cash equivalents and restricted cash 1 563
Net increase (decrease) in cash, cash equivalents and restricted cash 615 (46)
Cash, cash equivalents and restricted cash - beginning of period 6,793 9,771
Cash, cash equivalents and restricted cash - end of period 7,408 9,725
Supplemental cash flow information    
Cash interest paid 1,754 1,505
Cash income taxes paid 2,546 2,107
Fixed assets acquired from non affiliates - non-cash 4,357 0
Finance Lease Obligations [Member]    
Financing activities    
Payments of principal on finance obligation (176) (251)
Land and Buildings in Lebanon, Tennessee [Member]    
Financing activities    
Payments of principal on finance obligation (84) (65)
Unbilled Revenues [Member]    
Changes in operating assets and liabilities    
Unbilled accounts receivable $ (2,776) $ (7,037)
XML 18 R8.htm IDEA: XBRL DOCUMENT v3.23.3
Note 1 - Basis of Presentation
9 Months Ended
Oct. 31, 2023
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, 2023 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 2023 and 2022 are for the fiscal year ending January 31, 2024 and for the fiscal year ended  January 31, 2023, respectively.

 

Significant New Accounting Policies

 

Refer to the Company's Annual Report on Form 10-K for the year ended January 31, 2023 as filed with the SEC on April 27, 2023 for discussion of the Company's significant accounting policies. During the nine months ended October 31, 2023, the following accounting policy was adopted: 

 

Current Expected Credit Loss

 

In June 2016, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") No. 2016-13, Financial Instruments - Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments. The new guidance affects loans, debt securities, trade receivables, net investments in leases, off-balance-sheet credit exposures, reinsurance receivables, and any other financial assets not excluded from the scope that have the contractual right to receive cash. The amended guidance requires the application of a current expected credit loss (“CECL”) model, which measures credit losses based on relevant information about past events, including historical experience, current conditions, and reasonable and supportable forecasts. This ASU is effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2022.  The Company adopted this guidance effective February 1, 2023, which was not material to the consolidated financial statements for the nine months ended October 31, 2023.

 

Subsequent Events

 

The Company has evaluated subsequent events through December 8, 2023, 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 19 R9.htm IDEA: XBRL DOCUMENT v3.23.3
Note 2 - Business Segment Reporting
9 Months Ended
Oct. 31, 2023
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 20 R10.htm IDEA: XBRL DOCUMENT v3.23.3
Note 3 - Accounts Receivable
9 Months Ended
Oct. 31, 2023
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 consist of 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 obtained for substantially all orders. Accounts receivable are due within various time periods specified in the terms applicable to the specific contract and are stated at amounts due from customers net of any allowance for claims and credit losses. The allowance for credit losses is based on specifically identified amounts in customers' accounts, where future collectability is deemed uncertain. Management exercises 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 an amount is deemed uncollectible and all attempts to collect have been exhausted. The write-off is recorded against the allowance for credit losses. 

 

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 $39.5 million as of October 31, 2023, with a remaining balance due in the amount of $2.4 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.6 million is classified in other long-term assets on the Company's consolidated balance sheets.

 

Regardless of the contractual due date for payment, the Company has been actively engaged in ongoing efforts to collect this outstanding balance. The Company continues to engage with the customer to ensure full payment of the open balances. In September 2023 and June 2022, a partial payment was received to settle $0.4 million and $0.9 million of the customer's outstanding balances, respectively. Further, the Company has been engaged by the customer to perform additional work in 2022 and 2023 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 October 31, 2023. 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 uncollected amounts.

 

For the three months ended October 31, 2023one customer accounted for 14% of the Company's consolidated net sales, and during the same period in 2022no individual customer accounted for greater than 10% of the Company’s consolidated net sales. For the nine months ended October 31, 2023 and 2022, no individual customer accounted for greater than 10% of the Company's consolidated net sales. 

 

As of  October 31, 2023 and January 31, 2023two customers accounted for 24% of the Company's accounts receivable, and one customer accounted for 12% of the Company's accounts receivable, respectively.

XML 21 R11.htm IDEA: XBRL DOCUMENT v3.23.3
Note 4 - Revenue Recognition
9 Months Ended
Oct. 31, 2023
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 - Includes all bundled products in which the Company engineers and manufactures pre-insulated specialty piping systems mainly relating to the district heating and cooling and oil & gas markets.

 

 

2)

Products - Includes 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 as evidenced by the Company’s 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 and nine months ended October 31, 2023 and 2022 are as follows:

 

  

Three Months Ended October 31,

  

Nine Months Ended October 31,

 
  

2023

  

2022

  

2023

  

2022

 
  

Sales

  

% of Total

  

Sales

  

% of Total

  

Sales

  

% of Total

  

Sales

  

% of Total

 

Products

 $2,553   5% $4,363   12% $7,541   7% $11,144   10%
                                 

Specialty Piping Systems and Coating

                                

Revenue recognized under input method

  18,641   41%  12,593   33%  41,779   38%  35,918   34%

Revenue recognized under output method

  24,496   54%  20,947   55%  61,169   55%  59,066   56%

Total

 $45,690   100% $37,903   100% $110,489   100% $106,128   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 milestone payments or receive 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.

 

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.

 

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

 

  

October 31, 2023

  

January 31, 2023

 

Costs incurred on uncompleted contracts

 $22,560  $18,342 

Estimated earnings

  11,916   9,370 

Earned revenue

  34,476   27,712 

Less billings to date

  32,918   26,329 

Costs in excess of billings, net

 $1,558  $1,383 

Balance sheet classification

        

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

 $2,462  $3,126 

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

  (904)  (1,743)

Costs in excess of billings, net

 $1,558  $1,383 

 

The Company anticipates that substantially all costs incurred on uncompleted contracts as of  October 31, 2023 will be billed and collected within one year, and all billings on uncompleted contracts as of  October 31, 2023 will be satisfied and collected within one year. 

 

Unbilled accounts receivable

 

The Company has recorded $14.3 million and $11.6 million of unbilled accounts receivable on the consolidated balance sheets as of October 31, 2023 and January 31, 2023, 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 in accordance with the terms of the contract. The Company anticipates that substantially all of the amounts included in unbilled accounts receivable as of  October 31, 2023 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 the Company's contracts are generally less than one year, the Company has applied the practical expedient 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 22 R12.htm IDEA: XBRL DOCUMENT v3.23.3
Note 5 - Income Taxes
9 Months Ended
Oct. 31, 2023
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. Income earned in the U.A.E. is not subject to local country income tax. Additionally, 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 October 31, 2023 and 2022 were 31% and 40%, respectively. The change in the ETR is due primarily to the inability to recognize tax benefits due to losses incurred in the United States resulting in a full valuation allowance and due to 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. The Company's liability was $0.9 million as of October 31, 2023 related to these taxes.

 

XML 23 R13.htm IDEA: XBRL DOCUMENT v3.23.3
Note 6 - Impairment of Long-lived Assets
9 Months Ended
Oct. 31, 2023
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. During  October 31, 2023, the Company performed a periodic 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 for the three and nine months ended October 31, 2023 and 2022. Accordingly, the Company did not proceed with performing an impairment test as a result of this periodic assessment. 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 October 31, 2023 and January 31, 2023 was 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, 2023

  

Foreign exchange change effect

  

October 31, 2023

 

Goodwill

 $2,227  $(75) $2,152 

 

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 at the measurement date. During  October 31, 2023, 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 for the Three and Nine Months Ended October 31, 2023 and 2022. 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 24 R14.htm IDEA: XBRL DOCUMENT v3.23.3
Note 7 - Stock-based Compensation
9 Months Ended
Oct. 31, 2023
Notes to Financial Statements  
Share-Based Payment Arrangement [Text Block]

Note 7 - Stock-based compensation 

 

The Company has prior incentive plans under which previously granted awards remain outstanding but under which no new awards may be granted. At October 31, 2023 the Company had reserved a total of 250,448 shares for grants and issuances under these incentive stock plans, which includes a reserve for issuances pursuant to unvested or unexercised prior awards.

 

The Company's prior incentive plans 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 prior incentive plans 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 October 31,

  

Nine Months Ended October 31,

 
  

2023

  

2022

  

2023

  

2022

 

Restricted stock-based compensation expense

 $229  $243  $686  $763 

 

Stock options

 

The Company did not grant any stock options during the three or nine months ended October 31, 2023. 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, 2023

  40  $10.85   1.1  $19 

Exercised

  (1)  6.85   -   2 

Expired or forfeited

  (17)  10.60   -   - 

Outstanding and exercisable at October 31, 2023

  22  $11.15   0.9  $1 

 

There was no vesting, expiration or forfeiture of previously unvested stock options during the nine months ended October 31, 2023. As of October 31, 2023, 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 nine months ended  October 31, 2023:

 

  

Restricted Shares

  

Weighted Average Price (Per share)

  

Aggregate Intrinsic Value

 

Outstanding at January 31, 2023

  267  $8.55  $2,286 

Granted

  91   10.26     

Vested and issued

  (84)  8.43     

Forfeited or retired for taxes

  (47)  9.23     

Outstanding at October 31, 2023

  228  $9.35  $2,133 

 

As of October 31, 2023, there was $1.3 million of unrecognized compensation expense related to unvested restricted stock granted under the plans. That cost is expected to be recognized over a weighted average period of 2.0 years.

XML 25 R15.htm IDEA: XBRL DOCUMENT v3.23.3
Note 8 - Earnings (Loss) Per Share
9 Months Ended
Oct. 31, 2023
Notes to Financial Statements  
Earnings Per Share [Text Block]

Note 8 - Earnings per share

 

  

Three Months Ended October 31,

  

Nine Months Ended October 31,

 
  

2023

  

2022

  

2023

  

2022

 

Basic weighted average common shares outstanding at October 31, 2023

  7,955   8,004   7,996   8,096 

Dilutive effect of equity compensation plans

  66   142   110   142 

Weighted average common shares outstanding assuming full dilution

  8,021   8,146   8,106   8,238 
                 

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

  122   105   18   105 

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

  66   142   170   142 
                 

Net income attributable to common stock

 $1,935  $1,728  $1,834  $2,711 
                 

Earnings per share attributable to common stock

                

Basic

 $0.24  $0.22  $0.23  $0.33 

Diluted

 $0.24  $0.21  $0.23  $0.33 

 

XML 26 R16.htm IDEA: XBRL DOCUMENT v3.23.3
Note 9 - Debt
9 Months Ended
Oct. 31, 2023
Notes to Financial Statements  
Debt Disclosure [Text Block]

Note 9 - Debt

 

Debt totaled $27.2 million and $24.3 million at October 31, 2023 and January 31, 2023, 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 or the Secured Overnight Financing Rate (as defined in the Renewed Senior Credit Facility, "SOFR"), 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 borrowings is SOFR 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 any 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 of 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. As of October 31, 2023, the calculated ratio was less than 1.10 to 1.00. 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 North American Loan Parties' EBITDA, would result in compliance on a pro forma basis. The Company was in compliance with respect to these covenants as of  October 31, 2023.

 

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 October 31, 2023, the Company had borrowed an aggregate of $6.7 million at a rate of 10.0% and had $4.6 million available under the Renewed Senior Credit Facility. As of January 31, 2023, the Company had borrowed an aggregate of $4.4 million and had $9.9 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.1 million is recognized in current maturities of long-term debt and the long-term portion of $9.1 million is recognized in long-term finance obligation on the Company's consolidated balance sheets as of October 31, 2023. 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 October 31, 2023) from a bank in the U.A.E. As of October 31, 2023 the facility has an interest rate of approximately 9.0% and is set to expire in May 2024. The Company had borrowed an aggregate of $0.1 million and $0.6 million as of October 31, 2023 and January 31, 2023, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. 

 

The Company has a revolving line for 19.5 million U.A.E. Dirhams (approximately $5.3 million at October 31, 2023) from a bank in the U.A.E. As of October 31, 2023 the facility has an interest rate of approximately 9.0% and is set to expire in May 2024. The Company had borrowed an aggregate of $1.3 million and $1.1 million as of October 31, 2023 and January 31, 2023, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. 

 

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 $3.2 million at October 31, 2023). 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 October 31, 2023 the facility has an interest rate of approximately 8.0% and expired in June 2022. This credit arrangement was subsequently renewed in August 2022 with substantially the same terms and conditions, expect for the facility interest rate which increased to 20.8%, and expired in August 2023. The Company is in regular communication with the bank throughout the renewal process and the facility has continued without interruption or penalty. The Company had borrowed an aggregate of $1.6 million and $3.1 million as of October 31, 2023 and January 31, 2023, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. 

 

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 8.9 million Egyptian Pounds (approximately $0.3 million at October 31, 2023). 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 20.8% 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.3 million outstanding as of October 31, 2023 and January 31, 2023, 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  October 31, 2023). 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 2023, and the line was increased to 37.0 million Saudi Riyal (approximately $9.9 million at October 31, 2023). As of October 31, 2023, the facility has an interest rate of approximately 9.5% and is set to expire in May 2024. The Company had borrowed an aggregate of $3.8 million and $1.1 million as of October 31, 2023 and January 31, 2023, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. 

 

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. As of October 31, 2023, the amount of foreign subsidiary debt guaranteed by the Company was approximately $0.1 million. 

 

The Company was in compliance with the covenants under the credit arrangements in the U.A.E., Egypt and Saudi Arabia as of October 31, 2023, with the exception of those arrangements that have expired 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 October 31, 2023, 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 October 31, 2023, the Company's interest rates ranged from 8.0% to 20.8%, with a weighted average rate of 12.1%, and the Company had facility limits totaling $27.2 million under these credit arrangements. As of October 31, 2023$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 October 31, 2023, the Company had borrowed $9.5 million and had an additional $13.7 million of borrowing remaining available under the foreign revolving credit arrangements. The foreign revolving lines balances as of October 31, 2023 and January 31, 2023, were included as current maturities of long-term debt in the Company's consolidated balance sheets. 

 

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 October 31, 2023, the remaining balance on the mortgage in Canada is approximately CAD 6.1 million (approximately $4.4 million at October 31, 2023). The interest rate is variable, and was 9.1% at October 31, 2023. 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 October 31, 2023 and January 31, 2023, respectively.

XML 27 R17.htm IDEA: XBRL DOCUMENT v3.23.3
Note 10 - Leases
9 Months Ended
Oct. 31, 2023
Notes to Financial Statements  
Lessee, Operating and Finance Leases [Text Block]

Note 10 - Leases

 

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), 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 2023. 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 October 31, 2023. The termination resulted in decreases of $0.3 million, $4.0 million and $3.6 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 October 31, 2023. 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. 

 

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 right-of-use ("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 October 31, 2023, the Company had total operating lease liabilities of $7.1 million and operating ROU assets of $6.4 million, which are reflected in the consolidated balance sheets. At October 31, 2023, 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.5 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:

 

October 31, 2023

  

January 31, 2023

 

Finance leases assets:

        

Property and Equipment - gross

 $940  $1,161 

Accumulated depreciation and amortization

  (482)  (700)

Property and Equipment - net

 $458  $461 
         

Finance lease liabilities:

        

Finance lease liability short-term

 $31  $164 

Total finance lease liabilities

 $117  $164 
         

Operating lease assets:

        

Operating lease ROU assets

 $6,376  $4,527 
         

Operating lease liabilities:

        

Operating lease liability short-term

 $920  $912 

Operating lease liability long-term

  6,143   4,252 

Total operating lease liabilities

 $7,063  $5,164 

 

Total lease costs consist of the following: 

 

   

Three Months Ended October 31,

  

Nine Months Ended October 31,

 

Lease costs

Consolidated Statements of Operations Classification

 

2023

  

2022

  

2023

  

2022

 

Finance Lease Costs

                 

Amortization of ROU assets

Cost of sales

 $37  $62  $121  $125 

Interest on lease liabilities

Interest expense

  3   8   7   18 

Operating lease costs

Cost of sales, SG&A expenses

  564   694   1,450   587 

Short-term lease costs (1)

Cost of sales, SG&A expenses

  99   13   350   72 

Sub-lease income

SG&A expenses

  (20)  (27)  (61)  (40)

Total Lease costs

 $683  $750  $1,867  $762 

 

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

 

Supplemental cash flow information related to leases is as follows:

 

  Nine Months Ended October 31,
  

2023

  

2022

 

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

        

Financing cash outflows from finance leases

 $176  $251 

Operating cash outflows from finance leases

  7   24 

Operating cash outflows from operating leases

  1,399   1,377 
         

ROU liabilities obtained in exchange for new lease obligations:

        

Operating leases liabilities

 $3,615  $- 

 

  Nine Months Ended October 31,
  

2023

  

2022

 

ROU liabilities obtained in exchange for new lease obligations:

        

Finance leases liabilities

 $139  $- 

Operating leases liabilities

  3,615   - 

 

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

 

  

October 31, 2023

 

Weighted-average remaining lease terms (in years):

    

Finance leases

  3.3 

Operating leases

  14.9 
     

Weighted-average discount rates:

    

Finance leases

  10.2%

Operating leases

  8.9%

 

Maturities of lease liabilities as of October 31, 2023, are as follows:

 

  

Operating Leases

  

Finance Leases

 

For the three months ending January 31, 2024

 $565  $9 

For the year ending January 31, 2025

  1,515   37 

For the year ending January 31, 2026

  1,349   37 

For the year ending January 31, 2027

  1,326   37 

For the year ending January 31, 2028

  1,273   9 

For the year ending January 31, 2029

  947   - 

Thereafter

  7,465   - 

Total lease payments

 $14,440  $129 

Less: amount representing interest

  (7,377)  (12)

Total lease liabilities at October 31, 2023

 $7,063  $117 

 

Rent expense on operating leases, which is recorded on straight-line basis, was $0.7 million for the three months ended  October 31, 2023 and 2022, respectively.

XML 28 R18.htm IDEA: XBRL DOCUMENT v3.23.3
Note 11 - Restricted Cash
9 Months Ended
Oct. 31, 2023
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: 
 
  

October 31, 2023

  

January 31, 2023

 

Cash and cash equivalents

 $6,021  $5,773 

Restricted cash

  1,387   1,020 

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

 $7,408  $6,793 

 

 

XML 29 R19.htm IDEA: XBRL DOCUMENT v3.23.3
Note 12 - Fair Value
9 Months Ended
Oct. 31, 2023
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 reasonable estimates of their 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 30 R20.htm IDEA: XBRL DOCUMENT v3.23.3
Note 13 - Recent Accounting Pronouncements
9 Months Ended
Oct. 31, 2023
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 31 R21.htm IDEA: XBRL DOCUMENT v3.23.3
Note 14 - Treasury Stock
9 Months Ended
Oct. 31, 2023
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 three months ended  October 31, 2023 the Company used the remaining $0.6 million of the $1.0 million authorized to repurchase its outstanding shares of common stock.

 

The following table sets forth the repurchase activity with respect to the Company's shares of common stock during the three months ended October 31, 2023:

 

Period

 

Total number of shares purchased

  

Average price paid (per share)

  

Total number of shares purchased as part of publicly announced plans or programs

  

Approximate dollar value of shares that may yet be purchased under the plans or programs

 

August 1, 2023 - August 31, 2023

  62  $8.64   62  $91 

September 1, 2023 - September 30, 2023

  10   8.92   10   - 

October 1, 2023 - October 31, 2023

  -   -   -   - 

Total

  72       72     

 

On  July 26, 2022, the Company retired 239,168 shares of treasury stock previously repurchased under the stock repurchase program. The retirement was recorded as a reduction to common stock based on the par value of the shares, and the excess over par value was recorded as a decrease to retained earnings in accordance with ASC 505-30, Equity - Treasury Stock.

XML 32 R22.htm IDEA: XBRL DOCUMENT v3.23.3
Note 15 - Noncontrolling Interests
9 Months Ended
Oct. 31, 2023
Notes to Financial Statements  
Noncontrolling Interest Disclosure [Text Block]

Note 15 - Noncontrolling interest

 

The Company has a controlling financial interest in a certain investment 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. Pursuant to the applicable guidance contained in ASC 810, Consolidations, the balance sheets and operating activities of this investment is included in the Company's consolidated financial statements. The Company adjusts net income in the consolidated statements of operations to exclude the proportionate share of results that is attributable to non-controlling interest. Additionally, the Company presents the proportionate share that is attributable to 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 any time after five years following the date of incorporation. Further, the put option did not meet 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. 

 

On June 1, 2023, the Company closed on its formation of the joint venture ("The JV Agreement") with Gulf Insulation Group ("GIG") a leading provider of pre-insulated piping systems, leak detection systems, and pipe fabrication, in which the Company acquired a 60% controlling interest in exchange for consideration of $2.7 million, consisting of land and equipment. The Company expects this collaborative business arrangement to result in expanding its market presence in Saudi Arabia, Kuwait, and Bahrain. 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 combination. As such, the assets transferred by the Company were recorded at historical cost, and no gain was recognized as a result of this exchange. Further, the other party to this business arrangement acquired a 40% non-controlling interest by contributing assets of approximately $2.7 million, mainly consisting of land and equipment. The non-controlling interest attributable to the other party was recorded at its estimated fair value as of the investment date, and no gain was recognized as a result of this exchange. In connection with the joint venture, the Company agreed to a promissory note in the principal amount $2.7 million payable to the related party contained in this agreement. The principal amount is presented within the note payable to GIG caption in the Company's consolidated balance sheets. 

 

Net income attributable to GIG was $1.4 million and $0.0 million for the three months ended October 31, 2023 and 2022, respectively. Net income attributable to GIG was $1.6 million and $0.0 million for the nine months ended October 31, 2023 and 2022, 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 had carrying amounts attributable to non-controlling interest of $4.2 million and $0.0 million recorded within temporary equity at  October 31, 2023 and January 31, 2023, respectively. There were no dividends or any other forms of distributions from non-controlling interest as of October 31, 2023 and January 31, 2023, respectively. 

XML 33 R23.htm IDEA: XBRL DOCUMENT v3.23.3
Note 16 - Contingencies
9 Months Ended
Oct. 31, 2023
Notes to Financial Statements  
Commitments and Contingencies Disclosure [Text Block]

Note 16 - Contingencies

 

The Company is subject to various legal proceedings and claims that arise in the ordinary course of business, including those involving environmental, tax, product liability and general liability claims. The Company accrues for such liabilities when it is probable that future costs will be incurred and such costs can be reasonably estimated. Such accruals are based on developments to date, the Company's estimates of the outcomes with respect to these matters, and its experience in contesting, litigating and settling other similar matters.

 

As of October 31, 2023, the Company is actively involved in certain legal proceedings that are ongoing and for which the ultimate outcome remains uncertain. For all other legal proceedings, the Company does not currently anticipate that the ultimate liability with respect to these matters will materially affect the Company's financial position, liquidity or future operations.

 

XML 34 R24.htm IDEA: XBRL DOCUMENT v3.23.3
Significant Accounting Policies (Policies)
9 Months Ended
Oct. 31, 2023
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, 2023 as filed with the SEC on April 27, 2023 for discussion of the Company's significant accounting policies. During the nine months ended October 31, 2023, the following accounting policy was adopted: 

 

Current Expected Credit Loss

 

In June 2016, the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") No. 2016-13, Financial Instruments - Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments. The new guidance affects loans, debt securities, trade receivables, net investments in leases, off-balance-sheet credit exposures, reinsurance receivables, and any other financial assets not excluded from the scope that have the contractual right to receive cash. The amended guidance requires the application of a current expected credit loss (“CECL”) model, which measures credit losses based on relevant information about past events, including historical experience, current conditions, and reasonable and supportable forecasts. This ASU is effective for fiscal years, and interim periods within those fiscal years, beginning after December 15, 2022.  The Company adopted this guidance effective February 1, 2023, which was not material to the consolidated financial statements for the nine months ended October 31, 2023.

Subsequent Events, Policy [Policy Text Block]

Subsequent Events

 

The Company has evaluated subsequent events through December 8, 2023, 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 35 R25.htm IDEA: XBRL DOCUMENT v3.23.3
Note 4 - Revenue Recognition (Tables)
9 Months Ended
Oct. 31, 2023
Notes Tables  
Disaggregation of Revenue [Table Text Block]
  

Three Months Ended October 31,

  

Nine Months Ended October 31,

 
  

2023

  

2022

  

2023

  

2022

 
  

Sales

  

% of Total

  

Sales

  

% of Total

  

Sales

  

% of Total

  

Sales

  

% of Total

 

Products

 $2,553   5% $4,363   12% $7,541   7% $11,144   10%
                                 

Specialty Piping Systems and Coating

                                

Revenue recognized under input method

  18,641   41%  12,593   33%  41,779   38%  35,918   34%

Revenue recognized under output method

  24,496   54%  20,947   55%  61,169   55%  59,066   56%

Total

 $45,690   100% $37,903   100% $110,489   100% $106,128   100%
Schedule of Assumptions for Long-Duration Contracts by Product and Guarantee [Table Text Block]
  

October 31, 2023

  

January 31, 2023

 

Costs incurred on uncompleted contracts

 $22,560  $18,342 

Estimated earnings

  11,916   9,370 

Earned revenue

  34,476   27,712 

Less billings to date

  32,918   26,329 

Costs in excess of billings, net

 $1,558  $1,383 

Balance sheet classification

        

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

 $2,462  $3,126 

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

  (904)  (1,743)

Costs in excess of billings, net

 $1,558  $1,383 
XML 36 R26.htm IDEA: XBRL DOCUMENT v3.23.3
Note 6 - Impairment of Long-lived Assets (Tables)
9 Months Ended
Oct. 31, 2023
Notes Tables  
Schedule of Goodwill [Table Text Block]
  

January 31, 2023

  

Foreign exchange change effect

  

October 31, 2023

 

Goodwill

 $2,227  $(75) $2,152 
XML 37 R27.htm IDEA: XBRL DOCUMENT v3.23.3
Note 7 - Stock-based Compensation (Tables)
9 Months Ended
Oct. 31, 2023
Notes Tables  
Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]
  

Three Months Ended October 31,

  

Nine Months Ended October 31,

 
  

2023

  

2022

  

2023

  

2022

 

Restricted stock-based compensation expense

 $229  $243  $686  $763 
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, 2023

  40  $10.85   1.1  $19 

Exercised

  (1)  6.85   -   2 

Expired or forfeited

  (17)  10.60   -   - 

Outstanding and exercisable at October 31, 2023

  22  $11.15   0.9  $1 
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, 2023

  267  $8.55  $2,286 

Granted

  91   10.26     

Vested and issued

  (84)  8.43     

Forfeited or retired for taxes

  (47)  9.23     

Outstanding at October 31, 2023

  228  $9.35  $2,133 
XML 38 R28.htm IDEA: XBRL DOCUMENT v3.23.3
Note 8 - Earnings (Loss) Per Share (Tables)
9 Months Ended
Oct. 31, 2023
Notes Tables  
Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]
  

Three Months Ended October 31,

  

Nine Months Ended October 31,

 
  

2023

  

2022

  

2023

  

2022

 

Basic weighted average common shares outstanding at October 31, 2023

  7,955   8,004   7,996   8,096 

Dilutive effect of equity compensation plans

  66   142   110   142 

Weighted average common shares outstanding assuming full dilution

  8,021   8,146   8,106   8,238 
                 

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

  122   105   18   105 

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

  66   142   170   142 
                 

Net income attributable to common stock

 $1,935  $1,728  $1,834  $2,711 
                 

Earnings per share attributable to common stock

                

Basic

 $0.24  $0.22  $0.23  $0.33 

Diluted

 $0.24  $0.21  $0.23  $0.33 
XML 39 R29.htm IDEA: XBRL DOCUMENT v3.23.3
Note 10 - Leases (Tables)
9 Months Ended
Oct. 31, 2023
Notes Tables  
Supplemental Balance Sheet Information Related to Leases [Table Text Block]

Operating and Finance leases:

 

October 31, 2023

  

January 31, 2023

 

Finance leases assets:

        

Property and Equipment - gross

 $940  $1,161 

Accumulated depreciation and amortization

  (482)  (700)

Property and Equipment - net

 $458  $461 
         

Finance lease liabilities:

        

Finance lease liability short-term

 $31  $164 

Total finance lease liabilities

 $117  $164 
         

Operating lease assets:

        

Operating lease ROU assets

 $6,376  $4,527 
         

Operating lease liabilities:

        

Operating lease liability short-term

 $920  $912 

Operating lease liability long-term

  6,143   4,252 

Total operating lease liabilities

 $7,063  $5,164 
Lease, Cost [Table Text Block]
   

Three Months Ended October 31,

  

Nine Months Ended October 31,

 

Lease costs

Consolidated Statements of Operations Classification

 

2023

  

2022

  

2023

  

2022

 

Finance Lease Costs

                 

Amortization of ROU assets

Cost of sales

 $37  $62  $121  $125 

Interest on lease liabilities

Interest expense

  3   8   7   18 

Operating lease costs

Cost of sales, SG&A expenses

  564   694   1,450   587 

Short-term lease costs (1)

Cost of sales, SG&A expenses

  99   13   350   72 

Sub-lease income

SG&A expenses

  (20)  (27)  (61)  (40)

Total Lease costs

 $683  $750  $1,867  $762 
Supplemental Cash Flow Information Related Leases [Table Text Block]
  Nine Months Ended October 31,
  

2023

  

2022

 

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

        

Financing cash outflows from finance leases

 $176  $251 

Operating cash outflows from finance leases

  7   24 

Operating cash outflows from operating leases

  1,399   1,377 
         

ROU liabilities obtained in exchange for new lease obligations:

        

Operating leases liabilities

 $3,615  $- 
  Nine Months Ended October 31,
  

2023

  

2022

 

ROU liabilities obtained in exchange for new lease obligations:

        

Finance leases liabilities

 $139  $- 

Operating leases liabilities

  3,615   - 
Weighted-average Lease Terms and Discount Rates [Table Text Block]
  

October 31, 2023

 

Weighted-average remaining lease terms (in years):

    

Finance leases

  3.3 

Operating leases

  14.9 
     

Weighted-average discount rates:

    

Finance leases

  10.2%

Operating leases

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

Operating Leases

  

Finance Leases

 

For the three months ending January 31, 2024

 $565  $9 

For the year ending January 31, 2025

  1,515   37 

For the year ending January 31, 2026

  1,349   37 

For the year ending January 31, 2027

  1,326   37 

For the year ending January 31, 2028

  1,273   9 

For the year ending January 31, 2029

  947   - 

Thereafter

  7,465   - 

Total lease payments

 $14,440  $129 

Less: amount representing interest

  (7,377)  (12)

Total lease liabilities at October 31, 2023

 $7,063  $117 
XML 40 R30.htm IDEA: XBRL DOCUMENT v3.23.3
Note 11 - Restricted Cash (Tables)
9 Months Ended
Oct. 31, 2023
Notes Tables  
Restrictions on Cash and Cash Equivalents [Table Text Block]
  

October 31, 2023

  

January 31, 2023

 

Cash and cash equivalents

 $6,021  $5,773 

Restricted cash

  1,387   1,020 

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

 $7,408  $6,793 
XML 41 R31.htm IDEA: XBRL DOCUMENT v3.23.3
Note 14 - Treasury Stock (Tables)
9 Months Ended
Oct. 31, 2023
Notes Tables  
Class of Treasury Stock [Table Text Block]

Period

 

Total number of shares purchased

  

Average price paid (per share)

  

Total number of shares purchased as part of publicly announced plans or programs

  

Approximate dollar value of shares that may yet be purchased under the plans or programs

 

August 1, 2023 - August 31, 2023

  62  $8.64   62  $91 

September 1, 2023 - September 30, 2023

  10   8.92   10   - 

October 1, 2023 - October 31, 2023

  -   -   -   - 

Total

  72       72     
XML 42 R32.htm IDEA: XBRL DOCUMENT v3.23.3
Note 2 - Business Segment Reporting (Details Textual)
9 Months Ended
Oct. 31, 2023
Number of Reportable Segments 1
XML 43 R33.htm IDEA: XBRL DOCUMENT v3.23.3
Note 3 - Accounts Receivable (Details Textual)
$ in Thousands
1 Months Ended 3 Months Ended 9 Months Ended 12 Months Ended
Sep. 30, 2023
USD ($)
Jun. 30, 2022
USD ($)
Oct. 31, 2023
USD ($)
Oct. 31, 2022
Oct. 31, 2023
USD ($)
Oct. 31, 2022
USD ($)
Jan. 31, 2023
Oct. 01, 2023
USD ($)
Jul. 31, 2023
USD ($)
Dec. 31, 2015
USD ($)
Increase (Decrease) in Accounts Receivable         $ 5,377 $ 4,345        
Revenue Benchmark [Member] | Customer Concentration Risk [Member]                    
Number of Major Customers     1 0 0 0        
Revenue Benchmark [Member] | Customer Concentration Risk [Member] | One Customer [Member]                    
Concentration Risk, Percentage     14.00%              
Accounts Receivable [Member] | Customer Concentration Risk [Member]                    
Number of Major Customers         2   1      
Accounts Receivable [Member] | Customer Concentration Risk [Member] | One Customer [Member]                    
Concentration Risk, Percentage             12.00%      
Accounts Receivable [Member] | Customer Concentration Risk [Member] | Two Customers [Member]                    
Concentration Risk, Percentage         24.00%          
Financial Asset, Equal to or Greater than 90 Days Past Due [Member]                    
Accounts Receivable, after Allowance for Credit Loss               $ 2,400   $ 41,900
Increase (Decrease) in Accounts Receivable $ (400) $ (900)     $ (39,500)          
Accounts Receivable, Allowance for Credit Loss                 $ 0  
Financial Asset, Equal to or Greater than 90 Days Past Due [Member] | Other Noncurrent Assets [Member]                    
Accounts Receivable, after Allowance for Credit Loss, Noncurrent     $ 1,600   $ 1,600          
XML 44 R34.htm IDEA: XBRL DOCUMENT v3.23.3
Note 4 - Revenue Recognition (Details Textual) - USD ($)
$ in Thousands
9 Months Ended
Oct. 31, 2023
Jan. 31, 2023
Costs Incurred for Uncompleted Contracts, Anticipated Collection Period (Year) 1 year  
Unbilled Receivables, Current $ 14,320 $ 11,634
Middle East [Member]    
Unbilled Receivables, Current $ 14,300 $ 11,600
XML 45 R35.htm IDEA: XBRL DOCUMENT v3.23.3
Note 4 - Revenue Recognition - Revenues by Revenue Class (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Oct. 31, 2023
Oct. 31, 2022
Oct. 31, 2023
Oct. 31, 2022
Sales by product $ 45,690 $ 37,903 $ 110,489 $ 106,128
Sales by product, percent 100.00% 100.00% 100.00% 100.00%
Product [Member] | Transferred at Point in Time [Member]        
Sales by product $ 2,553 $ 4,363 $ 7,541 $ 11,144
Sales by product, percent 5.00% 12.00% 7.00% 10.00%
Specialty Piping Systems And Coating [Member] | Transferred at Point in Time Using Input Method [Member]        
Sales by product $ 18,641 $ 12,593 $ 41,779 $ 35,918
Sales by product, percent 41.00% 33.00% 38.00% 34.00%
Specialty Piping Systems And Coating [Member] | Transferred at Point in Time Using Output Method [Member]        
Sales by product $ 24,496 $ 20,947 $ 61,169 $ 59,066
Sales by product, percent 54.00% 55.00% 55.00% 56.00%
XML 46 R36.htm IDEA: XBRL DOCUMENT v3.23.3
Note 4 - Revenue Recognition - Reconciliation of the Cost in Excess of Billings (Details) - USD ($)
$ in Thousands
Oct. 31, 2023
Jan. 31, 2023
Costs incurred on uncompleted contracts $ 22,560 $ 18,342
Estimated earnings 11,916 9,370
Earned revenue 34,476 27,712
Less billings to date 32,918 26,329
Costs in excess of billings, net 1,558 1,383
Contract assets: Costs and estimated earnings in excess of billings on uncompleted contracts 2,462 3,126
Contract liabilities: Billings in excess of costs and estimated earnings on uncompleted contracts $ (904) $ (1,743)
XML 47 R37.htm IDEA: XBRL DOCUMENT v3.23.3
Note 5 - Income Taxes (Details Textual) - USD ($)
$ in Millions
3 Months Ended
Oct. 31, 2023
Oct. 31, 2022
Effective Income Tax Rate Reconciliation, Percent 31.00% 40.00%
Undistributed Earnings of Foreign Subsidiaries $ 0.9  
XML 48 R38.htm IDEA: XBRL DOCUMENT v3.23.3
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 R39.htm IDEA: XBRL DOCUMENT v3.23.3
Note 6 - Impairment of Long-lived Assets - Goodwill (Details)
$ in Thousands
9 Months Ended
Oct. 31, 2023
USD ($)
Goodwill $ 2,227
Goodwill, foreign exchange change effect (75)
Goodwill $ 2,152
XML 50 R40.htm IDEA: XBRL DOCUMENT v3.23.3
Note 7 - Stock-based Compensation (Details Textual)
$ in Thousands
3 Months Ended 9 Months Ended
Oct. 31, 2023
USD ($)
shares
Oct. 31, 2023
USD ($)
shares
Common Stock, Capital Shares Reserved for Future Issuance (in shares) 250,448 250,448
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross (in shares) 0 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, Forfeitures and Expirations in Period (in shares)   0
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Nonvested, Number of Shares (in shares) 0 0
Share-Based Payment Arrangement, Option [Member]    
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period (in shares)   17,000
Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount | $ $ 0 $ 0
Restricted Stock [Member]    
Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount | $ $ 1,300 $ 1,300
Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)   2 years
XML 51 R41.htm IDEA: XBRL DOCUMENT v3.23.3
Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Oct. 31, 2023
Oct. 31, 2022
Oct. 31, 2023
Oct. 31, 2022
Restricted Stock [Member]        
Stock-based compensation expense $ 229 $ 243 $ 686 $ 763
XML 52 R42.htm IDEA: XBRL DOCUMENT v3.23.3
Note 7 - Stock-based Compensation - Stock Option Activity (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
9 Months Ended 12 Months Ended
Oct. 31, 2023
Jan. 31, 2023
Expired or forfeited, options (in shares) 0  
Share-Based Payment Arrangement, Option [Member]    
Outstanding, options (in shares) 40  
Outstanding, weighted average exercise price (in dollars per share) $ 10.85  
Outstanding, weighted average remaining contractual term (Year) 10 months 24 days 1 year 1 month 6 days
Outstanding, aggregate intrinsic value $ 1 $ 19
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) (17)  
Expired or forfeited, weighted average exercise price (in dollars per share) $ 10.6  
Outstanding, options (in shares) 22 40
Outstanding, weighted average exercise price (in dollars per share) $ 11.15 $ 10.85
XML 53 R43.htm IDEA: XBRL DOCUMENT v3.23.3
Note 7 - Stock-based Compensation - Restricted Stock Activity (Details) - Restricted Stock [Member] - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
9 Months Ended
Oct. 31, 2023
Jan. 31, 2023
Outstanding (in shares) 267  
Outstanding, weighted average price (in dollars per share) $ 8.55  
Outstanding, aggregate intrinsic value $ 2,133 $ 2,286
Granted (in shares) 91  
Granted, weighted average price (in dollars per share) $ 10.26  
Vested and issued (in shares) (84)  
Vested and issued, weighted average price (in dollars per share) $ 8.43  
Forfeited or retired for taxes (in shares) (47)  
Forfeited or retired for taxes (in dollars per share) $ 9.23  
Outstanding (in shares) 228  
Outstanding, weighted average price (in dollars per share) $ 9.35  
XML 54 R44.htm IDEA: XBRL DOCUMENT v3.23.3
Note 8 - Earnings (Loss) Per Share - Summary of Earnings Per Share (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended 9 Months Ended
Oct. 31, 2023
Jul. 31, 2023
Apr. 30, 2023
Oct. 31, 2022
Jul. 31, 2022
Apr. 30, 2022
Oct. 31, 2023
Oct. 31, 2022
Basic (in shares) 7,955     8,004     7,996 8,096
Dilutive effect of equity compensation plans (in shares) 66     142     110 142
Weighted average common shares outstanding assuming full dilution (in shares) 8,021     8,146     8,106 8,238
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) 122     105     18 105
Stock options and restricted stock with exercise prices or grant date prices below the average market prices (in shares) 66     142     170 142
Net income (loss) $ 1,935 $ 1,022 $ (1,123) $ 1,728 $ 1,868 $ (885) $ 1,834 $ 2,711
Basic (in dollars per share) $ 0.24     $ 0.22     $ 0.23 $ 0.33
Diluted (in dollars per share) $ 0.24     $ 0.21     $ 0.23 $ 0.33
XML 55 R45.htm IDEA: XBRL DOCUMENT v3.23.3
Note 9 - Debt (Details Textual)
$ in Thousands, ر.س in Millions, د.إ in Millions, ج.م. in Millions, $ in Millions
3 Months Ended 9 Months Ended
Sep. 17, 2021
USD ($)
Apr. 14, 2021
USD ($)
Sep. 20, 2018
USD ($)
Jul. 28, 2016
Apr. 30, 2023
Oct. 31, 2023
USD ($)
Oct. 31, 2023
CAD ($)
Oct. 31, 2022
USD ($)
Oct. 31, 2023
AED (د.إ)
Oct. 31, 2023
EGP (ج.م.)
Oct. 01, 2023
USD ($)
May 31, 2023
SAR (ر.س)
Jan. 31, 2023
USD ($)
Nov. 30, 2022
USD ($)
Jun. 30, 2022
Mar. 31, 2022
USD ($)
Dec. 31, 2021
EGP (ج.م.)
Jun. 30, 2021
EGP (ج.م.)
Debt and Lease Obligation           $ 27,200             $ 24,300          
Line of Credit, Current           6,702             4,387          
Proceeds from Sale of Property, Plant, and Equipment, Total           0   $ 117                    
Long-term Debt, Current Maturities, Excluding North American Revolving Line           7,132             6,227          
UNITED ARAB EMIRATES                                    
Foreign Earnings Repatriated   $ 800                                
Land and Buildings in Lebanon, Tennessee [Member]                                    
Lessee, Finance Lease, Term of Contract (Year)   15 years                                
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%                                
Finance Lease, Liability, Noncurrent           9,114             9,215          
Mortgage Note Secured by Tennessee Manufacturing Facility [Member]                                    
Repayments of Secured Debt   $ 900                                
Canadian Mortgage Note [Member]                                    
Debt Instrument, Maturity Date       Dec. 23, 2042                            
Proceeds from Issuance of Secured Debt           $ 4,400 $ 6.1                      
Debt Instrument, Interest Rate, Effective Percentage           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                                
Maximum [Member]                                    
Foreign Earnings Repatriated           100                        
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           $ 6,700             4,400          
Line of Credit Facility, Interest Rate at Period End           10.00%     10.00% 10.00%                
Line of Credit Facility, Current Borrowing Capacity           $ 4,600             9,900          
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       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           27,200                        
Line of Credit Facility, Guaranteed Amount                     $ 100              
Letters of Credit Outstanding, Amount           6,700                        
Proceeds from Issuance of Debt           9,500                        
Line of Credit Facility, Remaining Borrowing Capacity           13,700                        
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           9.00%     9.00% 9.00%                
Long-term Debt, Current Maturities, Excluding North American Revolving Line           $ 100             600          
Foreign Revolving Lines [Member] | Revolving Credit Lines Used by Middle Eastern Subsidiaries, 2 [Member]                                    
Line of Credit Facility, Maximum Borrowing Capacity           $ 5,300     د.إ 19.5                  
Line of Credit Facility, Interest Rate at Period End           9.00%     9.00% 9.00%                
Long-term Debt, Current Maturities, Excluding North American Revolving Line           $ 1,300             1,100          
Foreign Revolving Lines [Member] | Revolving Credit Lines Used by Egypt Subsidiaries [Member]                                    
Line of Credit Facility, Maximum Borrowing Capacity           $ 3,200                       ج.م. 100.0
Line of Credit Facility, Interest Rate at Period End           20.80%     20.80% 20.80%         8.00%      
Long-term Debt, Current Maturities, Excluding North American Revolving Line           $ 1,600             3,100          
Foreign Revolving Lines [Member] | Revolving Credit Lines Used by Egypt Subsidiaries 2 [Member]                                    
Line of Credit Facility, Maximum Borrowing Capacity           $ 300       ج.م. 8.9       $ 0     ج.م. 28.2  
Line of Credit Facility, Interest Rate at Period End           20.80%     20.80% 20.80%                
Long-term Debt, Current Maturities, Excluding North American Revolving Line           $ 300             300          
Foreign Revolving Lines [Member] | Revolving Credit Lines Used by Saudi Arabian Subsidiary [Member]                                    
Line of Credit Facility, Maximum Borrowing Capacity           9,900                   $ 37,000    
Foreign Revolving Lines [Member] | Renewal of Revolving Credit Lines Used by Saudi Arabian Subsidiary [Member]                                    
Line of Credit Facility, Maximum Borrowing Capacity           $ 9,900           ر.س 37            
Line of Credit Facility, Interest Rate at Period End           9.50%     9.50% 9.50%                
Long-term Debt, Current Maturities, Excluding North American Revolving Line           $ 3,800             $ 1,100          
Foreign Revolving Lines [Member] | Minimum [Member]                                    
Line of Credit Facility, Interest Rate at Period End           8.00%     8.00% 8.00%                
Debt Instrument, Interest Rate, Stated Percentage           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%                
Foreign Revolving Lines [Member] | Weighted Average [Member]                                    
Line of Credit Facility, Interest Rate at Period End           12.10%     12.10% 12.10%                
Foreign Revolving Lines [Member] | EIBOR [Member] | Minimum [Member]                                    
Debt Instrument, Basis Spread on Variable Rate           3.00% 3.00%                      
Foreign Revolving Lines [Member] | EIBOR [Member] | Maximum [Member]                                    
Debt Instrument, Basis Spread on Variable Rate           3.50% 3.50%                      
Foreign Revolving Lines [Member] | Central Bank of Eqypt (CBE) Rate [Member] | Minimum [Member]                                    
Debt Instrument, Basis Spread on Variable Rate           1.50% 1.50%                      
Foreign Revolving Lines [Member] | Central Bank of Eqypt (CBE) Rate [Member] | Maximum [Member]                                    
Debt Instrument, Basis Spread on Variable Rate           3.50% 3.50%                      
Foreign Revolving Lines [Member] | SIBOR [Member]                                    
Debt Instrument, Basis Spread on Variable Rate           3.50% 3.50%                      
XML 56 R46.htm IDEA: XBRL DOCUMENT v3.23.3
Note 10 - Leases (Details Textual)
$ in Thousands, د.إ in Millions
3 Months Ended 12 Months Ended
Oct. 31, 2023
USD ($)
Oct. 31, 2022
USD ($)
Jan. 31, 2023
USD ($)
Jan. 31, 2023
AED (د.إ)
Operating Lease, Liability $ 7,063   $ 5,164  
Operating Lease, Right-of-Use Asset 6,376   4,527  
Finance Lease, Right-of-Use Asset, after Accumulated Amortization 500      
Operating Lease, Expense 700 $ 700    
Current Maturities of Long-term Debt [Member]        
Finance Lease, Liability, Current $ 100      
Minimum [Member]        
Lessee, Operating Lease, Term of Contract (Year) 1 year      
Maximum [Member]        
Lessee, Operating 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 $ 300      
Decrease in Operating Lease Liability, Noncurrent 4,000      
Decrease in Operating Lease Right-of-use Asset $ 3,600      
Decrease in Operating Lease Expense     $ 1,100  
XML 57 R47.htm IDEA: XBRL DOCUMENT v3.23.3
Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details) - USD ($)
$ in Thousands
Oct. 31, 2023
Jan. 31, 2023
Property and Equipment - net $ 35,851 $ 26,518
Total finance lease liabilities 117 164
Operating Lease, Right-of-Use Asset 6,376 4,527
Operating lease liability short-term 920 912
Operating lease liability long-term 6,143 4,252
Total operating lease liabilities 7,063 5,164
Other Current Liabilities [Member]    
Finance lease liability short-term 31 164
Operating lease liability short-term 920 912
Other Noncurrent Liabilities [Member]    
Operating lease liability long-term 6,143 4,252
Finance Leases Assets [Member]    
Property and Equipment - gross 940 1,161
Accumulated depreciation and amortization (482) (700)
Property and Equipment - net $ 458 $ 461
XML 58 R48.htm IDEA: XBRL DOCUMENT v3.23.3
Note 10 - Leases - Lease Costs (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Oct. 31, 2023
Oct. 31, 2022
Oct. 31, 2023
Oct. 31, 2022
Amortization of ROU assets $ 37 $ 62 $ 121 $ 125
Interest on lease liabilities 3 8 7 18
Operating lease costs 564 694 1,450 587
Short-term lease costs (1) [1] 99 13 350 72
Sub-lease income (20) (27) (61) (40)
Total Lease costs $ 683 $ 750 $ 1,867 $ 762
[1] Includes variable lease costs, which are immaterial.
XML 59 R49.htm IDEA: XBRL DOCUMENT v3.23.3
Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details) - USD ($)
$ in Thousands
9 Months Ended
Oct. 31, 2023
Oct. 31, 2022
Operating cash outflows from finance leases $ 7 $ 24
Operating cash outflows from operating leases 1,399 1,377
Operating leases liabilities 3,615 0
Finance leases liabilities 139 0
Finance Lease Obligations [Member]    
Financing cash outflows from finance leases $ 176 $ 251
XML 60 R50.htm IDEA: XBRL DOCUMENT v3.23.3
Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details)
Oct. 31, 2023
Finance leases (Year) 3 years 3 months 18 days
Operating leases (Year) 14 years 10 months 24 days
Finance leases 10.20%
Operating leases 8.90%
XML 61 R51.htm IDEA: XBRL DOCUMENT v3.23.3
Note 10 - Leases - Maturities of Lease Liabilities (Details) - USD ($)
$ in Thousands
Oct. 31, 2023
Jan. 31, 2023
For the three months ending January 31, 2024, operating leases $ 565  
For the three months ending January 31, 2024 9  
For the year ending January 31, 2025, operating leases 1,515  
For the year ending January 31, 2025 37  
For the year ending January 31, 2026, operating leases 1,349  
For the year ending January 31, 2026 37  
For the year ending January 31, 2027, operating leases 1,326  
For the year ending January 31, 2027 37  
For the year ending January 31, 2028, operating leases 1,273  
For the year ending January 31, 2028 9  
For the year ending January 31, 2029, operating leases 947  
For the year ending January 31, 2029 0  
Thereafter, operating leases 7,465  
Thereafter, finance leases 0  
Total lease payments, operating leases 14,440  
Total lease payments, finance leases 129  
Less: amount representing interest, operating leases (7,377)  
Less: amount representing interest, finance leases (12)  
Total lease liabilities, operating leases 7,063 $ 5,164
Total lease liabilities, finance leases $ 117 $ 164
XML 62 R52.htm IDEA: XBRL DOCUMENT v3.23.3
Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details) - USD ($)
$ in Thousands
Oct. 31, 2023
Jan. 31, 2023
Cash and cash equivalents $ 6,021 $ 5,773
Restricted cash 1,387 1,020
Cash, cash equivalents and restricted cash shown in the statement of cash flows $ 7,408 $ 6,793
XML 63 R53.htm IDEA: XBRL DOCUMENT v3.23.3
Note 14 - Treasury Stock (Details Textual) - USD ($)
$ in Millions
Jul. 26, 2022
Oct. 31, 2023
Dec. 07, 2022
Oct. 04, 2021
Stock Repurchase Program, Authorized Amount     $ 1.0 $ 3.0
Stock Repurchase Program, Authorized Repurchase Amount Used   $ 0.6    
Treasury Stock, Shares, Retired (in shares) 239,168      
XML 64 R54.htm IDEA: XBRL DOCUMENT v3.23.3
Note 14 - Treasury Stock - Repurchases of Common Stock (Details) - $ / shares
1 Months Ended 3 Months Ended
Oct. 31, 2023
Sep. 30, 2023
Aug. 31, 2023
Oct. 31, 2023
Total number of shares purchased (in shares) 0 10 62 72
Average price paid per share (in dollars per share) $ 0 $ 8.92 $ 8.64  
Approximate dollar value of shares that may yet be purchased under the plans or programs (in shares) 0 0 91 0
Publicly Announced Share Repurchase Program [Member]        
Total number of shares purchased (in shares) 0 10 62 72
XML 65 R55.htm IDEA: XBRL DOCUMENT v3.23.3
Note 15 - Noncontrolling Interests (Details Textual) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Jun. 01, 2023
Oct. 31, 2023
Oct. 31, 2022
Oct. 31, 2023
Oct. 31, 2022
Jan. 31, 2023
Net Income (Loss) Attributable to Noncontrolling Interest   $ 1,429 $ 0 $ 1,577 $ 0  
Redeemable Noncontrolling Interest, Equity, Carrying Amount   4,156   4,156   $ 0
Gulf Insulation Group [Member]            
Net Income (Loss) Attributable to Noncontrolling Interest   $ 1,400 $ 0 $ 1,600 $ 0  
Related Party [Member]            
Notes Payable $ 2,700          
Joint Venture [Member]            
Subsidiary, Ownership Percentage, Parent 60.00%          
Assets Transferred To Acquire Noncontrolling Interest $ 2,700          
Joint Venture [Member] | Gulf Insulation Group [Member]            
Assets Transferred To Acquire Noncontrolling Interest $ 2,700          
Subsidiary, Ownership Percentage, Noncontrolling Owner 40.00%          
XML 66 ppih20231031_10q_htm.xml IDEA: XBRL DOCUMENT 0000914122 2023-02-01 2023-10-31 0000914122 2023-12-07 0000914122 2023-08-01 2023-10-31 0000914122 2022-08-01 2022-10-31 0000914122 2022-02-01 2022-10-31 0000914122 2023-10-31 0000914122 2023-01-31 0000914122 ppih:LandAndBuildingsInLebanonTennesseeMember 2023-10-31 0000914122 ppih:LandAndBuildingsInLebanonTennesseeMember 2023-01-31 0000914122 us-gaap:RelatedPartyMember 2023-10-31 0000914122 us-gaap:RelatedPartyMember 2023-01-31 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 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 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 us-gaap:CommonStockMember 2023-05-01 2023-07-31 0000914122 us-gaap:AdditionalPaidInCapitalMember 2023-05-01 2023-07-31 0000914122 us-gaap:RetainedEarningsMember 2023-05-01 2023-07-31 0000914122 us-gaap:TreasuryStockCommonMember 2023-05-01 2023-07-31 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-05-01 2023-07-31 0000914122 2023-05-01 2023-07-31 0000914122 us-gaap:CommonStockMember 2023-07-31 0000914122 us-gaap:AdditionalPaidInCapitalMember 2023-07-31 0000914122 us-gaap:RetainedEarningsMember 2023-07-31 0000914122 us-gaap:TreasuryStockCommonMember 2023-07-31 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-07-31 0000914122 2023-07-31 0000914122 us-gaap:CommonStockMember 2023-08-01 2023-10-31 0000914122 us-gaap:AdditionalPaidInCapitalMember 2023-08-01 2023-10-31 0000914122 us-gaap:RetainedEarningsMember 2023-08-01 2023-10-31 0000914122 us-gaap:TreasuryStockCommonMember 2023-08-01 2023-10-31 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-08-01 2023-10-31 0000914122 us-gaap:CommonStockMember 2023-10-31 0000914122 us-gaap:AdditionalPaidInCapitalMember 2023-10-31 0000914122 us-gaap:RetainedEarningsMember 2023-10-31 0000914122 us-gaap:TreasuryStockCommonMember 2023-10-31 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-10-31 0000914122 us-gaap:CommonStockMember 2022-01-31 0000914122 us-gaap:AdditionalPaidInCapitalMember 2022-01-31 0000914122 us-gaap:RetainedEarningsMember 2022-01-31 0000914122 us-gaap:TreasuryStockCommonMember 2022-01-31 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-01-31 0000914122 2022-01-31 0000914122 us-gaap:CommonStockMember 2022-02-01 2022-04-30 0000914122 us-gaap:AdditionalPaidInCapitalMember 2022-02-01 2022-04-30 0000914122 us-gaap:RetainedEarningsMember 2022-02-01 2022-04-30 0000914122 us-gaap:TreasuryStockCommonMember 2022-02-01 2022-04-30 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-02-01 2022-04-30 0000914122 2022-02-01 2022-04-30 0000914122 us-gaap:CommonStockMember 2022-04-30 0000914122 us-gaap:AdditionalPaidInCapitalMember 2022-04-30 0000914122 us-gaap:RetainedEarningsMember 2022-04-30 0000914122 us-gaap:TreasuryStockCommonMember 2022-04-30 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-04-30 0000914122 2022-04-30 0000914122 us-gaap:CommonStockMember 2022-05-01 2022-07-31 0000914122 us-gaap:AdditionalPaidInCapitalMember 2022-05-01 2022-07-31 0000914122 us-gaap:RetainedEarningsMember 2022-05-01 2022-07-31 0000914122 us-gaap:TreasuryStockCommonMember 2022-05-01 2022-07-31 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-05-01 2022-07-31 0000914122 2022-05-01 2022-07-31 0000914122 us-gaap:CommonStockMember 2022-07-31 0000914122 us-gaap:AdditionalPaidInCapitalMember 2022-07-31 0000914122 us-gaap:RetainedEarningsMember 2022-07-31 0000914122 us-gaap:TreasuryStockCommonMember 2022-07-31 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-07-31 0000914122 2022-07-31 0000914122 us-gaap:CommonStockMember 2022-08-01 2022-10-31 0000914122 us-gaap:AdditionalPaidInCapitalMember 2022-08-01 2022-10-31 0000914122 us-gaap:RetainedEarningsMember 2022-08-01 2022-10-31 0000914122 us-gaap:TreasuryStockCommonMember 2022-08-01 2022-10-31 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-08-01 2022-10-31 0000914122 us-gaap:CommonStockMember 2022-10-31 0000914122 us-gaap:AdditionalPaidInCapitalMember 2022-10-31 0000914122 us-gaap:RetainedEarningsMember 2022-10-31 0000914122 us-gaap:TreasuryStockCommonMember 2022-10-31 0000914122 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-10-31 0000914122 2022-10-31 0000914122 us-gaap:TreasuryStockCommonMember 2023-02-01 2023-10-31 0000914122 us-gaap:TreasuryStockCommonMember 2022-02-01 2022-10-31 0000914122 us-gaap:CommonStockMember 2023-02-01 2023-10-31 0000914122 us-gaap:CommonStockMember 2022-02-01 2022-10-31 0000914122 srt:RestatementAdjustmentMember us-gaap:TreasuryStockCommonMember 2023-01-31 0000914122 srt:RestatementAdjustmentMember us-gaap:TreasuryStockCommonMember 2022-01-31 0000914122 us-gaap:UnbilledRevenuesMember 2023-02-01 2023-10-31 0000914122 us-gaap:UnbilledRevenuesMember 2022-02-01 2022-10-31 0000914122 ppih:LandAndBuildingsInLebanonTennesseeMember 2023-02-01 2023-10-31 0000914122 ppih:LandAndBuildingsInLebanonTennesseeMember 2022-02-01 2022-10-31 0000914122 ppih:FinanceLeaseObligationsMember 2023-02-01 2023-10-31 0000914122 ppih:FinanceLeaseObligationsMember 2022-02-01 2022-10-31 0000914122 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2015-12-31 0000914122 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2023-02-01 2023-10-31 0000914122 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2023-10-01 0000914122 us-gaap:OtherNoncurrentAssetsMember us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2023-10-31 0000914122 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2023-09-01 2023-09-30 0000914122 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2022-06-01 2022-06-30 0000914122 us-gaap:FinancingReceivablesEqualToGreaterThan90DaysPastDueMember 2023-07-31 0000914122 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-08-01 2023-10-31 0000914122 ppih:OneCustomerMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-08-01 2023-10-31 0000914122 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-08-01 2022-10-31 0000914122 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-02-01 2023-10-31 0000914122 us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-02-01 2022-10-31 0000914122 us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2023-02-01 2023-10-31 0000914122 ppih:TwoCustomersMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2023-02-01 2023-10-31 0000914122 us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-02-01 2023-01-31 0000914122 ppih:OneCustomerMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-02-01 2023-01-31 0000914122 us-gaap:ProductMember us-gaap:TransferredAtPointInTimeMember 2023-08-01 2023-10-31 0000914122 us-gaap:ProductMember us-gaap:TransferredAtPointInTimeMember 2022-08-01 2022-10-31 0000914122 us-gaap:ProductMember us-gaap:TransferredAtPointInTimeMember 2023-02-01 2023-10-31 0000914122 us-gaap:ProductMember us-gaap:TransferredAtPointInTimeMember 2022-02-01 2022-10-31 0000914122 ppih:SpecialtyPipingSystemsAndCoatingMember ppih:TransferredAtPointInTimeUsingInputMethodMember 2023-08-01 2023-10-31 0000914122 ppih:SpecialtyPipingSystemsAndCoatingMember ppih:TransferredAtPointInTimeUsingInputMethodMember 2022-08-01 2022-10-31 0000914122 ppih:SpecialtyPipingSystemsAndCoatingMember ppih:TransferredAtPointInTimeUsingInputMethodMember 2023-02-01 2023-10-31 0000914122 ppih:SpecialtyPipingSystemsAndCoatingMember ppih:TransferredAtPointInTimeUsingInputMethodMember 2022-02-01 2022-10-31 0000914122 ppih:SpecialtyPipingSystemsAndCoatingMember ppih:TransferredAtPointInTimeUsingOutputMethodMember 2023-08-01 2023-10-31 0000914122 ppih:SpecialtyPipingSystemsAndCoatingMember ppih:TransferredAtPointInTimeUsingOutputMethodMember 2022-08-01 2022-10-31 0000914122 ppih:SpecialtyPipingSystemsAndCoatingMember ppih:TransferredAtPointInTimeUsingOutputMethodMember 2023-02-01 2023-10-31 0000914122 ppih:SpecialtyPipingSystemsAndCoatingMember ppih:TransferredAtPointInTimeUsingOutputMethodMember 2022-02-01 2022-10-31 0000914122 us-gaap:MiddleEastMember 2023-10-31 0000914122 us-gaap:MiddleEastMember 2023-01-31 0000914122 ppih:PermaPipeCanadaLtdMember 2016-12-31 0000914122 us-gaap:RestrictedStockMember 2023-08-01 2023-10-31 0000914122 us-gaap:RestrictedStockMember 2022-08-01 2022-10-31 0000914122 us-gaap:RestrictedStockMember 2023-02-01 2023-10-31 0000914122 us-gaap:RestrictedStockMember 2022-02-01 2022-10-31 0000914122 us-gaap:EmployeeStockOptionMember 2023-01-31 0000914122 us-gaap:EmployeeStockOptionMember 2022-02-01 2023-01-31 0000914122 us-gaap:EmployeeStockOptionMember 2023-02-01 2023-10-31 0000914122 us-gaap:EmployeeStockOptionMember 2023-10-31 0000914122 us-gaap:RestrictedStockMember 2023-01-31 0000914122 us-gaap:RestrictedStockMember 2023-10-31 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 ppih:NorthAmericanLoanPartiesMember 2023-02-01 2023-04-30 0000914122 ppih:RevolvingLinesNorthAmericaMember 2023-10-31 0000914122 ppih:RevolvingLinesNorthAmericaMember 2023-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 country:AE 2021-04-14 2021-04-14 0000914122 srt:MaximumMember 2023-02-01 2023-10-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member 2023-10-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member 2023-01-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries2Member 2023-10-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByMiddleEasternSubsidiaries2Member 2023-01-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember 2021-06-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember 2023-10-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember 2022-06-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiariesMember 2023-01-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member 2021-12-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member 2023-10-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member 2022-11-30 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedByEgyptSubsidiaries2Member 2023-01-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember 2022-03-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember 2023-10-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember 2023-05-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember 2023-10-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember 2023-01-31 0000914122 ppih:ForeignRevolvingLinesMember 2023-10-01 0000914122 srt:MinimumMember ppih:ForeignRevolvingLinesMember ppih:EIBORMember 2023-02-01 2023-10-31 0000914122 srt:MaximumMember ppih:ForeignRevolvingLinesMember ppih:EIBORMember 2023-02-01 2023-10-31 0000914122 srt:MinimumMember ppih:ForeignRevolvingLinesMember 2023-10-31 0000914122 srt:MinimumMember ppih:ForeignRevolvingLinesMember ppih:CentralBankOfEqyptCbeRateMember 2023-02-01 2023-10-31 0000914122 srt:MaximumMember ppih:ForeignRevolvingLinesMember ppih:CentralBankOfEqyptCbeRateMember 2023-02-01 2023-10-31 0000914122 ppih:ForeignRevolvingLinesMember ppih:SIBORMember 2023-02-01 2023-10-31 0000914122 srt:MaximumMember ppih:ForeignRevolvingLinesMember 2023-10-31 0000914122 srt:WeightedAverageMember ppih:ForeignRevolvingLinesMember 2023-10-31 0000914122 ppih:ForeignRevolvingLinesMember 2023-10-31 0000914122 ppih:ForeignRevolvingLinesMember 2023-02-01 2023-10-31 0000914122 ppih:CanadianMortgageNoteMember 2016-07-28 2016-07-28 0000914122 ppih:CanadianMortgageNoteMember 2023-02-01 2023-10-31 0000914122 ppih:CanadianMortgageNoteMember 2023-10-31 0000914122 ppih:CanadianMortgageNoteMember 2023-01-31 0000914122 ppih:AbuDhabiLandLeaseMember 2022-02-01 2023-01-31 0000914122 ppih:AbuDhabiLandLeaseMember 2023-10-31 0000914122 srt:MinimumMember 2023-10-31 0000914122 srt:MaximumMember 2023-10-31 0000914122 ppih:CurrentMaturitiesOfLongtermDebtMember 2023-10-31 0000914122 ppih:FinanceLeasesAssetsMember 2023-10-31 0000914122 ppih:FinanceLeasesAssetsMember 2023-01-31 0000914122 us-gaap:OtherCurrentLiabilitiesMember 2023-10-31 0000914122 us-gaap:OtherCurrentLiabilitiesMember 2023-01-31 0000914122 us-gaap:OtherNoncurrentLiabilitiesMember 2023-10-31 0000914122 us-gaap:OtherNoncurrentLiabilitiesMember 2023-01-31 0000914122 2021-10-04 0000914122 2022-12-07 0000914122 2023-08-01 2023-08-31 0000914122 ppih:PubliclyAnnouncedShareRepurchaseProgramMember 2023-08-01 2023-08-31 0000914122 2023-08-31 0000914122 2023-09-01 2023-09-30 0000914122 ppih:PubliclyAnnouncedShareRepurchaseProgramMember 2023-09-01 2023-09-30 0000914122 2023-09-30 0000914122 2023-10-01 2023-10-31 0000914122 ppih:PubliclyAnnouncedShareRepurchaseProgramMember 2023-10-01 2023-10-31 0000914122 ppih:PubliclyAnnouncedShareRepurchaseProgramMember 2023-08-01 2023-10-31 0000914122 2022-07-26 2022-07-26 0000914122 ppih:JointVentureMember 2023-06-01 0000914122 ppih:JointVentureMember 2023-06-01 2023-06-01 0000914122 ppih:JointVentureMember ppih:GulfInsulationGroupMember 2023-06-01 0000914122 ppih:JointVentureMember ppih:GulfInsulationGroupMember 2023-06-01 2023-06-01 0000914122 us-gaap:RelatedPartyMember 2023-06-01 0000914122 ppih:GulfInsulationGroupMember 2023-08-01 2023-10-31 0000914122 ppih:GulfInsulationGroupMember 2022-08-01 2022-10-31 0000914122 ppih:GulfInsulationGroupMember 2023-02-01 2023-10-31 0000914122 ppih:GulfInsulationGroupMember 2022-02-01 2022-10-31 shares thunderdome:item iso4217:USD iso4217:USD shares pure utr:Y iso4217:AED iso4217:EGP iso4217:SAR iso4217:CAD 0000914122 Perma-Pipe International Holdings, Inc. false --01-31 Q3 2023 574000 612000 0.01 0.01 50000000 50000000 7951000 7951000 8004000 8004000 109000 3000 0 1 0 1 P1Y 0 0 0 P3Y P5Y P15Y 4 P5Y 300000 2042-12-23 100000 P1Y P30Y 700000 10-Q true 2023-10-31 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 8063501 45690000 37903000 110489000 106128000 32506000 26773000 81065000 78063000 13184000 11130000 29424000 28065000 5674000 5284000 16417000 16180000 1471000 1310000 4201000 3863000 7145000 6594000 20618000 20043000 6039000 4536000 8806000 8022000 -640000 -717000 -1788000 -1585000 -502000 -948000 -350000 -963000 4897000 2871000 6668000 5474000 1533000 1143000 3257000 2763000 3364000 1728000 3411000 2711000 1429000 0 1577000 0 1935000 1728000 1834000 2711000 7955000 8004000 7996000 8096000 8021000 8146000 8106000 8238000 0.24 0.22 0.23 0.33 0.24 0.21 0.23 0.33 3364000 1728000 3411000 2711000 -2035000 -2735000 -2133000 -4122000 -0 -1247000 -0 -1247000 1329000 240000 1278000 -164000 1429000 0 1577000 0 -100000 240000 -299000 -164000 6021000 5773000 1387000 1020000 47095000 42010000 16052000 14738000 7316000 7357000 14320000 11634000 2462000 3126000 94653000 85658000 35851000 26518000 6376000 4527000 639000 696000 2152000 2227000 4534000 3340000 49552000 37308000 144205000 122966000 26104000 14754000 1551000 1179000 4546000 4764000 6702000 4387000 7132000 6227000 3220000 1951000 920000 912000 3076000 5549000 904000 1743000 3383000 2324000 57538000 43790000 4158000 4389000 9114000 9215000 1142000 1608000 976000 909000 6143000 4252000 2753000 0 1252000 1019000 25538000 21392000 4156000 0 80000 80000 62991000 62562000 967000 26000 3451000 1617000 -8582000 -6449000 56973000 57784000 144205000 122966000 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 0 0 1022000 0 0 1022000 0 -274000 0 0 0 -274000 1000 -0 -0 312000 -0 311000 0 245000 0 0 0 245000 0 0 0 0 339000 339000 81000 62762000 1516000 -338000 -6547000 57474000 0 0 1935000 0 0 1935000 -1000 -0 -0 629000 -0 630000 0 229000 0 0 0 229000 0 0 0 0 -2035000 -2035000 80000 62991000 3451000 -967000 -8582000 56973000 82000 61766000 -2295000 -1992000 -3104000 54457000 0 0 -885000 0 0 -885000 0 16000 0 0 0 16000 0 236000 0 0 0 236000 0 0 0 0 -932000 -932000 82000 62018000 -3180000 -1992000 -4036000 52892000 0 0 1868000 0 0 1868000 0 -247000 0 0 0 -247000 -0 -0 -0 43000 -0 43000 2000 -0 2033000 -2035000 -0 -0 0 284000 0 0 0 284000 0 0 0 0 -455000 -455000 80000 62055000 -3345000 0 -4491000 54299000 0 0 1728000 0 0 1728000 0 9000 0 0 0 9000 0 243000 0 0 0 243000 -0 -0 -0 -0 -1247000 -1247000 0 0 0 0 -2735000 -2735000 80000 62307000 -1617000 0 -5979000 54791000 8007002 8151754 -0 4887 56499 94416 0 -234281 8063501 8007002 3411000 2711000 2774000 2781000 145000 358000 686000 763000 -0 -813000 -37000 20000 13000 -134000 5377000 4345000 1426000 1545000 -175000 -3086000 9346000 513000 1167000 126000 1272000 1250000 327000 530000 -205000 785000 2776000 7037000 1912000 -1699000 7617000 -5100000 8204000 3236000 5000 0 0 117000 -8199000 -3119000 120467000 62778000 117419000 54259000 84000 65000 179000 198000 -199000 -130000 176000 251000 941000 43000 -273000 -222000 1196000 7610000 1000 563000 615000 -46000 6793000 9771000 7408000 9725000 1754000 1505000 2546000 2107000 4357000 0 <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, 2023</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;">2023</em> and <em style="font: inherit;">2022</em> are for the fiscal year ending <em style="font: inherit;"> January 31, </em><em style="font: inherit;">2024</em> and for the fiscal year ended <em style="font: inherit;"> January 31, 2023</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, 2023</em> as filed with the SEC on <em style="font: inherit;"> April 27, 2023 </em>for discussion of the Company's significant accounting policies. During the <em style="font: inherit;">nine</em> months ended <em style="font: inherit;"> October 31, 2023</em>, the following accounting policy was adopted: </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><span style="background-color:#ffffff;">Current Expected Credit Loss</span></i></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;">In <em style="font: inherit;"> June 2016, </em>the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") <em style="font: inherit;">No.</em> <em style="font: inherit;">2016</em>-<em style="font: inherit;">13,</em> </span><i><span style="background-color:#ffffff;">Financial Instruments - Credit Losses</span></i><span style="background-color:#ffffff;"> (Topic <em style="font: inherit;">326</em>): Measurement of Credit Losses on Financial Instruments. The new guidance affects loans, debt securities, trade receivables, net investments in leases, off-balance-sheet credit exposures, reinsurance receivables, and any other financial assets <em style="font: inherit;">not</em> excluded from the scope that have the contractual right to receive cash. The amended guidance requires the application of a current expected credit loss (“CECL”) model, which measures credit losses based on relevant information about past events, including historical experience, current conditions, and reasonable and supportable forecasts. This ASU is effective for fiscal years, and interim periods within those fiscal years, beginning after <em style="font: inherit;"> December 15, 2022.  </em>The Company adopted this guidance effective <em style="font: inherit;"> February 1, 2023, </em>which was <em style="font: inherit;">not</em> material to the consolidated financial statements for the </span><em style="font: inherit;">nine</em> months ended <em style="font: inherit;"> October 31, 2023</em><span style="background-color:#ffffff;">.</span></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 <span style="background-color:#ffffff;"><em style="font: inherit;"> December 8, 2023,</em></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, 2023</em> as filed with the SEC on <em style="font: inherit;"> April 27, 2023 </em>for discussion of the Company's significant accounting policies. During the <em style="font: inherit;">nine</em> months ended <em style="font: inherit;"> October 31, 2023</em>, the following accounting policy was adopted: </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><span style="background-color:#ffffff;">Current Expected Credit Loss</span></i></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;">In <em style="font: inherit;"> June 2016, </em>the Financial Accounting Standards Board ("FASB") issued Accounting Standards Update ("ASU") <em style="font: inherit;">No.</em> <em style="font: inherit;">2016</em>-<em style="font: inherit;">13,</em> </span><i><span style="background-color:#ffffff;">Financial Instruments - Credit Losses</span></i><span style="background-color:#ffffff;"> (Topic <em style="font: inherit;">326</em>): Measurement of Credit Losses on Financial Instruments. The new guidance affects loans, debt securities, trade receivables, net investments in leases, off-balance-sheet credit exposures, reinsurance receivables, and any other financial assets <em style="font: inherit;">not</em> excluded from the scope that have the contractual right to receive cash. The amended guidance requires the application of a current expected credit loss (“CECL”) model, which measures credit losses based on relevant information about past events, including historical experience, current conditions, and reasonable and supportable forecasts. This ASU is effective for fiscal years, and interim periods within those fiscal years, beginning after <em style="font: inherit;"> December 15, 2022.  </em>The Company adopted this guidance effective <em style="font: inherit;"> February 1, 2023, </em>which was <em style="font: inherit;">not</em> material to the consolidated financial statements for the </span><em style="font: inherit;">nine</em> months ended <em style="font: inherit;"> October 31, 2023</em><span style="background-color:#ffffff;">.</span></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 <span style="background-color:#ffffff;"><em style="font: inherit;"> December 8, 2023,</em></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 consist of 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 obtained for substantially all orders. Accounts receivable are due within various time periods specified in the terms applicable to the specific contract and are stated at amounts due from customers net of any allowance for claims and credit losses. The allowance for credit losses is based on specifically identified amounts in customers' accounts, where future collectability is deemed uncertain. Management exercises 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 an amount is deemed uncollectible and all attempts to collect have been exhausted. The write-off is recorded against the allowance for credit losses. </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 $39.5 million as of <em style="font: inherit;"> October 31, 2023</em>, with a remaining balance due in the amount of $2.4 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.6 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;">Regardless of the contractual due date for payment, the Company has been actively engaged in ongoing efforts to collect this outstanding balance. The Company continues to engage with the customer to ensure full payment of the open balances. In <em style="font: inherit;"> September 2023 </em>and <em style="font: inherit;"> June </em><em style="font: inherit;">2022,</em> a partial payment was received to settle $0.4 million and $0.9 million of the customer's outstanding balances, respectively. Further, the Company has been engaged by the customer to perform additional work in <em style="font: inherit;">2022</em> and <em style="font: inherit;">2023</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:c105522966">not</span> reserve any allowance against the remaining outstanding balances as of <em style="font: inherit;"> October 31, 2023</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 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 </span><em style="font: inherit;">three</em> months ended <em style="font: inherit;"> October 31, 2023</em><span style="background-color:#ffffff;">, </span><span style="-sec-ix-hidden:c105522969">one</span><span style="background-color:#ffffff;"> customer accounted for </span>14%<span style="background-color:#ffffff;"> of the Company's consolidated net sales, and during the same period in </span><em style="font: inherit;">2022</em><span style="background-color:#ffffff;">, </span>no<span style="background-color:#ffffff;"> individual customer accounted for greater than </span><em style="font: inherit;">10%</em><span style="background-color:#ffffff;"> of the Company’s consolidated net sales. For the <em style="font: inherit;">nine</em> months ended <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;">2022</em>, no individual 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;"> October 31, 2023 </em>and <em style="font: inherit;"> January 31, 2023</em><span style="background-color:#ffffff;">, </span>two<span style="background-color:#ffffff;"> customers accounted for </span>24%<span style="background-color:#ffffff;"> of the Company's accounts receivable, and <span style="-sec-ix-hidden:c105522981">one</span> customer accounted for </span>12%<span style="background-color:#ffffff;"> of the Company's accounts receivable, respectively.</span></p> 41900000 -39500000 2400000 1600000 -400000 -900000 0.14 0 0 2 0.24 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 - Includes all bundled products in which the Company 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 - Includes 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 as evidenced by the Company’s 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> and <em style="font: inherit;">nine</em> months ended <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;">2022</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;; text-indent: 0px;"><tbody><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="14" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;">Three Months Ended October 31,</em></em></em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="14" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;">Nine Months Ended October 31,</em></em></em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="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="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">2023</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">2022</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">2023</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">2022</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="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: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Sales</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">% of Total</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Sales</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">% of Total</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Sales</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">% of Total</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Sales</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">% of Total</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;;">Products</p> </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: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">2,553</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">5</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">4,363</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">12</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">7,541</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">7</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">11,144</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">10</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">%</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Specialty Piping Systems and Coating</b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </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; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;;">Revenue recognized under input method</p> </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: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">18,641</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">41</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">12,593</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">33</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">41,779</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">38</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">35,918</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">34</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; 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;;">Revenue recognized under output method</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: 6%; 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);">24,496</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: 6%; 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);">54</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: 6%; 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);">20,947</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: 6%; 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);">55</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: 6%; 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);">61,169</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: 6%; 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);">55</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: 6%; 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);">59,066</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: 6%; 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);">56</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: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total</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; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">45,690</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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100</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; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">37,903</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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100</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; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">110,489</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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100</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; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">106,128</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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">%</td></tr> </tbody></table> <p style="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="margin: 0pt; font-family: Times New Roman; font-size: 10pt; text-align: justify;">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: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">Some of the Company’s operating entities invoice and collect milestone payments or receive 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: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">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="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.</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="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>October 31, 2023</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>January 31, 2023</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">22,560</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;">18,342</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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;">11,916</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,370</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">Earned revenue</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;">34,476</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;">27,712</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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);">32,918</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);">26,329</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">Costs in excess of billings, net</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);">1,558</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);">1,383</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> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">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;"> </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,462</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;">3,126</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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;">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;"> </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);">(904</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);">(1,743</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">Costs in excess of billings, net</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);">1,558</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);">1,383</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-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;"> October 31, 2023</em> will be billed and collected within <span style="-sec-ix-hidden:c105523016">one</span> year, and all billings on uncompleted contracts as of <em style="font: inherit;"> October 31, 2023</em></span><span style="background-color: rgb(255, 255, 255);"><span style="font-family: Times New Roman;"> will </span></span><span style="background-color: rgb(255, 255, 255);"><span style="font-family: Times New Roman;">be satisfied and collected within <em style="font: inherit;">one</em> year. </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>14.3</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 $11.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;"> October 31, 2023 </em>and <em style="font: inherit;"> January 31, 2023</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 in accordance with the terms of the contract. The Company anticipates that substantially all of the amounts included in unbilled accounts receivable as of </span><em style="font: inherit;"> October 31, 2023</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 the Company's contracts are generally less than <em style="font: inherit;">one</em> year, the Company has applied the practical expedient 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;; text-indent: 0px;"><tbody><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="14" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;">Three Months Ended October 31,</em></em></em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="14" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;">Nine Months Ended October 31,</em></em></em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="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="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">2023</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">2022</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">2023</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">2022</em></em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="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: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Sales</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">% of Total</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Sales</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">% of Total</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Sales</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">% of Total</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Sales</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">% of Total</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;;">Products</p> </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: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">$</td><td style="width: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">2,553</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">5</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">4,363</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">12</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">7,541</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">7</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">11,144</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">10</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">%</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Specialty Piping Systems and Coating</b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </b></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt;"><b> </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; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;;">Revenue recognized under input method</p> </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: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0"> </td><td style="width: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">18,641</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">41</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">12,593</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">33</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">41,779</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">38</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">35,918</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: &quot;Times New Roman&quot;; 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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding: 0; margin: 0">34</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; 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;; 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;;">Revenue recognized under output method</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: 6%; 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);">24,496</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: 6%; 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);">54</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: 6%; 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);">20,947</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: 6%; 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);">55</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: 6%; 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);">61,169</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: 6%; 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);">55</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: 6%; 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);">59,066</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: 6%; 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);">56</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: &quot;Times New Roman&quot;; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total</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; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">45,690</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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100</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; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">37,903</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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100</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; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">110,489</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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100</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; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">106,128</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: 6%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">%</td></tr> </tbody></table> 2553000 0.05 4363000 0.12 7541000 0.07 11144000 0.10 18641000 0.41 12593000 0.33 41779000 0.38 35918000 0.34 24496000 0.54 20947000 0.55 61169000 0.55 59066000 0.56 45690000 1 37903000 1 110489000 1 106128000 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="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>October 31, 2023</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>January 31, 2023</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">22,560</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;">18,342</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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;">11,916</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,370</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">Earned revenue</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;">34,476</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;">27,712</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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);">32,918</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);">26,329</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">Costs in excess of billings, net</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);">1,558</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);">1,383</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> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">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;"> </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,462</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;">3,126</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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;">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;"> </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);">(904</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);">(1,743</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">Costs in excess of billings, net</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);">1,558</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);">1,383</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> 22560000 18342000 11916000 9370000 34476000 27712000 32918000 26329000 1558000 1383000 2462000 3126000 904000 1743000 1558000 1383000 14300000 11600000 <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. Income earned in the <span style="background-color:#ffffff;">U.A.E. is <em style="font: inherit;">not</em> subject to local country income tax. Additionally, the relative proportion of taxable income earned domestically versus internationally can fluctuate significantly from period to period. Changes in the estimated level of </span>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;"> October 31, 2023 </em>and <em style="font: inherit;">2022</em><span style="background-color:#ffffff;"> were </span>31%<span style="background-color:#ffffff;"> and </span>40%<span style="background-color:#ffffff;">, respectively. The change in the ETR is due primarily to the inability to recognize tax benefits due to losses incurred in the United States resulting in a full valuation allowance and due to changes in the mix of income and loss in various jurisdictions.</span></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. The Company's liability was $0.9 million as of <em style="font: inherit;"> October 31, 2023</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.31 0.40 900000 <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. During <em style="font: inherit;"> October 31, 2023</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 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 for the <em style="font: inherit;">three</em> and <em style="font: inherit;">nine</em> months ended <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;">2022</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 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;"> October 31, 2023 </em>and <em style="font: inherit;"> January 31, 2023</em> was 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="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>January 31, 2023</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>Foreign exchange change effect</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>October 31, 2023</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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,227</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;">(75</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,152</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; text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">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 at the measurement date. During <em style="font: inherit;"> October 31, 2023</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 for the Three and Nine Months Ended <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;">2022</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="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>January 31, 2023</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>Foreign exchange change effect</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>October 31, 2023</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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,227</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;">(75</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,152</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> </tbody></table> 2227000 -75000 2152000 <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 has prior incentive plans under which previously granted awards remain outstanding but under which <em style="font: inherit;">no</em> new awards <em style="font: inherit;"> may </em>be granted. At <em style="font: inherit;"> October 31, 2023</em> the Company had reserved a total of 250,448<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;">The Company's prior incentive plans 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 prior incentive plans 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: Times New Roman; text-indent: 0px;"><tbody><tr class="finHeading" style="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="6" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Three Months Ended October 31,</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 colspan="6" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Nine Months Ended October 31,</b></p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr class="finHeading" style="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>2023</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>2022</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>2023</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>2022</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: Times New Roman; font-size: 10pt; width: 52%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Restricted stock-based compensation expense</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">229</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">243</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">686</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">763</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; 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:c105523152"><span style="-sec-ix-hidden:c105523153">not</span></span> grant any stock options during the <em style="font: inherit;">three</em> or <em style="font: inherit;">nine</em> months ended <em style="font: inherit;"> October 31, 2023</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="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>Options</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>Weighted Average Exercise Price (Per share)</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>Weighted Average Remaining Contractual Term (In years)</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>Aggregate Intrinsic Value</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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, 2023</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;">40</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;">10.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;">1.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; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">19</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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);">(17</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);">10.60</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="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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 October 31, 2023</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);">22</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.15</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.9</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);">1</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;">nine</em> months ended <em style="font: inherit;"> October 31, 2023</em></span><span style="background-color:#ffffff;">. As of <em style="font: inherit;"> October 31, 2023</em></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;">nine</em> months ended <em style="font: inherit;"> October 31, 2023</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="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>Restricted Shares</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>Weighted Average Price (Per share)</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>Aggregate Intrinsic Value</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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, 2023</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;">267</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;">8.55</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,286</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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;">91</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;">10.26</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">(84</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;">8.43</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="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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);">(47</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);">9.23</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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 October 31, 2023</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);">228</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.35</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,133</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;"> October 31, 2023</em>, there was $1.3<span style="background-color:#ffffff;"> million</span> of unrecognized compensation expense related to unvested restricted stock granted under the plans. That cost is expected to be recognized over a weighted average period of 2.0<span style="background-color:#ffffff;"> years</span>.</p> 250448 <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="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="6" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Three Months Ended October 31,</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 colspan="6" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b>Nine Months Ended October 31,</b></p> </td><td style="font-family: Times New Roman; font-size: 10pt;"> </td></tr> <tr class="finHeading" style="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>2023</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>2022</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>2023</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>2022</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: Times New Roman; font-size: 10pt; width: 52%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Restricted stock-based compensation expense</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">229</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">243</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">686</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">763</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> </tbody></table> 229000 243000 686000 763000 <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="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>Options</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>Weighted Average Exercise Price (Per share)</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>Weighted Average Remaining Contractual Term (In years)</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>Aggregate Intrinsic Value</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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, 2023</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;">40</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;">10.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;">1.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; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">19</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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);">(17</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);">10.60</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="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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 October 31, 2023</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);">22</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.15</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.9</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);">1</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> 40000 10.85 P1Y1M6D 19000 1000 6.85 2000 17000 10.6 22000 11.15 P0Y10M24D 1000 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="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>Restricted Shares</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>Weighted Average Price (Per share)</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>Aggregate Intrinsic Value</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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, 2023</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;">267</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;">8.55</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,286</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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;">91</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;">10.26</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">(84</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;">8.43</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="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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);">(47</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);">9.23</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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 October 31, 2023</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);">228</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.35</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,133</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> 267000 8.55 2286000 91000 10.26 84000 8.43 47000 9.23 228000 9.35 2133000 1300000 P2Y <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: 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="6" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended October 31,</em></em></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 colspan="6" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Nine Months Ended October 31,</em></em></b></p> </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; width: 52%;"> </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;">2023</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;">2022</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;">2023</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;">2022</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;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Basic weighted average common shares outstanding at October 31, 2023</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">7,955</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">8,004</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">7,996</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">8,096</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;">Dilutive effect of equity compensation plans</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">66</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">142</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">110</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">142</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;">Weighted average common shares outstanding assuming full dilution</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: 9%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,021</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: 9%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,146</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: 9%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,106</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: 9%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,238</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(255, 255, 255); vertical-align: bottom"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="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;">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: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">122</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">105</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">18</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">105</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;">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: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">66</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">142</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">170</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">142</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> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="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;;">Net income attributable to common stock</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">1,935</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">1,728</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">1,834</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">2,711</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> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="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;">Earnings per share attributable to common stock</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><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;;">Basic</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.24</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.22</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.23</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.33</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: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;;">Diluted</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.24</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.21</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.23</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.33</td><td style="width: 1%; font-family: Times New Roman; 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: 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="6" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended October 31,</em></em></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 colspan="6" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Nine Months Ended October 31,</em></em></b></p> </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; width: 52%;"> </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;">2023</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;">2022</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;">2023</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;">2022</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;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Basic weighted average common shares outstanding at October 31, 2023</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">7,955</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">8,004</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">7,996</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">8,096</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;">Dilutive effect of equity compensation plans</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">66</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">142</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">110</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">142</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;">Weighted average common shares outstanding assuming full dilution</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: 9%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,021</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: 9%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,146</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: 9%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,106</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: 9%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,238</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(255, 255, 255); vertical-align: bottom"><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="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;">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: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">122</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">105</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">18</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">105</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;">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: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">66</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">142</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">170</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">142</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> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="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;;">Net income attributable to common stock</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">1,935</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">1,728</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">1,834</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">2,711</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> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr> <tr style="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;">Earnings per share attributable to common stock</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><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;;">Basic</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.24</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.22</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.23</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.33</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: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;;">Diluted</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.24</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.21</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.23</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0">0.33</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; padding: 0; margin: 0"> </td></tr> </tbody></table> 7955000 8004000 7996000 8096000 66000 142000 110000 142000 8021000 8146000 8106000 8238000 122000 105000 18000 105000 66000 142000 170000 142000 1935000 1728000 1834000 2711000 0.24 0.22 0.23 0.33 0.24 0.21 0.23 0.33 <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.2 million and $24.3 million at <em style="font: inherit;"> October 31, 2023</em> and <em style="font: inherit;"> January 31, 2023</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:c105523254">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:c105523256">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 or the Secured Overnight Financing Rate (as defined in the Renewed Senior Credit Facility, "SOFR"), 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 <span style="background-color:#ffffff;">1.00% to 1.50%</span>, based on the FCCR in the most recently reported period. Interest on SOFR borrowings is SOFR plus an applicable margin ranging from <span style="background-color:#ffffff;">2.00% to 2.50%</span>, based on the FCCR in the most recently reported pe<span style="background-color:#ffffff;">riod, as well as an additional SOFR adjustment ranging from 0.10% to 0.25%, based on the term of the interest period.</span> Additionally, the Borrowers pay a<span style="background-color:#ffffff;"> 0.25%</span> 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: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">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 any 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="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;">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 of <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. As of </span><em style="font: inherit;"> October 31, 2023</em><span style="background-color:#ffffff;">, the calculated ratio was less than 1.10 to <em style="font: inherit;">1.00.</em> 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 North American Loan Parties' EBITDA, would result in compliance on a pro forma basis. The Company was in compliance with respect to these covenants as of </span><em style="font: inherit;"> October 31, 2023</em><span style="background-color:#ffffff;">.</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;">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;"> October 31, 2023</em>, the Company had borrowed an aggregate of <span style="background-color:#ffffff">$6.7</span><span style="background-color:#ffffff"> million at a rate of 10.0%</span><span style="background-color:#ffffff"> and had $4.6</span><span style="background-color:#ffffff"> million available under the Renewed Senior Credit Facility. As of <em style="font: inherit;"> January 31, 2023</em>, the Company had borrowed an aggregate of $4.4 million and had $9.9 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:c105523288">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:c105523291">four</span> consecutive options to extend the term of the lease by <span style="-sec-ix-hidden:c105523292">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.1 million is recognized in current maturities of long-term debt and the long-term portion of $9.1 million is recognized in long-term finance obligation on the Company's consolidated balance sheets as of <em style="font: inherit;"> October 31, 2023</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;"> October 31, 2023</em>) from a bank in the U.A.E. As of <em style="font: inherit;"> October 31, 2023</em> the facility has an interest rate of approximately 9.0% and is set to expire in <em style="font: inherit;"> May 2024. </em>The Company had borrowed an aggregate of $0.1 million and $0.6 million as of <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;"> January 31, 2023</em>, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. </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 19.5 million U.A.E. Dirhams (approximately $5.3 million at <em style="font: inherit;"> October 31, 2023</em>) from a bank in the U.A.E. As of <em style="font: inherit;"> October 31, 2023</em> the facility has an interest rate of approximately 9.0% and is set to expire in <em style="font: inherit;"> May 2024. </em>The Company had borrowed an aggregate of $1.3 million and $1.1 million as of <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;"> January 31, 2023</em>, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. </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> <p style="margin: 0px; text-align: justify; font-family: Times New Roman; font-size: 10pt;">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;">$3.2</span><span style="background-color:#ffffff;"> million</span> at <em style="font: inherit;"> October 31, 2023</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;"> October 31, 2023</em> the facility has an interest rate of approximately 8.0%<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 2022 </em>with substantially the same terms and conditions, expect for the facility interest rate which increased to 20.8%, and expired in <em style="font: inherit;"> August 2023. </em></span>The Company is in regular communication with the bank throughout the renewal process and the facility has continued without interruption or penalty. The Company had borrowed an aggregate of $1.6 million and $3.1 million as of <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;"> January 31, 2023</em>, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. </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;"> 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 8.9 million Egyptian Pounds (approximatel<span style="background-color:#ffffff;">y $0.3</span><span style="background-color:#ffffff;"> mi</span>llion at <em style="font: inherit;"> October 31, 2023</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 20.8%</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.3 million outstanding as of <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;"> January 31, 2023</em>, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets.                                       </p> <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;"> October 31, 2023</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 2023, </em>and the line was increased to <span style="background-color:#ffffff;">37.0 million</span> Saudi Riyal (approximately $9.9 million at <em style="font: inherit;"> October 31, 2023</em>). As of <em style="font: inherit;"> October 31, 2023</em>, the facility has an interest rate of approximately 9.5% and is set to expire in <em style="font: inherit;"> May 2024. </em>The Company had borrowed an aggregate of $3.8 million and $1.1 million as of <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;"> January 31, 2023</em>, respectively, and is presented as a component of current maturities of long-term debt in the Company's consolidated balance sheets. </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. As of <em style="font: inherit;"> October 31, 2023</em>, the amount of foreign subsidiary debt guaranteed by the Company was approxim<span style="background-color:#ffffff;">ately $0.1 million. </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;"> October 31, 2023</em>, with the exception of those arrangements that have expired 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;"> October 31, 2023</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;"> October 31, 2023</em>, the Company's interest rates ranged from 8.0% to 20.8%, with a weighted average rate of 12.1%, and the Company had facility limits totaling <span style="background-color:#ffffff;">$27.2</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;"> October 31, 2023</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;"> October 31, 2023</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;">$9.5</span><span style="background-color:#ffffff;"> million</span> and had an additional <span style="background-color:#ffffff;">$13.7</span><span style="background-color:#ffffff;"> million</span> of </span>borrowing remaining available under the foreign revolving credit arrangements. The foreign revolving lines balances as of <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;"> January 31, 2023</em>, were included as current maturities of long-term debt in the Company's consolidated balance sheets. </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:c105523361">23,</span> <em style="font: inherit;">2042.</em> As of <em style="font: inherit;"> October 31, 2023</em>, the remaining balance on the mortgage in Canada is approximately CAD 6.1 million (approximately $4.4 million at <em style="font: inherit;"> October 31, 2023</em>). The interest rate is variable, and was 9.1%<span style="background-color:#ffffff;"> </span>at <em style="font: inherit;"> October 31, 2023</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;"> October 31, 2023 </em>and <em style="font: inherit;"> January 31, 2023</em>, respectively.</p> 27200000 24300000 18000000 18000000 0.01 0.015 0.02 0.025 0.001 0.0025 0.0025 5000000 3000000 1.1 3000000 2000000 1.1 0.02 6700000 0.10 4600000 4400000 9900000 10400000 9100000 900000 800000 0.02 0.08 100000 9100000 8000000 2200000 0.09 100000 600000 19500000 5300000 0.09 1300000 1100000 100000000 3200000 0.08 0.208 1600000 3100000 28200000 8900000 300000 0.208 0 300000 37000000 9900000 37000000 9900000 0.095 3800000 1100000 100000 0.03 0.035 0.045 0.015 0.035 0.035 0.08 0.208 0.121 27200000 6700000 9500000 13700000 6100000 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;"><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 (approximately $0.3 million), 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;">2023.</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;"> October 31, 2023</em><span style="background-color:#ffffff;">. The termination resulted in decreases of $0.3 million, $4.0 million and $3.6 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;"> October 31, 2023</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></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>Finance Leases. </b></i>The Company has several significant operating lease agreements, with lease terms of <span style="-sec-ix-hidden:c105523391">one</span> to <span style="-sec-ix-hidden:c105523392">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 right-of-use ("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;"> October 31, 2023</em>, the Company had total operating lease liabilities of <span style="background-color:#ffffff;">$7.1 </span>million and operating ROU assets of <span style="background-color:#ffffff;">$6.4</span><span style="background-color:#ffffff;"> million</span>, which are reflected in the consolidated balance sheets. At <em style="font: inherit;"> October 31, 2023</em>, 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.5 million which were included in property plant and equipment, net of accumulated depreciation 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><em style="font: inherit;">October 31, 2023</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: &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><em style="font: inherit;">January 31, 2023</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;"> <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;">Property and Equipment - gross</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;">940</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;">1,161</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;">Accumulated depreciation and amortization</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);">(482</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);">(700</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: 0pt;">Property and Equipment - net</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);">458</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);">461</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;">Finance lease liability short-term</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">31</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; 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; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">164</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="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: 0pt;">Total finance lease liabilities</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);">117</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);">164</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;">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(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 lease ROU assets</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">6,376</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">4,527</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;"> </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 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(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 liability short-term</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">920</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">912</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: &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;">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;"> </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,143</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);">4,252</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: &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: 18pt;">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;"> </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,063</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);">5,164</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: 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;"><em style="font: inherit;"> </em></td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended October 31,</em></em></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 colspan="6" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Nine Months Ended October 31,</em></em></b></p> </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; width: 18.8%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Lease costs</b></p> </td><td style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; width: 33.2%;"> <p style="font-family:Times New Roman;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: 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;">2023</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;">2022</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;">2023</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;">2022</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;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Finance Lease Costs</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><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: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Amortization of ROU assets</p> </td><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><em style="font: inherit;">Cost of sales</em></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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">37</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">62</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">121</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">125</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;">Interest on lease liabilities</p> </td><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><em style="font: inherit;">Interest expense</em></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: 9%; 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;"> </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: 9%; 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;"> </td><td style="width: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">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;"> </td><td style="width: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">18</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;">Operating lease costs</p> </td><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;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: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">564</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">694</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">1,450</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">587</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;">Short-term lease costs (1)</p> </td><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;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: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">99</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">13</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">350</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">72</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;">Sub-lease income</p> </td><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;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: 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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(20</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(27</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(61</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(40</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(204, 238, 255); vertical-align: bottom"><td colspan="2" style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Total Lease costs</em></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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">683</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">750</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1,867</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">762</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="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;">Nine Months Ended October 31,</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;">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);"> </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;">2022</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;">176</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;">251</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;">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;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">24</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;">1,399</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;">1,377</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 liabilities 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">3,615</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"><em style="font: inherit;"> </em></td></tr> </tbody></table> <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;">Nine Months Ended October 31,</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-color: rgb(0, 0, 0); border-bottom-width: 1px; border-bottom-style: solid;"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt; font-variant: normal;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 1px; border-bottom-style: solid;"><span style="color: rgb(0, 0, 0);"> </span></td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 1px; border-bottom-style: solid;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 1px; border-bottom-style: solid;"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt; font-variant: normal;"><b><em style="font: inherit;">2022</em></b></p> </td><td style="padding-bottom: 1px; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px 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; font-variant: normal; margin: 0pt;"><b>ROU liabilities obtained in exchange for new lease obligations:</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; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;;">Finance 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">139</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"><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; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating leases liabilities</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,615</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;"><em style="font: inherit;"> </em></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;">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;">October 31, 2023</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.3</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;">14.9</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;">10.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="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;">8.9</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;"> October 31, 2023</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: 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 three 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;">565</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</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 ending January 31, 2025</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,515</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;">37</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 ending 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,349</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;">37</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 ending 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,326</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;">37</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 ending 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,273</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(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 ending 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;">947</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);">7,465</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);">14,440</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);">129</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: &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;;">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);">(7,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);">(12</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: &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;;">Total lease liabilities at October 31, 2023</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);">7,063</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);">117</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.7 <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;"> October 31, 2023</em> and <em style="font: inherit;">2022</em>, respectively.</p> 1200000 300000 300000 4000000 3600000 1100000 7100000 6400000 100000 500000 <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><em style="font: inherit;">October 31, 2023</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: &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><em style="font: inherit;">January 31, 2023</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;"> <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;">Property and Equipment - gross</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;">940</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;">1,161</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;">Accumulated depreciation and amortization</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);">(482</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);">(700</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: 0pt;">Property and Equipment - net</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);">458</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);">461</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;">Finance lease liability short-term</p> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">31</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; 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; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">164</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="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: 0pt;">Total finance lease liabilities</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);">117</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);">164</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;">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(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 lease ROU assets</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">6,376</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">4,527</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;"> </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 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(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 liability short-term</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">920</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">912</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: &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;">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;"> </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,143</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);">4,252</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: &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: 18pt;">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;"> </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,063</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);">5,164</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> 940000 1161000 482000 700000 458000 461000 31000 164000 117000 164000 6376000 4527000 920000 912000 6143000 4252000 7063000 5164000 <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;"><em style="font: inherit;"> </em></td><td style="font-family: Times New Roman; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Three Months Ended October 31,</em></em></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 colspan="6" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;"><em style="font: inherit;">Nine Months Ended October 31,</em></em></b></p> </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; width: 18.8%;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Lease costs</b></p> </td><td style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; width: 33.2%;"> <p style="font-family:Times New Roman;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: 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;">2023</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;">2022</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;">2023</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;">2022</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;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Finance Lease Costs</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><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: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;">Amortization of ROU assets</p> </td><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><em style="font: inherit;">Cost of sales</em></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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">37</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">62</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">121</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">125</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;">Interest on lease liabilities</p> </td><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;margin:0pt;"><em style="font: inherit;">Interest expense</em></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: 9%; 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;"> </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: 9%; 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;"> </td><td style="width: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">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;"> </td><td style="width: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">18</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;">Operating lease costs</p> </td><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;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: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">564</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">694</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">1,450</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">587</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;">Short-term lease costs (1)</p> </td><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;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: Times New Roman; font-size: 10pt;"> </td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt;"> </td><td style="width: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">99</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">13</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">350</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">72</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;">Sub-lease income</p> </td><td style="font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:Times New Roman;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: 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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(20</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(27</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(61</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(40</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(204, 238, 255); vertical-align: bottom"><td colspan="2" style="font-family: Times New Roman; font-size: 10pt;"> <p style="font-family: Times New Roman; font-size: 10pt; font-variant: normal; margin: 0pt;"><em style="font: inherit;">Total Lease costs</em></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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">683</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">750</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1,867</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: 9%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">762</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> 37000 62000 121000 125000 3000 8000 7000 18000 564000 694000 1450000 587000 99000 13000 350000 72000 20000 27000 61000 40000 683000 750000 1867000 762000 <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;">Nine Months Ended October 31,</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;">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);"> </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;">2022</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;">176</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;">251</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;">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;"> </td><td style="width: 12%; text-align: right; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">24</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;">1,399</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;">1,377</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 liabilities 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">3,615</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"><em style="font: inherit;"> </em></td></tr> </tbody></table> <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;">Nine Months Ended October 31,</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-color: rgb(0, 0, 0); border-bottom-width: 1px; border-bottom-style: solid;"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt; font-variant: normal;"><b><em style="font: inherit;">2023</em></b></p> </td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 1px; border-bottom-style: solid;"><span style="color: rgb(0, 0, 0);"> </span></td><td style="font-family: Times New Roman; font-size: 10pt; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 1px; border-bottom-style: solid;"> </td><td colspan="2" style="text-align: center; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt; border-bottom-color: rgb(0, 0, 0); border-bottom-width: 1px; border-bottom-style: solid;"> <p style="margin: 0pt; text-align: center; font-family: Times New Roman; font-size: 10pt; font-variant: normal;"><b><em style="font: inherit;">2022</em></b></p> </td><td style="padding-bottom: 1px; font-family: Times New Roman; font-size: 10pt; border-bottom: 1px 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; font-variant: normal; margin: 0pt;"><b>ROU liabilities obtained in exchange for new lease obligations:</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; padding: 0; margin: 0"> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;;">Finance 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">139</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"><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; font-variant: normal; margin: 0pt 0pt 0pt 9pt;">Operating leases liabilities</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,615</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;"><em style="font: inherit;"> </em></td></tr> </tbody></table> 176000 251000 7000 24000 1399000 1377000 3615000 0 139000 0 3615000 0 <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;">October 31, 2023</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.3</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;">14.9</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;">10.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="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;">8.9</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;">%</td></tr> </tbody></table> P3Y3M18D P14Y10M24D 0.102 0.089 <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 three 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;">565</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</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 ending January 31, 2025</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,515</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;">37</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 ending 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,349</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;">37</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 ending 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,326</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;">37</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 ending 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,273</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(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 ending 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;">947</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);">7,465</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);">14,440</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);">129</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: &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;;">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);">(7,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);">(12</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: &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;;">Total lease liabilities at October 31, 2023</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);">7,063</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);">117</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> 565000 9000 1515000 37000 1349000 37000 1326000 37000 1273000 9000 947000 0 7465000 0 14440000 129000 7377000 12000 7063000 117000 700000 <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="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>October 31, 2023</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>January 31, 2023</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">6,021</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,773</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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,387</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,020</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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);">7,408</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);">6,793</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="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>October 31, 2023</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>January 31, 2023</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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;">6,021</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,773</td><td style="width: 1%; font-family: Times New Roman; font-size: 10pt; margin-left: 0pt;"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><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,387</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,020</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="vertical-align: bottom; background-color: rgb(204, 238, 255);"><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);">7,408</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);">6,793</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> 6021000 5773000 1387000 1020000 7408000 6793000 <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 reasonable estimates of their 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;">three</em> months ended <em style="font: inherit;"> October 31, 2023</em> the Company used the remaining $0.6 million of the $1.0 million authorized to repurchase its outstanding shares of common stock.</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; margin: 0pt; text-align: left;">The following table sets forth the 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;"> October </em><em style="font: inherit;">31,</em> <em style="font: inherit;">2023:</em></p> <p style="font-family: Times New Roman; 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: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 1141px;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Period</b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 11px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 96px;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Total number of shares purchased</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 13px;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 13px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 103px;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Average price paid (per share)</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 12px;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 13px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 122px;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Total number of shares purchased as part of publicly announced plans or programs</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 12px;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 12px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 109px;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Approximate dollar value of shares that may yet be purchased under the plans or programs</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 11px;"> </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; width: 1141px;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">August 1, 2023 - August 31, 2023</p> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 83px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">62</td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 87px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">8.64</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 107px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">62</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 95px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">91</td><td style="width: 11px; 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; width: 1141px;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">September 1, 2023 - September 30, 2023</p> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 83px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">10</td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 87px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">8.92</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 107px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">10</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 95px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; width: 1141px;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">October 1, 2023 - October 31, 2023</p> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 83px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 87px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 107px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 95px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 1141px;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total</p> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 83px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">72</td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 13px;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 14px;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 87px;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 12px;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 107px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">72</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 12px;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 12px;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 95px;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 11px;"> </td></tr> </tbody></table> <p style="font-family: Times New Roman; font-size: 10pt; margin: 0pt; text-align: left;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin: 0pt; text-align: justify;"><span style="background-color:#ffffff;">On <em style="font: inherit;"> July 26, 2022, </em>the Company retired 239,168 shares of treasury stock previously repurchased under the stock repurchase program. The retirement was recorded as a reduction to common stock based on the par value of the shares, and the excess over par value was recorded as a decrease to retained earnings in accordance with ASC <em style="font: inherit;">505</em>-<em style="font: inherit;">30,</em> </span><i><span style="background-color:#ffffff;">Equity - Treasury Stock.</span></i></p> 3000000 1000000 600000 1000000 <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;; text-indent: 0px;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 1141px;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;"><b>Period</b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 11px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 96px;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Total number of shares purchased</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 13px;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 13px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 103px;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Average price paid (per share)</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 12px;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 13px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 122px;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Total number of shares purchased as part of publicly announced plans or programs</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 12px;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 12px;"> </td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 109px;"> <p style="font-family:Times New Roman;font-size:10pt;font-variant:normal;text-align:center;margin:0pt;"><b><em style="font: inherit;">Approximate dollar value of shares that may yet be purchased under the plans or programs</em></b></p> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0); width: 11px;"> </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; width: 1141px;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">August 1, 2023 - August 31, 2023</p> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 83px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">62</td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 87px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">8.64</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 107px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">62</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 95px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">91</td><td style="width: 11px; 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; width: 1141px;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">September 1, 2023 - September 30, 2023</p> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 83px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">10</td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 14px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 87px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">8.92</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 107px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">10</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;"> </td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 95px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; 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;; font-size: 10pt; width: 1141px;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">October 1, 2023 - October 31, 2023</p> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; padding-bottom: 1px;"> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 83px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 14px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 87px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 107px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 95px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; width: 1141px;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt;">Total</p> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt;"> </td><td style="width: 11px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 83px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">72</td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 13px;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 14px;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 87px;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 12px;"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 13px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 107px; text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">72</td><td style="width: 12px; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); margin-left: 0pt;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 12px;"> </td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 12px;"> </td><td style="text-align: right; font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 95px;"><em style="font: inherit;"> </em></td><td style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0); width: 11px;"> </td></tr> </tbody></table> 62 8.64 62 91 10 8.92 10 0 0 0 0 0 72 72 239168 <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> <div style="font-size: 10pt; margin: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">The Company has a controlling financial interest in a certain investment 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. 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 is included in the Company's consolidated financial statements. The Company adjusts net income in the consolidated statements of operations to exclude the proportionate share of results that is attributable to non-controlling interest. Additionally, the Company presents the proportionate share that is attributable to 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 any time after <em style="font: inherit;">five</em> years following the date of incorporation. Further, the put option did <em style="font: inherit;">not</em> meet 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. </p> <p style="margin: 0pt; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;">On <em style="font: inherit;"> June 1, 2023, </em>the Company closed on its formation of the joint venture ("The JV Agreement") with Gulf Insulation Group ("GIG") a leading provider of pre-insulated piping systems, leak detection systems, and pipe fabrication, in which the Company acquired a 60% controlling interest in exchange for consideration of $2.7 million, consisting of land and equipment. The Company expects this collaborative business arrangement to result in expanding its market presence in Saudi Arabia, Kuwait, and Bahrain. 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 combination. As such, the assets transferred by the Company were recorded at historical cost, and <em style="font: inherit;">no</em> gain was recognized as a result of this exchange. Further, the other party to this business arrangement acquired a 40% non-controlling interest by contributing assets of approximately $2.7 million, mainly consisting of land and equipment. The non-controlling interest attributable to the other party was recorded at its estimated fair value as of the investment date, and <em style="font: inherit;">no</em> gain was recognized as a result of this exchange. In connection with the joint venture, the Company agreed to a promissory note in the principal amount $2.7 million payable to the related party contained in this agreement. The principal amount is presented within the note payable to GIG caption in the Company's consolidated balance sheets. </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"> </p> <p style="font-family: &quot;Times New Roman&quot;; font-size: 10pt; font-variant: normal; margin: 0pt; text-align: justify;"><span style="background-color:#ffffff;">Net income attributable to GIG was $</span>1.4<span style="background-color:#ffffff;"> million and $</span>0.0<span style="background-color:#ffffff;"> million for the </span><em style="font: inherit;">three</em> months ended <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;">2022</em><span style="background-color:#ffffff;">, respectively. Net income attributable to GIG was $</span>1.6<span style="background-color:#ffffff;"> million and $</span>0.0<span style="background-color:#ffffff;"> million for the </span><em style="font: inherit;">nine</em> months ended <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;">2022</em><span style="background-color:#ffffff;">, 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.</span></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;"><span style="background-color:#ffffff;">The Company had carrying amounts attributable to non-controlling interest of $</span>4.2<span style="background-color:#ffffff;"> million and $</span>0.0<span style="background-color:#ffffff;"> million recorded within temporary equity at <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;"> January 31, 2023</em></span><span style="background-color:#ffffff;">, respectively. There were <em style="font: inherit;">no</em> dividends or any other forms of distributions from non-controlling interest as of <em style="font: inherit;"> October 31, 2023 </em>and <em style="font: inherit;"> January 31, 2023</em></span><span style="background-color:#ffffff;">, respectively. </span></p> </div> 0.60 2700000 0.40 2700000 2700000 1400000 0 1600000 0 4200000 0 <p style="font-family: Times New Roman; font-size: 10pt; margin: 0pt; text-align: left;"><b>Note <em style="font: inherit;">16</em> - Contingencies</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;">The Company is subject to various legal proceedings and claims that arise in the ordinary course of business, including those involving environmental, tax, product liability and general liability claims. The Company accrues for such liabilities when it is probable that future costs will be incurred and such costs can be reasonably estimated. Such accruals are based on developments to date, the Company's estimates of the outcomes with respect to these matters, and its experience in contesting, litigating and settling other similar matters.</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;">As of <em style="font: inherit;"> October 31, 2023, </em>the Company is actively involved in certain legal proceedings that are ongoing and for which the ultimate outcome remains uncertain. For all other legal proceedings, the Company does <em style="font: inherit;">not</em> currently anticipate that the ultimate liability with respect to these matters will materially affect the Company's financial position, liquidity or future operations.</p> <p style="font-family: Times New Roman; font-size: 10pt; margin: 0pt; text-align: left;"> </p> Includes variable lease costs, which are immaterial. EXCEL 67 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( .](B%<'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 " #O2(A7.!,+M.\ K @ $0 &1O8U!R;W!S+V-O&ULS9)1 M2\,P$,>_BN2]O:05E=#E9<,G!<&!XEM(;EM8TX;DI-VW-ZU;A^@'\#%W__SN M=W"-"=+T$5]B'S"2PW0S^K9+TH05.Q %"9#, ;U.94YTN;GKH]>4GW$/09NC MWB-4G-^!1])6DX8)6(2%R%1CC301-?7QC+=FP8?/V,XP:P!;]-A1 E$*8&J: M&$YCV\ 5,,$(HT_?!;0+<:[^B9T[P,[),;DE-0Q#.=1S+N\@X/WYZ75>MW!= M(MT9S+^2DW0*N&*7R6_U>K-]9*KB55V(JN /6W$K^;T4XF-R_>%W%?:]=3OW MCXTO@JJ!7W>AO@!02P,$% @ [TB(5YE&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" #O2(A7N705?^8% ''P & 'AL+W=OV)8KRR'Y M]SVRC4TR\H'UE'P(OIW7>J5CZ9$TWDCUF*Z%T.0Y"N/THK/6.GG7ZZ7>6D0\ M/96)B.'.4JJ(:SA5JUZ:*,']/"@*>\QQ!KV(!W%G,LZOS=5D+#,=!K&8*Y)F M4<35RZ4(Y>:B0SO;"U^"U5J;"[W)..$KL1#ZMV2NX*Q7J?A!).(TD#%18GG1 MF=)W,Y>9@/R)WP.Q27>.B;'R(.6C.;GU+SJ.*9$(A:>-!(>?)S$386B4H!S_ MEJ*=ZITF%FJ950&0PFB("Y^^7-9$;L!3D, *P/8FP#:] :W#'!SHT7) M9I4#,'>=WDT> FB$TS+K2"NP'$ZJ.3?7<_?5W&YU_?T! MGB*W6D3I/[8J*R3[=DGSR;Y+$^Z)BPY\DZE03Z(S^>$[.G!^MOG]G\1>N>]7 M[ON8^J1,E1E4@.(AU($OGLFOXL5F&E=RX&]$^Y0QFTOXA5 MD()+:.H['@F;0UQG+B ]NO,@@SV\PR_"?G*9AN/7_(PM=76# UK:6I8F1JBA9IE2N66@M2#%O@J MN#(=%('.T]JRN%JWZ]"N2VTFT<"6)L\KD^=HL:JNJ70)"1A(G]S 96M'CJM] MMG:V:$Q+?Z/*W^B;_.6MV.@.UVH:3-"HEOZH4X_*SF$.[U\2:U[NB:=.][/- M%1[6UM8.;-##;'W.N(*>,#2]:R*5MEK$M;3*K+T+'M;6(JLMLL,LEA\=UKGL MD:J IY%X<(&V7FL"HBAB[&0IC(YID!,0TIZX6.-P@<>U-5F##CV(=&Z"4)"[ M+'H0RFIN'^3 .,'.7,=J\!B00VO*H0=A#B"(5-!V.9RK::OD88$-KLJ$XFI26[_DSN?4A@8-EX!4 C[0P+ND.NNZ(L=%@ M9/5[#.:A-?10G%-*OU/?!W7 S?* Y+.53[&]77%)UA\Y#ID'^C& CUYR'U(F M"R!E7,=> \< (EH3$<4AYFT-S,P99/>]W,16][C<(E$ [E:?QP C6I,1Q7'F MK<_J,YXK^13$GKVI<'5EO' "56@Q+#Z>:#S* MD=%@T*6.8QU6\="V_FHX8CC/W <:B$$N"64_/OQ$%L++%+2DU22N-)-1!$/3 M0DOO\81\?^I0DL"$YXF'F2")4,42G;4*CH%.K$8GAE,/8*%9WR"+E^A!AE;G MN,!\?OO>ZNL8Q,1J8F(XTVS;DEP_>VL>KT3CPM >H;OIXFIJG:CA@6T=UH#$ M#@*D[6I) ?5Y4\)X8I]F[U'\:EU#GN%1;7W68,0. J-\6:[843"3-;XU;O6) M*S;Y/ ;^L!I_V$'X8R8Q0/2 !"NI[%T1KG,GXR[W/ $R(.(7@E:_Q\ @5F,0 M.PB#%A$/0W*9I7 [M6@U\$"4\ MMK;K'L'&R3<>U]9HS3XNCB[;=EP+:$?,'B[3;.\8#.36#.3B^++M9E\-\(M\ MPXU\RC00;>S;YQF7N/(W;R45:F>YFMGZ?9J<.P/WS*'CWM.NQ=[.5J/)OGP' M-B6>620H=AVKJ]4N[S3?V^S5CQ=;Q!^Y2=Z4A&()H<[I$-ZNBEW7XD3+)-^X M?)!:RR@_7 ON"V4>@/M+*?7VQ+R@VON>_ =02P,$% @ [TB(5RC=3K39 M!0 21L !@ !X;"]W;W)K. M?.Z.O$?B[%%4W^2.BKR4-Y.=4OOKZ52N=[Q@\DKL>:G_V8BJ8$I?5MNI MW%>B8-4_MSP7CS<3/#G= M^)1M=ZJ^,9W/]FS+[[CZLO]8Z:MIYR7-"E[*3)2HXIN;R5M\O2*T-F@0?V7\ M40Y^HYK*O1#?ZHMWZOGB%9([5G&)LA)]WHF# M9&4J7Z,7H^O95.E)UD--U\<)W;83(F]DN1!2U2O@+-/6/!AR(($7&DQM% FCR&1JHV+-(3"(VJ@H]D(* M\PPZGH&3YV^5D!+M*[')%$0SL ;%%,>^01- 84R-M"]M%$E\8OA: :AX&(P1 MS;"C&39F]-PB:#>R>*DSD2/=&1!+=3?+I*HS\\"=F8FLH@C" MR*Q" $3,4EW:(!SZ.#**$$+AV(.+,.ZXQT[N=UH+?:\$8WM@/\(&40!$L;G: M;)!//,/3R@;1^-R6DG0T$R?-ST+I!(MGK;C$WM.P;VQ\"QL4!HF95QM$=!N( M#;X0RO//$,9>KZ \)^5WY5H4'&TJ49R(:\T$*A_/)N-1HZZ;P",F40"5^+')%$#1P#.90K[.+5S<2SOLUG;' M.K[G^O&3:Q7?7"GV!"_>H[-1E<9)9-*V420VM[0E@ K#T$JPC0K\01\8T^ZU M'G:+O7<=46>6;0&& TI-N@ *^Z;B U!:/II="$"1Z&R6>\F'W9JO5O!M;D&: MM@"C-#1[+8#"$;&*&?#E8[,) 2@2#5!CFKWDPTXA,_^#2WF->K*(*55E]P?% M[G.=;(%*4;Y9ZR?%2K1].3MN:6!40J Q$VO?ME%F6X89>C<3QZY87= MTLL1"7VS$"622JR_@>PC^R$KH6:?AE! 30"HF)I/ 0#*41.] L.Q\SG@:_/6 MB&OM^:"[])9WS-OW&.*@I-+25%<#& :GOOO1!X2+>EM>U-OJ4M[&:>H5)'9+ MR%LFLS5ZF9T2\PK,!B >D\ J2AL5:\EG%B7D*[&D%.1K@!J_7.K5(W&KQV66 M'^J:_ Y? @HY\]D 0F'?E(X@RI*.$(K0,V]62"\="78NPA6K2KW")-)*N27\ MPQL2<8K3'UV)%_6VO*BWU:6\C7/5:U_BUK[]2DQUEV35(&EPD;;NHF'CNC+? M\2Q@%#&+%$11LT@A%#TCDD@OA8E;"@\7Y3.ITV=1!U&F'(91%G4(95&?#HX& M"EYMFS,9J9?8H53M:]_N;G?N\[8Y[3#NW^+K!0;N+_'UJCW5Z=VWATSO6;7- M2HEROM%#>5>1WDJJ]MRFO5!BWQQ,W NE1-'\W'&6\JH&Z/\W0JC313U =WHV M_Q=02P,$% @ [TB(5V":-"6^ P ^@P !@ !X;"]W;W)KV^8(ML<^CW4>KU7IV%/))981H])PSKN9.IO5^ZKHJ MR4B.U8W8$P[_;(7,L8:AW+EJ+PE.2U#.W,#S1FZ.*7<6LW+N7BYFHM",[XSNO$5[K+M)EP%[,]WI$'HA_W]Q)&;L.2TIQP105'DFSG MSB=_NIX8^]+@=TJ.ZN0=F4@V0CR9P>=T[GC&(<)(H@T#AL>!+ ECA@C<^*OF M=)HE#?#T_97]YS)VB&6#%5D*]@=-=39WQ@Y*R1873'\5QU]('<_0\"6"J?(7 M'6M;ST%)H;3(:S!XD%->/?%SK<,) 'CL@* &!&U = $0UH#PK2M$-2!ZZPK# M&E"&[E:QE\*ML,:+F11')(TUL)F74OT2#7I1;O+D04OXEP).+Y:"*\%HBC5) MT8.&!R2!5DALT5+DD'J9R8D#09]Y(G*"KKX(I:[1U2/'14H!=(T&Z/%AA:X^ M7*,/B'+T+1.%PCQ5,U>#@V89-ZF=N:V<"2XX$Z([P76FT)JG)+7@5_WX20_> M!6$:=8)7=6Z#7L+?$GV#0O\C"KP@M/BS?#L\L(7S_U9?_^?5S\0(FU0)2[[H M M^O4+5HF06VG:VPHQ)KBM-A$8:C:.8>3N7J&OEQ,#XW6EF8(M\_-UIWC8+X MQ.@LP*@),"I1X27!=$8D2L[2GM9ISTS:V^*.^C0S57ZJ]C@A3_9TND]R5;O2;9^)[*S?1DV^S+L33RX$:#>O" M,5<,5S=- M^B=425.T;+M3$0]/TF00>.&PE98VJ[AMM;)9^6'82DR+5>2;\V?+S%&CP*A7 M@3O*:5[D:%]?T(SB#654OYR$_Q%Q.*!0MS5^MDDQZCCFM63H6OA!%+=4^"[- M^CLT9P+$C0!QKP#+?WU(P8-F!F29P"+7U AYW XHZ MRG2-VKI8:(9Q*U76?31GHDP:42:]HGP3&K-6@:Z2X)(V,)G#>8$V*GFRR3'I M7",#WVN?BZY1-U$L1,&DI>O:MEHG4=R39BXGY0HQL82GO)H:]DU6G70VTV)>MY$9H M:$S+UPP^3H@T!O#_5@C].C +-)\[B[\!4$L#!!0 ( .](B%=HL 4HT@@ M ,$I 8 >&PO=V]R:W-H965T&ULK9I;;]LX%L>_"N$- M=F> I!8ODJQ.8J!),;M==*9!VLX^+/:!D9E8J"1Z),I)]M//H:R8MGBQ _BA MC2^'])^'Y/F=0^KR238_VJ40"CU79=U>399*K=Y/IVV^%!5OW\F5J.&;!]E4 M7,';YG':KAK!%WVCJIR2*$JF%2_JR?RR_^RVF5_*3I5%+6X;U'95Q9N7:U'* MIZL)GKQ^<%<\+I7^8#J_7/%'\56H[ZO;!MY-M[TLBDK4;2%KU(B'J\D'_/XF M)KI!;_%'(9[:G==(#^5>RA_ZS:?%U232BD0IJ>0,>?0Z>3 M[6_JAKNO7WO_M1\\#.:>M^)&EO\I%FIY-9E-T$(\\*Y4=_+I7V(84*S[RV79 M]O^CI\$VFJ"\:Y6LAL:@H"KJS5_^/#ABIP%FG@9D:$".;4"'!K0?Z$99/ZR/ M7/'Y92.?4*.MH3?]HO=-WQI&4]1Z&K^J!KXMH)V:W\BZE66QX$HLT#4O>9T+ M]%5WUZ*?;KJF$;5"MZ(IY )]KWFW*,#P9W2!OG_]B'XZ^QF=H:)&WY:R:WF] M:"^G"D3IKJ?Y(.!Z(X!X!'S)U3M$\3DB$:&.YC?AYO_FM:_Y%%RQ]0?9^H/T M_5&?/X8A\[8%%[B&LVG/W.WUKGO?KG@NKB:PK5K1K,5D_O>_X23ZQ36X$W6V M-U2Z'2H-]3Z_X>T2P:2A7+\0?W;%FIH-UTE?5GEJG2YMFP[BG9_%=):.M#F,(A*YM<5;;7%0 MV[>&+P1$HEQVX#:(:KD ']Z7XAR5HFT1+R%*]CL*XBW*&P&[!Y42EE:+Y ,Z MBU.&N$*P!>2]:+;+N)^4LP03_24L\ [B:VB+7,?6V%@:9?'( PXK$F&/"Y*M M"Y*@"S[5:U@RLBF$<]DDMM>3*"8C90XKEM*96UFZ598&E=TV8L6+!1+/@#SM M<>U5J9;@Z/S@)D\M12G%R4BVRRA.W:IG6]6SH.KO]7U1EK#8':O*)73F%,7]6.KH2"><[T)8*'K(?6? M K>[.I?5JA3]AI:U:@#DSBG(+,V$)>.58QM13!+WN'!DF!B%][54O#QBE0S= M[/Y\QI*8CD0ZS&9Q$GO6-]Y!-PZRZK.L'R^4:*J01'Q*7)VJM_T!&S;C( ]A M2T/ZVJB7<[2"1$5MUAYP:P5YI3I'-62]L-I@YW155_;K<2% 2%YPG3(ZW4/L M!13/XC'8'&8DB;%O!@V!<1C!7V XH*U^!%Y +HH:G71>R(>+#M[TD^H432TU M"4W'T?Q1/ C8%PND^'-HW=F\36@VEN@PRGR[UT 9AZG\ M3RD73Q!QG+)L"!)L\%3'K-K;2*R>"=>#S)M*TJ9!^C8 M$]1 M;#'#9873S"-[ISX-,_!&5E71ZE.43>Y5\9H_"@U R+ER^%.L1=CM-LM8S,;T M<%FEB<_I!G@D#+P[L9;EN@<>?(,NT.^R44OTH1)0XW&G7 ?LTF@<8AQ6;+<& MW)=K8$?"L'O=P)#<=DV_?W6"84+C0MP["4ULL*686J(=^/-BAAC^D3#_;OI3 M(]&T_]#ICVP+SSFE*K,K!886SG;6^K]&@D!Q X2CQ>8V0+ZA=PHKHO>L4 M;2,OLS4[C##Q2#98)&$L;NC-AZAQ(*03!_(B*T5S6,4Q\X4(PT42YN+U:[FU M5X3EH7+M+849L7&9V5';P=24>C4$)2^H5P\)-3F86;%3)=1Y'.L828-,]//HRWLG8IM.B:8 MC<.,PXJ1V ,D:AA*WU9.'O*NXY256+6:RRK"/O\:>-*WU92'M-I@)+$C*#K, M,,U\GC4 I6& _B[KBQZ!L@G$J/&EY>:K>]B^##%M9F*VZ_(&0U^JQGZ.S=Q&&-*!!:UYV MXASQ3D'Z6/P?XDT$CDUD[!=JHIMD MK_K)+B5WWI,Q1Z6<6A>=#BO?$Q8&^'$8^)_UUM'_KKNB7+P>:WP6][R6]3GZ M)NH:BCWS2DOU4O>V/VB0.\;$E^T-1]\_4 MR/NR>/3>[ [=[3Z,E$'9.WXFQF%%<#Q:M-.=Y^OTPXV_\>:QJ%NH%1^@6?0N MA17?;)X7W+Q1+O>!5UKON'B#I MTW?6=BQS"@D7> _S__YFO(?Q5JIGG5%JX"7G0D^\S)CBQO=UDM&$"6\Z+L?F:CJ6UG FZ%R!MGE.U.L=Y7([ M\?K>V\ #6V?&#?C3<4'6=$'-4S%7V/,;EY3E5&@F!2BZFGBW_9M9[.++@-^, M;G6K#2Z3I93/KO,]G7B! Z*<)L8Y$'QLZ(QR[HP0XV_MZ36O=,)V^\W]:YD[ MYK(DFLXD_\-2DTV\*P]2NB*6FP>Y_4;K?"+GETBNRW_8UK&!!XG51N:U& ER M)JHG>:GKT!+TAR<$82T(/RH8U()!F6A%5J9U3PR9CI7<@G+1Z.8:96U*-6;# MA/N*"Z-PEJ'.3&=2:,E92@Q-X8YP(A(*"V>GH3.S2E%A8$X5DRD\"6)3AH%= MZ,R)F\FH80GAN@M?X&EQ#YV++N@,IS0P 8^9M)J(5%_"Q4Y_[!M$=P!^4F/> M59CA"G!H'\)81 .CLAG[\M_$'%*[F/!FJJ%3=7"TF]XPN^6X^HO2X7[ M"%)IEV9E.:[)1%IACN97&8Y*0[>U-M,H'H[]33N)PYA1/VQB=D@'#>G@7=*9 MS'/<+;B.DN=+*(B"#>&60@>_1RHY)TI#057UU;K'P"O_N 45](+^'OF9H!WT M88,^_ 0ZL2:3BOW#9>K8JU5V%+ARC=J5#O"W1WPN:@UYW.@ M)+Z.]NM[&'05!,/CL*,&=O0)6#SAM<'-R<3Z'/'H(\2'0:>)XX8X?I?X$>\I M;=5KQ7P.,SX@Z ?7>Y2',8,]1+]UMKI[[2=1:R8T<+I"3="+4:RJNZ+J&%F4 MQ^U2&CR\RV:&URM5+@#G5U*:MXX[P9L+>_H?4$L#!!0 ( .](B%?-,(M? MO0P )-P 8 >&PO=V]R:W-H965T&ULM5UK<]NZ$?TK M'/=.F\Q$,0F"#Z6V9Q*3(F]G;J_'N6D_=/J!EIB8C23ZDE2<_/M"CX@BL-PE M[?67V'(.#A98/!:'"^KBL:R^UO=YWEC?5\MU?7EVWS0/[\[/Z_E]OLKJM^5# MOE;_\[FL5EFC/E9?SNN'*L\6NT*KY;FP;?]\E17KLZN+W=]NJJN+'GFG/W\PVWQY;[9_N'\ZN(A^Y)_S)M/#S>5^G1^9%D4 MJWQ=%^7:JO+/EV?OG7>I;V\+[!#_*O+'^N1W:]N4N[+\NOWPZ^+RS-Y:E"_S M>;.ER-2/;_EUOEQNF90=?QY(SXYU;@N>_OZ3?;9KO&K,75;GU^7RW\6BN;\\ M"\^L1?XYVRR;V_(QS0\-\K9\\W)9[_ZU'@]8^\R:;^JF7!T**PM6Q7K_,_M^ MZ(B3 D+T%!"' D(KX/H]!=Q# 5>O(>@I( \%I%8@"'L*>(<"GFY27QO\0P%? M+]!G4G H$&@%'+>G0'@H$.Z\NW?'SI=1UF17%U7Y:%5;M&+;_K(;$+O2RH7% M>CMV/S:5^M]"E6NNKLMU72Z+1=;D"^MCHWZH@=G45OE9?2KG7^_+Y2*OZK]9 M\9^;HOEAO?JTSC:+0J%?6Q/KT\?(>O7+:^L7JUA;?]R7FSI;+^J+\T99MN4_ MGQ^L^+"W0O1:L5JI@;RKT?K/;_GJ+J_^"]!R@:]1DAC7#2V[Q12X#JG3BKUL7Z2XUQQ3C7'VIYJ3?5CWU+WUB'=O\DM&[S M;\5N55#=?U,5967=Y.K'XHWU?O$_-1BVOL&JGSVK>H P(3K\]^M?K?=-4Q5W MFR:[6^964ZJNKP@S4\+,4GFL6^Q<#>OCV!;'L2UV/+*'YT.VS-;SW,H:ZQ_9 M^JWE.F\L80L!C<\]D[]CVJ[WWZY"A?MV.O9,B.\$OM]%129J(L34ZZ)BU/#M M?O6N?LCF^>69VI#JO/J6GUW]]2^.;_\=W"QGI>KW'JU+.OZ->2!/85W4K.M.8!$1"9B$H9ZWZ.V MCNU[TJ:$1*2$U9TNE\0QZ0I =, MA'#U"4"RQ*CE8QU 5I>0B!1O5J?_O6/_>VC_J\!*A4UKM857:C6<_[":*EO7 MR[T/LN-B#KG!(]U (B(2$:/FCW4"65UB(B935UNB4@+4<81_=(2/.N*PQ]6[ MT**HZXV:$)NUBFD.?WI0>T3]QEJK)4IMNO6]VKQJ:[.=-NI@8#79=Q60-??; M,$CM_9"[?-)=)L+1)PU)$J.M'.LOLKJ$1*1HJSJN"HZN"H;NU^\?*K5?V_W[ M=4#OUX%AH"]L)]1ZWD2I;3'4>Q\U?&SO U4"^S6 DK:^VJ8FRA/AM&?.A$=' MA$,<45NO5 2]GQ*O!T51H6%-Z'A.X&E1QC5:_A@.V>5-@ZFVAP P3P;3ODG?ZC8. M+MP\.1!T3$T#C@1Q T;/9DZV&&@$' RR5INPLJ5<;-T1U,I0#JY#'27G_6F[ MRINB4F?KD_$$#A].B>B:E2UB98M9V6:.J61-9!@&^JK"66G*Q=8=8:W0YN!* MV\>]9+.7=H8*.>0 -*6HJ92Z;'.-FS9Z9'&RQ:QL,U:VA)4MY6+K#L!68'1P MA;%ODZ3C%U-""VT[L&W]'(P;,'J8<;+%K&PS5K:$E2WE8NL.LU8<=?C446> M/.H,TT5),ISW>:+4C@6M'MSNQ:)?SJ"9$TU&20(\ ZH>1Q$=F T4@C>VZNC=8 ME1N@4E6GISN$SF5"(5U'M!*+P"6608&NH/.6:$@$0)Q Z($N;N_HOJ?3EVA( M2EG>[?M671"XNO"40%?0.4D 1.CK<$3SQ+CUHSU!)R;1D)1H6]<1[?E;X.?O MYP2ZY@'4\ <)B6A(C#=AM#?("A, ,A&!OFZE)*SKD_8$+O 3^,N'NO3I'8!, M=<^1+#'>T-&>HX_N-"1%6];U6'MN%X,SA$A]5)@'5C/" G*$@.>[ QZOHL; M/]H+]+$=L@MXO@O D.>[;GMX=_'#^\WA$MJRR.Z*9='\ !/S;4.,,S+SZ6,Z M#8EQ8T=GYM/'= #B&*?4E$)U^[X]IKOX,?W)CPU<\_@)/S; #1C[V("5+69E MF[&R):QL*1=;=YBUJH+[I$M0+CBR!B34N%!"C><+?;J;,&"]Q6T?/0H 34#X M^IP'0+XZU.J3'LBH"8(^N=0]N0G%<15JP%VH 9>A@-.[XPC]'(L;/-H' RY$ M#;@119G>[?U647#Y;T6Y]+4H "*$'@32/#%N_6A7T%>C:$A*M*WKB%91<'%% MX1F'*9?6&6A(1$-BO FCO4&+# !D(ETC'"%078^T.H,[*(M!?[P,[Q/^@'W" M/(3[(M"UPPB R:G4/<$J,@!5 ML$ /+#4'^T#, \7WI]"U4K-KB#'O:CB9>P M:\R3=D]PR"D51*QL,= (;7C-6"M,6-E2+K;NV&E%$7?0[:UAPR4<,)--&0", M^( '_4#$QZIS '4"4QD 01&?"<,BOE;Q<''%8UC$QRD\7+.R1:QL,2O;C)4M M865+75.T<4*W9SS)5K.1+Y9P@3./'66L;!$K6\S*-F-E2UC94@DDD0C'[8E M9"M/R4'RE*Y(@;O(@0K=1:2I6OEB:L2# ,R5GH:*<=M'N]/5L>1@W2<\1&A-)4,."+$#1@]GSG98J 1>D3(6F'"RI9R ML77'3BLZ25QT>MHE')QT]&[!>M&+E2UF99M)6@)CK3#E8NN.KI,W#1&BVDM< MP)&F[*0.UM.IOF:Q7NUB98M9V6:L; DK6\K%UAV K9@H<3%QR),T><I;30 M]EW/=O1AQBD%1JQL,2O;C)4M865+N=BZPZQ52"6?0BH'**1RF$(*P$R%%#=] M]" PK3=E%< N2"$%8(A"*EN%5.(*Z2!91=*)5S0D B".+83N M;<*]JLA(:D ME.7=OF\51HDKC$]ZN2"=205 A)X$'=$\,6[]:$_0N50T)"7:UG5$JRU*7%M\ MCA9$7X:B(1$-B?$FC/8&G5,%0%Q75WL)4/>=CZTVY^':W(OG(WKTE2D ,A&! M?H>-)HKQMHY^122=CD5#4JIQ7;^U8I>'BUWCKMYXIL2C!XQX?6,#1E:VF)5M MQLJ6L+*E7&S=4=5*=A[GA2Z<;*S@%QSIBP!T^RLP'IP",,?37S42X[:/=@5XXRS470&@?,]( MD 5@7B![5^566/)P86E0B._1Z5DT) (@SE2_QA#C]H[V 9V?14-2RO)NWY^\ MOAK75)X2XGMT9A8 ,3/E:)X8MWZT)^C<+!J2$FWK.J)5'3Q<=7C.B\3I:V T M)*(A,=Z$T=Z@+X$!D(EY73(E85V?M-J#AVL/(S=VZ'W/NA]8L[%8V6)6MADK M6\+*EG*Q=8=5*ZMXN*PR!%XW;6Q&)L8*$4"@ $I$KCMHUUAU@FD2$ H($4"@"$I$GZK MOOBX^O+DYT"^J2K SX%P \8NTZQL,2O;C)4M865+N=CVP^S\Y,O3ME_7]UM6 M?2G6M;7,/RMZ^VV@AD6U_P:\_8>F?-A]G]I=V33E:O?K?9XM\FH+4/__N2R; MGQ^V7]%V_!["J_\#4$L#!!0 ( .](B%>Z? "$]@@ #$K 8 >&PO M=V]R:W-H965T&ULM5IM;]LX$OXKA&]QUP!-;9&29?>2 $VZ MQ19HMT6SW?MPN ^T1,>\RI*7I)WD?OT-*<6TQ)LZ\"R>UZ3<7C-:N:^\M1,GJZ\8W?K92^ M,;ZZV- [=LO4]\U7 5?CO9:2KUDM>5,CP9:7HW?)VYL,ZP%&XG?.[N7!=Z1- M633-#WWQL;P<330B5K%":144/G;LAE65U@0X_NB4CO;/U ,/OS]I_V",!V,6 M5+*;IOH7+]7J^IHE<7HKE'0DN#-OW% MS(T9#=;P6B_CK1+P*X=QZNJFJ653\9(J5J);!1^P1DJB9HENJ%RA#[#.$KWZ M7M-MR4'F#)VC[[?OT:N?SM!/B-?HMU6SE;0NY<58 1ZM=5QTS[YNGXT#SYZC MSTVM5A+]7)>L[(\?@QU[8_"3,=(*)!\_-\<-Q! [9SRTQ M^DA(WX8)JGA]USHK5YQY9ZG5DOJUZ#A^*S>T8)W8J1FKL\ONBJ1)'<)WA7!^(-2# ME>UA9=%U>%?^%P*I]6O50/(IFKK@%4/U'J^^KZ\*[?,;T>PX>"1:/*)76PE? M>'V&FB-7,SOE:IY(66_:IOMIFT97\ST#I06G;;JM2T37C5#\?^:&S_)67=9; MNSP=++!/:!98X'R/-'\&Z9() >NDZ -B#T!QTNN!N?/L),T&^%P9DLW\\&9[ M>+,HO%O5%#_.-=F4")Q-PVLG-0)UYL"8SJ8#J*Y,/B5^J/,]U'D\@IOZO(V! MCJD5$\ ZS\*=.U F ["NQ"P)@$TFEKPF4;A?=:0:G/"WA4BN3'FP@-BF1=%L M(>*]M#1QP)R3? #8(X0G < ';)M$ ;_ZU$AYANZ@OD)+T:Q1R>6FD;32A+OD M#^ A5$H6@)VXL _FL(/M"B4D#>#&%C>.IM";%:WOF-2$?Y '#5*3&BI.%[P* MYL1.^XF2XJFT]>?"LGH2Y="K=YUG:2)A?$?!V[PV$W>U,I([;N812\E!6NJC MM%2)ABO&)9$)UEY"3*7%!VRLYSF%1\;:I/1D4- M;F6["%]O*J9,(JV5 ";V6Y=Y8.?#5.^3(I.#--LWSO)F M$B?.O8-LZ&/0.UP>G)/4F7Y7*@MF3R9Q M^OS8%9-Z_J*K[[(AP!F&C5DQ NPE%5*TB M#(1]G#@,*X_0>3X+I QLJ1/'J?.+P7@\YV ?6\Z3H2=XQ)+I?!Y :PD31TG( MM$(G:":ZI_1KO&3H*1ZI\RR9A'S%,AV.-[":0^0Q*$_:P9Y*6]]H2YPX3IPW M=,,5%&0F0$JNMB)@M(<:9W@R['=\8@230#K$ED%QG$&A]"T8*V5;1O):;@6M M"V:ZVQT3CVC9".U\X&CJL67:/[9\H[M@KS4N%SIQ[8J$/,Q2)8Y39=\*J(.9 M(?T7X'89$22@Q#J([,)$DH M,5D:Q;-H3'^ ;JXNCH 99>,7Q_2)M/6-MKR,X[S<=S/!=DVUTU-0" 81CK2X M?Q)<"DX@Q)V*QR,WQ7D>V#<@EJS),V1-'_?;L25;*&3VSH]%3SQ$#)Z?)D-? M\PEF*HE]-#TVS)FL3)^CV#J:22Z3 N M!5W&2W?B85LW?KU2H?*-'&PIQYO/;VRS%<5*@X4YA6IS#2XA]0:3%ZJGN9RG MPSU7GU0:Z#*(Y5$2YU&SZP6%CNXN)+ I$P77J5*G]*<"&>I0P2K3_9F-6:D$ M+_257%&X0CJC#D\&.LL\M(KSX6:(5PKC@&F6>TF<>[W%W?+(Q$I<&H6T/NS\ M/%)0^(7BPS9X.@CJ4H:+;WP%GTH:];LW3S+L#3JZ[ MBOM@@?3O7NL\9#LTS=/4AO8MB>5C\CP?\[J+XU=E%]%G.J3_I$4N$4^386WD M$3I/ S4>L5Q-GFEYCP:.SM&"W?%:;Z"8 HH)WO@#Q[.SG,^=P'&EYGD>V*8G MEH=)G(=?9!#3C6G4%)=U\W0R&YKB2LUS'&A'4TO-Z21:1]UN-YO*')9"KV 0 M+RO0P>OV:#UP1))&^?ZE5=6IM/6GP+)[&F=W0>SMR@1@NGR-,V=#SB>53 +-1&I9/8VS^H>#G7^@#P@- M?9IEBM5:[\TME[SBD*+-ZKTQ>%P(FW]*;!501H_9CZVLTI/>D)\*FU] MHVU!D3[3P!]4^!L!D<8W^C"K[LHAJ%+WKN"="[<6@++?B3J/%,X";)3:DB&- MEPR?S*$V_+O>\JI\.GKXQ!848NPU^HW5T%A)QN(N''W&BU?S1-KZ,V(+CO0T MFP/I23<'3J6M;[0M2M)G-@?^I N[]<7YS*$WC] TP&Z9K4&R^/; ]UJ?C@%3 M?&,[5F]9/-G&E;WXS92_HO;(;.V1)7_E@706K6Q>/!MFO9ETL]40&\C4<66H'+R)HV%:C;F%<=%HU2S-E]7 MC)9,: 'X?=DTZNE"/V#_ENS5_P%02P,$% @ [TB(5['FN>4Q! )PD M !@ !X;"]W;W)KX_.N1^2 M1QNE7TV!:&%;"FG&46%M=1W')BVP9*:K*I3T9:5TR2Q-=1Z;2B/+@E,IXJ37 MNXI+QF4T&86UN9Z,E+."2YQK,*XLF7Z;HE";<=2/=@O//"^L7X@GHXKEN$#[ M:S77-(M;E(R7* U7$C2NQM%-_WHZ]/;!X#>.&W,P!J]DJ=2KGSQFXZCG":' MU'H$1J\USE (#T0TOC684;NE=SP<[]#O@W;2LF0&9TK\SC-;C*,/$62X8D[8 M9[5YP$;/I<=+E3#A"9O&MA=!ZHQ59>-,#$HNZS?;-G'X/PY)XY $WO5&@>4M MLVPRTFH#VEL3FA\$J<&;R''ID[*PFKYR\K.3)V41^G !4V:X ;6"N4:#TC(? MM%%L:0]O&:<-WK3&2_X#[R-\4=(6!NYDAMFQ?TS<6H+)CN T.0OX-;5=&/0[ MD/22P1F\02MX$/ &9P0;L KNN60RY4S @L0B%9HUI_36<,/3<+YGKDW%4AQ' ME0^<7F,T^?&'_E7OES-DARW9X3GTR5>=,\G_#KGHP$Q)HP3/6%W/,CO*E<_= M*4UPRTTJE'$:X8\7W%J8"I6^_GE*ZUDVI[4V!?12('!I4?,2TI8G9K!J*9D] M)5]F2#UU,><5PJ/WDT$$F3THD7&9FPZMI]U.T&G ON M>]V5,KS-&!G2>1$B0 >K#J(-T.$:G&B%J\SL\##K^L :/&(8.!CK(:0_F 2! MIDYK"MJA71=FJ"T=RR2U/KQW'%9*6>G3EK658:!@:X0E(M51R:W/7.6T<10_ M+W#A=R 59.@1[K9IP60>@E1R$T[H=]'B;D:QUDXT5AIS)VJ%0<=Q82R9H A MU'?N^^X+GD*YYZ%4]T0]RDJ7+2 M^DC-B4CJ]3SC"K77>)ST&TE8@KY62E.L)?A+X)A+L\E-I;F Y/V.,G4-T*FE ME@3;<H0;Y"[K85E2[)GVFD:H3/RA@J=/CDR"OI]:\Z\*2Z803]0>>@HQ\E ME;.K2^#BT-VWQ(NJ> J#Y"I$[)9JL_3;]R_#]DD7[G&I ^V&4"<8GN;:A07U M&WYS@? Z[/BR#PZ5B@%<,^%"'LW>%M=-"VGE\F)/X\-NSU-'8GQP>96H\W!% M^RJG1-7W6+O:_@72LIITCK&'1/RX]]QS M/^G9UOE-:(BB>&B-#?.BB;&[+LN@&FIE.'<=6=S4SK@\R2HIM::< M3B:ORE9J6RQFZ>S&+V:NCT9;NO$B]&TK_6Y)QFWGQ46Q/[C5ZR;R0;F8=7)- M=Q1_ZVX\=N6(4NF6;-#."D_UO'AS<;V\8ODD\+NF;7BT%NS)RKD-;WZNYL6$ M"9$A%1E!XG-/;\D8!@*-SP-F,9IDQQF1>O"U%1 M+7L3;]WV PW^O&0\Y4Q(_\4VRUY-"Z'Z$%T[*(-!JVW^RH49@. M"M/$.QM*+-_)*!)%<3=H@IRTGY2YZW&KHQ<4O+I*8BC.Q[ .N M0A!WM$;0H[BESOFH[7I61AAB\5(-H,L,.GT&] ?QT=G8!/&3K:AZJE^"X,AR MNF>YG!X%_%7%O+A'=YQ.L@HA/OM956:6G$7921V/%P MR-\,=W48CAOG.G12T;Q 9P3R]U0LOOWFXM7DQR-DKT:R5\?0%_])B'BG@S(N M])[$GY_H(8JE<6KSUR'B1Z$/$Q]*XE-#XJUK.VEW0@=!=HTFK82V(N*FE;:O MT5+,0=I*!&E(N%ITWE6]BH'EG"7T+9.6*]R&[,>UN-$=>W&W"XAX.']B"6; MD7PX?6PB9!OHW0 +=*9MZ WRA;...'UQ)[J,&C+J:=(P)#?HT3B,@+"W>/._ M,."#,GU%U^)$OQ!?Y!GY;ZDVQ)M*A^BUBJ(AF9+#M\HYP^NO\#!#!=6U5IKS M29;\>C< K/K$L/:N%0JW'B4Y"'1&HBJY6EN,&MTAE$BW9'FX>:+!K?.:1^H0 M)>5LQ3M\(\9R*IX#3&##AGU)\;#72AH@-O(?Z2O70\KTNLJQ[RAZ9ZAOQPPG MT[#-U:#NZ0ZF ?3KC,:]RL7&PX8#IV""6$C(>RUC$3Z4-N ME=&I'''0&:-^,#YC^V27<^-L477^29M\%YXI;2'1C\&9"L\(0J"!]%7F08,? M0S@-$V?2<),BJ#H7F+,Z0@(H(+.%9Y2+@ /G^Q3L5N[$H:E6/GJ$6A1N>FH# M/XI\%%Z3 'VL8;JY/S[EX7P^7G-F^BZ]*0ASW@@ MTQ+MA_I@ =S7#C-LV+"!\3?.XE]02P,$% @ [TB(5U:2,\?O P #0D M !D !X;"]W;W)K&ULC5;;&RG?>CT 2)6)&H08 !0LOZ^N^ E2BRK?9%PV3TX>["+ MY7QKW8,O$0,\5MKX15*&4%^DJ<]+K(0?VQH-[:RMJT2@J2M27SL4,CI5.LTF MD[.T$LHDRWEP_GD&8>L<\@B M[_:@R/*="&(Y=W8+CJT)C0C$]F[P]0O9D('MR#'WYFQ7&CR!R'L&]$Q)!& F? M0XEN[YX\O%,^U]8W#N&O>WP,<*5M_O#WH8".']FEPWV)E&3_6*?"#NP:Z$"X MME4MS.XG3Y74I8H;*$!NJ4Y]8.,";>%$7:I<:+T#J7R-SJ-DF^"H#*WS,8Y* MF&9-\\8I4] NXROT8[AV*%4 Y8%B04ZE6'D2N(P-X$;H1L2BIN-$5R;HB-IZ MN%8ZC##(9@P?3 S@BU&!,.)]DYY4.9I&CFSI(&,#VV63Z>DH3BCS[(ID[I,/ MM#7%:[*O0'B/%+TU/^C"&EBMI B1L"8F"+$T*:9;+(23=%F^%[27HR$&LD%@ M/Z!G%FJQXWP<[<-#*3RL$/MWC(1%4]"S*4&1#*:PK"&NR3_$!.?PZ.4C#(J. M7F,?2'*VZ8B-XR7WZ,Q%F::MC1:8'J)0MD0[?=N]F&7K1NN>9Q\/-XH>W4?5 M[["FTF(5HX(?&X,\RJ*B6;MX4&M>K,0.Z.&-T*%TB$_-1A3X'KTN+TD25O%) MVGYW/8;ZG1>:$X%34;8YR Y>5 B4L07UQ, BE92B MT\G+'PB\>G&>3=^\?8[&>(C54$D^#3728-3+F#]/]C]2+5%3W=>FY^G_2Y@# M]=RJPNK^/VMZ_&KL$G-\Z.E+]UH4<2IB(V8Q"*KM5L/JT.LOVQ;WS;S]4/@D M7*&,!XUK67KENP@<,7T#+ M?P%02P,$% @ [TB(5P^[2Z2;" 'A8 !D !X;"]W;W)K&ULQ5AM<]NX$?XK.[HD=6882R3U8CFV9VPW-TVG=_7$N?9# MIQ\@$I)0DP0+0%9\O_Z>!4B*Q(-VXXM:K1UO#&^N:K&2C]+]4C\8/ T[ M+KDJ9665KLC(Y?7@-KZ\&S.])_B'DEO;6Q-KLM#ZB1\^Y]>#$0.2A9;WLBB8$6#\M^$YZ$3RP?ZZY?ZCUQVZ+(25][KXI\K=^GIP,:!<+L6F<%_T M]B^RT6?"_#)=6/^7MH%V/!]0MK%.E\UA("A5%7[%M\8.O0,7HR,'DN9 XG$' M01[EGX43-U=&;\DP-;CQPJOJ3P.F&6'?)289_ MS]PYI7%$R2A)3_!+.W53SR\]H:XEI^E'58DJ4Z*@1R><1)@Y>TC?P&Y\F!UG MS*6M12:O!T@)*\VS'-R\^R&>CCZ> #ONP(Y/<;]I7;(TNJ1[&-8@AA$?;DWW M/C*DH7]]E=\_KW(?PG)1S&WX3$U[6$T+(6U0MR)],;6(A0!4CAUP1H MEC9PM*';\%Y5*S9GE0N36QS.U5)EPF??V>#V\7[PGJ:C:40'%;/[FME]JFR? M*NNH^C"1C5#0DNC(2> )N;\RTON8W%HX6O-N71O]#/\#+LC+4CE/X*4M-&34 MPC@E;=2PSTI0@WZY5MB;4K8WA6 .^#@T+9EG2 M^-"SFX6%N3+I>7IHR&2+&IA=45!,$-EGGFYWVEW_UPD<2SCY9L M8_C6-P21E16^^ &T 8P"# :JJ@*.>"VFF)Z?+&(_Z#6O1;>B1_H7Z:)=:U70.U'6'VDEF(MY MDNA4E-!#"[BG4,8^@YL**9[@6M>TAU:WR$MAX\$MNTW4?VD >KC2&K%=:>?_ M?ZY\;IC<>]&')N*Z",/8'8,^DM1\)*9N<8/&*GG(.G;Y, MJ@1[D?32;^[Y,J*E6!A./K 4;S-(8KJ8L-!I9?*L;L1=^<[7[?Q[W/'-[-?<72[EA4%YW$N MV+6J:VQ#!I<]E!2*>W#/:K=MSK M_OA&9]8WE$2324H3O'U#XRB=IA0G_F$63<8QS?PZCJ-X/&:CO:7'+M$?0J(? MJC5MF>_Y*C055=4;N%>ZM M>A_SM)ALM M9PJ,*3%#$[IC6T4XPV$1O2C42H164QO%$1]*B&]"2[;[LLT^B&E3+D)K<91K M7TN[":?L#0XV5$6=91NSSQG]SKA6S5VU8=7:4K95!3=9J&QE+CVA1IG!Z%?T M)H0J/U(R-M8W(6;O$_P[,>8!T'.19MA;5RON!; ;_L$Y<]R+Z MCUZT!8G[RZX+ 8?EK@3L0UADN:\16H(KPDC[WA>UGDX0XHLXV.A\OX_#",IV MP\)3A3+GJVI_MQ2P(QH:RK<0.7:'"<,.A MU\R5QU#9#?XT_%DZ=VM3\BS6L[QO@2&L^JQ?OS?23[@09KXO#9 HOWEOP/:B M#+,N6/'0T[4AY8<$3))-3?]^ O)S)8>&RO?C"R.HK' FDWY@/-[J.@/V%.QK MM=."T2&,[#YV'Q?_-\AWNC>:[Q"&\009B^RPRS"1TAG.^PF;Y^#>B_?=G+$+ M_%YY.4-(A\1".]6;U1JU\41R^5D=FF:N'V 2NPM1,.LV/JWL/G+">+U$)=1; MG[K> ':MM[;)$Q@J@T?"ETUG]3U'["E_PE>7WS?QOT(385YV&_<->VC-P]31 M3$.'1F>S4=C>D]G M&%'&*19_V%A[G^!HUYFJA;^_X/;2?#QR O&G85%T8?B_XD1XT=_%G3XTF/H6 MNFASEUM@;TS@L1J?/-"(S_Y2-16SNRT(\X)/GZ^O:@XGD>$9]@W/&H6_H /C M-W%\/NUV[.](CN@XY@9.#^(#&P#15L %F/Z5'VR"6Q#?>N'P ;IW>X"FTW[J M\?E;^VKJ[QD5I"M98;IB=Q3L7[@IB#UT%S3LW=FA6J[\S20SA.7"]5VWVUU^ MWH8[OQUYN#G]R7\!60A=XNCH?#89A'K=/CA=^QO A78HS7Z)CUQ,PTR ]TN- M>;)Y8 '=E?#-;U!+ P04 " #O2(A73&ECSML# !M" &0 'AL+W=O M4CKL9WTH=,'D%R26X, X"Z].N["U"T-%'T()$ =L^>O8+SC;$OK@'P8MLJ M[19)XWUWDV6N:*"5+C4=:#JIC&VEIZ6M,]=9D&50:E4VG4S>9*U$G2SG8>_! M+N>F]PHU/%CA^K:5=K<"93:+Y#+9;SQBW7C>R);S3M;P!/Y3]V!IE8TH);:@ M'1HM+%2+Y/;R9G7%\D'@,\+&';P+]B0WYH47'\I%,F%"H*#PC"#IL88[4(J! MB,:7 3,93;+BX?L>_7WPG7S)I8,[H_["TC>+Y&TB2JADK_RCV?P.@S_7C%<8 MY<*_V$39V74BBMYYTP[*Q*!%'9]R.\3A0.'MY!L*TT%A&GA'0X'E.^GEY!3?//$&S0%8, M,*L(,_T&S*_BH]&^<>)>EU >ZV=$:>0UW?-:3<\"_EGX5,PN+\1T,IV=P9N- M?LX"WNR,GTYX(]ZCEKI J<23EQZHOOQ)?R/7;R:_G2%[-9*].H>^?,V%>(>N4,;U%L3?S[#U8J5,\?+/*<9G,4\S'K+_ MW !5L@=+!29#LYA*>-HLC'9&84F!*D5GS1I#,](L$!@Y>JZ7"^X#L):$:"VD M<^"=D+H4"F6."CU"7%M0 6LM51\M245S@3)" A:^]$CLE2\@ M_NW+.N0JP(#S2!T)+A6WM$,\VT[J'?6.;VB^Y Y+E):-8F!+O:D)PJ(K,4P# MHLS^D4MDV+&[A51%3^10UT>^T6)MU)I>!J,L4/3D++,C;TVNL Z^#-RV7'57(Q=7:&R.IJ/1 M'/-)-5+U%/43=1>8#[B1K-OCM;CE> _E$.J9#//IFIB;WAW75'H88:X#B@3- MG$;Z?2Y+=-YBWL=JJ:QIQ^H\JMH-$E=.&?^^"OJI"9,=7 $MV#I<=(X:H]<^ MW@;C[GB7WL8KY%4\7L0?I:V1Z"FH2'62_D)7EXV76UQXTX4+)3>>KJ?PVM#W M %@6H//*T%@9%FQ@_,)8_@]02P,$% @ [TB(5RJ,K6)6 P E@< !D M !X;"]W;W)K&UL?55M;]LX#/XKA.]PNP%=G#AI MNW5)@*9;]X+M5JR[NP_#/B@V;0N5)4^BF^;?CY+MU$/2?+#U1CY\2)'4?&/L MG2L1"1XJI=TB*HGJBSAV:8F5<"-3H^:3W-A*$"]M$;O:HLB"4J7B9#P^BRLA M=;2&/!-54E[':%RFP6T23J-[[*HB2_$2_GM2CP%NG?^L;R M*MZA9+)"[:318#%?1)>3B]7,RP>!_R1NW& .WI.U,7=^\2%;1&-/"!6FY!$$ M#_=XA4IY(*;QL\.,=B:]XG#>HU\'W]F7M7!X9=3_,J-R$;V,(,-<-(J^FLU[ M[/PY]7BI42[\8=/*SMABVC@R5:?,ZTKJ=A0/71P&"B_'3R@DG4(2>+>& LLW M@L1R;LT&K)=F-#\)K@9M)B>UOY1;LGPJ68^6_QA".(,7\*&JA;0<;@*3PR>C MBQ>*XY7!I7-(;AX36_,Z<=HAKUKDY GD5_#9:"H=O-499K_KQ\QR1S7IJ:Z2 MHX!?4AK!='("R3B9'L&;[ER?!KSI$=<=D(%KJ85.I5!P2X+0Q^"@ORW<[#"< MKYX+5XL4%Q&7AT-[C]'RKS\F9^/71\C.=F1GQ]"7X1:&EW15"ELP_^_?\(%@ MI4QZ]^,0Z:.PATEW.?&M1+@R;%%OGSD03,"Y/C_48WZ(D!\G('0&ADJT(#.6 MDKD4:X4@-0E=2)XZD"Y44 9-S069=!N'Q38S.^)^0*H9*U,.PU;$H74#2R/>0^% MP9O&>DU.*[-FUGUF,94M:$-[(Y46$31'<%^'?TD0>F=,MI%*C?9E/@K=<-\; M*DW.1B',N5'<'3T;"D&KK;GG*'+4N?&EAI-321&Z&/-/2PZHCZ8.CJ;"VJU7 M%94/AI MG";#+($:K7\FF+8&^9BJOZ=.3XZ%F)M26S[W^T.J3]Y)_SU] 4.80W47#WIE MA5Q"_D5P$!*I;9N[W=VC<]GVVD?Q]L7ZS!4HM0.%.:N.1^>G$=CV%6@79.K0 M>=>&N(^':YX4KK%M[ [BE>_@)02P,$% @ [TB(5WB*3G,* M!0 8PP !D !X;"]W;W)K&ULG5=;4^LV$'[O MK]AQ.RW,@),X%P*%S ]M'2&!3/GBHM.Q\8SS(4-=8&*3J;:Y,+1JTD[ MMC H$J^49YVHVQUUX]F?"K&XPTXNKH!>L-YYD M.G.\T9E<%B+%9W1_%8^&WCJ-E43FJ*S4"@Q.KX+KWL7-@.6]P*O$A6VM@2-Y MT_H;O]PG5T&7 6&&L6,+@G[F>(M9QH8(QO?:9M"X9,7V>FW]SL=.L;P)B[E,'HNB5Y BDQ.)>\RST$7S&TZ?+?[X8!4G9&Q:QEJ;WGA4DE'^Q0E M%&C\A"1S=1/MEB:'#KDOF'\5JE6=&UL/JD$4?4@!):<'#Y2Q:'32>N'%$03^ MM[T["*'9^Z'=UW&KKP&7O,:MVJ_+:?I4R7\Y(;0]U1E])I@S>]VO<:\+3YF7.F%& M4.\Q\@MR8! WIM &USY3$^P_]4RD1]1:/7VHY2%EGWRKEHX^%.HDC[D[R '78JUUPW'0^B%/5Z?-_@2..K!,8SX\!0BVB\D M=RE5D2HY1>F\R!G)D(51EX1.-QU2EV%E3##G",!VV2)V2KZ'T VY"#U.M$%8 M$+%IZLRICF3KA(LE356W=P E"=( :8VV4K'&QZD!26D8$;-O=[5"N+9L:NO@ MA)48#S\(D&DJLL=5:XQ6@\;K$V"O7JI6_^QDH\%,N&K:[/80;I';<_.]$9W/ M=G5I(S_6A_T^F[;&G+]G2;=J&G1WBEI>GZNQOT77;4;_?VI&HS.BPS@<#KDU M3R)JR]_K07?>8\9%(WBMTL-9EM:6S,?Q@/@X#JF5[QJ24E@&G2>O#U$L"?S1 M@)E['G*K;D+90=(Q83@/^Q647K^_CRVYS#(NIF_,77>)3NOBEZ-)_?76$A-* MY:H[8+/;W*"OJXOCNWAU_7X0)J6$0H934NV&9W1A-=65MGIQNO#7R#?MZ%+J MES/Z%X"&!>A\JNDN4;^P@^9_Q>0_4$L#!!0 ( .](B%0, #8( M 9 >&PO=V]R:W-H965TQLNP]%'Q2;CH61):\D3[)_7TJ*/9DV$VQ?K!MY>$A* MI)=[I1],@VCAT II5E%C;7<3QZ9LL&7F2G4HZ:16NF66EGH7FTXCJ[Q2*^(L M269QR[B,UDN_=Z?72]5;P27>:3!]VS+]=8-"[5=1&@T;'_FNL6XC7B\[ML-[ MM']T=YI6\8A2\1:EX4J"QGH5O4YO-H63]P)_,0W*(0#(AI?CIC1:-(IGLX']/?>=_)ERPR^4>(SKVRSBA815%BS M7MB/:O\+'OV9.KQ2">._L ^R^32"LC=6M4=E8M!R&49V.,;A1&&1O*"0'14R MSSL8\BS?,LO62ZWVH)TTH;F)=]5K$SDN75+NK:933GIV?:LLP@)^@G=,2RYW M!G[X31GS(]RAAON&:5S&ENPXZ;@\8FX"9O8"YC5\4-(V!M[)"JOG^C'Q&TEF M \E-=A'P]])>09Y.($NR_ )>/CJ=>[S\@M,&K(+W7#)9=O M@"O.P[EWIWN\!Y\:C?@L?4#!5ULR[>)_2U OG[KLN$]V,MLPPTO8^\=! MXNP1-;UU*%7;TILTSAT#5"R,9;(B-X'9_V+.)]?3*2PF25*X^?7,S>G[EHO> M/6K NJ97#JH&_-)S^]7A4]DRS+_\3C!I8#:#M,@@31,_?OX?E R5+#>I>R&@ M\D9)DCAD*7W3PO%)$_?-\@5=)1W:=.QIV MFDD+%5WS81,/):)CX!2',%!I?J!>,.C5 [>3V*24US290KKPPS?XN^>V^39. M6]]O/0O0*TLEU/O7C/%OX<9$7-&:3 M>9H^5;^G*%_$"]?Z%21761&&+ RY'_(\W$T*P*E,^B^9<]4A/JGE+>J=[UB& MK/?2AK(^[HY-\77H!4_BH:-^8'K'*24":U)-KN;4@W3H4F%A5><[PU99ZC-^ MVE!C1^T$Z+Q65!6."V=@_%58_P-02P,$% @ [TB(5T+&ULK5AK<]NX%?TK&*UWF\QH M*8F2'\G:GO%SFLPZR5A)^Z'3#Q )2=B0! . EM5?WW,O2(J*Y4?2?I%($+@X M]WV XY6Q7]U2*2_N\ZQP)[VE]^7;P< E2Y5+%YE2%?@R-S:7'J]V,7"E53+E M17DVB(?#@T$N==$[/>:Q3_;TV%0^TX7Z9(6K\ES:];G*S.JD-^HU [=ZL?0T M,#@]+N5"397_4GZR>!NT4E*=J\)I4PBKYB>]L]';\PG-YPG_T&KE.L^"-)D9 M\Y5>WJ4GO2$!4IE*/$F0^+M3%RK+2!!@?*ME]MHM:6'WN9%^S;I#EYETZL)D M_]2I7Y[TCGHB57-99?[6K/ZN:GWV25YB,L>_8A7FCH<]D53.F[Q># 2Y+L*_ MO*_MT%EP]-B"N%X0,^ZP$:.\E%Z>'ENS$I9F0QH]L*J\&N!T04Z9>HNO&NO\ MZ0?CE7@C?A>7:N:/!QXBZ<,@J9>?A^7Q(\O?B!M3^*435T6JTNWU T!I\<0- MGO/X28$?$Q^)\:@OXF$\?D+>N-5OS/+&3^CGA#?B6A>R2+3,Q-1+KQ!7WNW2 M-XB;[!9'*?+6E3)1)SWD@%/V3O5.?_ME=##\XPFPDQ;LY"GII^0#<:E=DAE7 M627^]5G=>W&>F>3KOW=A?5I:[5H6ZHV7F4K%7GP8Q8BC+..4*&AD$HTW(U[ M V:F;.L$\5X6%?)U,W"K[DQVIXN%H"T=@N>#L7XISG)E=2)%)*:JA(E)2CRD M1:.COO!+JY3X6'0^C@Y9(N3.D9KB\U*)8* $6"6--% MIG'Z]O>Z[XHLXHM(91,EC"D4WV&4Y89 M@F>6*90WN]!%Q/'P8%AHQX#))U!KKN_Q"%O9!1QI !BMA)311KSJ75]<8$^\ M%@L5B7>-0/-G$E$B\UP=:+,U6,', M>=FF!#2L$6W5ED+\:?#S25JOE?OMEZ-X=(CT"#3)H&UD6RB-6E%;4"9-Y2E("5Z!)P2[GFGDB6T?#A MS*L4Q=UQ10O^Q:+<%&K-Y6X3*)V%G#/I'2R@?B 2 (ML3=$?&L&#%M1G,8G, MDBI##J:U;5:P1D88_1)&'"'&0_(,AQM//I#UHC!I_1DH&+4_.(6UG#>D#P5E M3CG('SKCPB2(:A>LY)JF!?>S%G#VAPM&=\;"'N#;.X@.N_VX+MV8.AI&2&(2 MNY1HW)/H8#/O3NJ,"\M+K1[5^S_H[J'48\-9IA>2J?/O8E;I+.7\INTS_$34 MRL\0/YD8339M?.X55)R;R@97OB/BC5:8LLR5IM"?7HBC2=P7?RKJ<(]YJ,") M))'6KBEQ9&ZJ8&32;)-DF9:S.@V!RRHZAO!\K@B!-4DSXTZJ%!G]^(N'=R1+0\& M;A"Y>)A$+R"*+P([>A/MOQ3M_C-4]7]"&UR$@'U? 5H(Z+UQQS[/;T?^!8O4 M-I3G1E",9*L6J"3\TGD>OP07$%VJI.E4A J6&+(E'JXFD\^;*K8,)*$MU4TA MV;9J/(R.N*PPN<#G#^A) MTG=<^D-;IFYD[/IUG]^E6, RH"$X>V&'#B"%\,0J M:3,JSRNF,FBY,R*TFENF2KO'G&:4STRU*AD:9L:!QH&9U/9!^42;T 7W=^(? M$3>/FN#VA2.T=0/8E)$:?L=Q%.F@5BTQX"D.;I9[8HVD6_3_Q@*ZZC<-)@A^I.'7M0T4O4F&;0S$6JDNR-D/&>[@0@KU8/'S>!'=@!)V6N/<4/-98V%41[FF:=Z1MR MD2\TR9H;'\-%;3!DZ_YC!NEOY35QL<"/!5VP=+O9WFC$<1_(F![Q'LNL,:="X7<6A9\!6J"]4NW#.VH^TM M[5FXG-Q,#U>\-WSH)EDHALFH#O MNB-I BP8 "$2 9 >&PO M=V]R:W-H965T"_/'8^Z>)#JFUYP M;N"Q+"I]V5D8LSP?#'2^X"73?;GD%:[,I"J9P:&:#_12<3:U3&4Q"'T_'91, M5)WQA9V[4^,+N3*%J/B= KTJ2Z:>KGDA'RX[06<]\4G,%X8F!N.+)9OS>VZ^ M+.\4C@:-E*DH>:6%K$#QV67G*CB_CHG>$OPI^(-NO0-9,I'R&PW>32\[/BG$ M"YX;DL#P[P>_X45!@E"-[[7,3K,E,;;?U]+?6MO1E@G3_$867\74+"X[PPY, M^8RM"O-)/OS.:WL2DI?+0MLG/#C:Q.] OM)&EC4S:E"*ROVSQ]H/+8;A,8:P M9@BMWFXCJ^6OS+#QA9(/H(@:I=&+-=5RHW*BHJ#<&X6K OG,^*,T' (?>O"> MHW'Z8F!0*JT-\EK"M9,0'I$P@@^R,@L-;ZHIGV[S#U";1J5PK=)U>%+@;6[Z M$ 4>A'X8G9 7-29&5EYTPD0-1L);4;$J%ZR >\,,1VB9@_8Z:\VY![=+KI@1U1Q8-:TUYW6, MX*_/_-' =2'S;W\?,N#T%NN0;[9P8OMPM9HCXLCOOM<:A)OWQ._#NPH^,)4O MX%>>\W+"E:7QMH'V8"85\9J$X!XRKI.5U:*$/GQ<<#%>(:V9/%+?H&FYK+0L MQ)2121-6V!C:7-7(1W8]PR>LT'++,:QQ#8T4HACX(Q9I').G@G[0N.*0'GJ- M?:*N3<-UP )OB9\X4\ IE^$/5JVP4C?:]7> V =9H;(+H=!GE31;ORNS;]U9 MALJ=I?VXT7"/Y'ZU7!96/\S3+9^A->X0SC,_""-("K/%^5 M*Z?HE&.UP.)CUIAE)2)1_.,FNO$PA%?0S7P?_XYN4J$7SB!.AO3$#;:4;/ K MR,+#2^T$0!E10+JF,7R6Y.[9,7%$%60U[>U..JQ=LSO_Z?9+O8:,J1=E*6GM M)6&V1[JE^;'%'=U'(3EZ%(0G YG'I!'.'N81+6QA[+?F=NYODIXA42;^,> M1Y=+C1912@EMMI(6Q9+PJS;Z4&(K6$1 4YH5UA41!3X-*?JAQ4N8 MX!F 7N5$5QUP7[.ZKDL1#"+@7JK6EK1T]N/_M)2N7KZ_6[!H2C$$ZBC&M MXL2'9)C!_08*;4G=X-7/I8U&$$00H:0LQ'HSZ15U,P R!\]]*VVD(;>)^ M0^*73$QM;<=ZLR+XH)G%:NJ.$H)NB7NL5',B'"TE%#2K,+;VI#,JI&2Y73-L MH;!Y'B9!*]@_Y\L@C$\S[.2K1O=&%$DL+)F%;QN!&B3XWWNV[_^O0CO'STXMCD96F9-:.YU[\-5> M3/BTQWX@]7Q=W2EUM#U@ID+G! U 6732*;Y]D.[:MR<0P8.V;9+:B>ZBI=1+ MZ%=[UD38S.WI'L3]T;[L;>7V) 5^/X07^\*&*.L%MJEFI6K_'T#VL1YLMS'> M;;_?UIV2:VM+!P;LF(ACIX^(Z0A)"3JCAFW=8!T@3Q#."48-2^XSJ%,"?SQZ M)G5&U,CS/.HA4H=9]#RU1]CU9 @U;%VQ+YUA_/'\C%-"7_OD7+(G=X(A@F,O M=HT2,M.=Y[RN3P@F>ZNJK/_%^B#I9C;-L?(&85-Y#P3T4,_9G.74PGS::I>K MO:KBP<-"X-T&2RZV:U)1AB.9-HK9KI\N4_090! EX@W'"6HMT _N!M_,-M\_KMRU?T/N/I[@A6PNL!LH^ Q94:>DXZXI MZX&12_L18"*-D:5]77 VY8H(<'TF\598#VB#YJO0^%]02P,$% @ [TB( M5^&43O+" @ &08 !D !X;"]W;W)K&UL?57) M;MLP$+WW*P9JT9,;;7;LN+:!. O: FF#I,NAZ(&6QA81BE1(*K;_OD-*5MS4 M\47<9A[?XRR:K)5^, 6BA4TII)D&A;75. Q-5F#)S(FJ4-+)4NF265KJ56@J MC2SW3J4(DR@Z#4O&93";^+U;/9NHV@HN\5:#JT:5F&'DO,2I>%*@L;E-#B/Q_.^L_<&/SFNS=XM,#$HNFY%MVG?88-5/(*U!G<*&D+ U@0O[;2F'B\]HM6 57#-)9,99P+N+;-(.6;-(;T-7/\P MG"N7L:E8AM. ZL&@?L)@]OYM?!I]/$*VWY'M'T.?N1@ DTTPX.JQYD],.*)P MR4TFE*DUPN_ON+$P%RI[^'-(P-$K#@MH$^+-7CIDCD&!(H?%%J@/4*9+JN*% MX3EGFM.;<)C"2REQ+QT- MZ1LED4?I_0_A]OK1R',8GJ5P*!/" MO7(M4:]\4S*0J5K:IG*[W:[OG3?E_FS>-,T;IE=<&A"X)-?H9#@(0#>-J%E8 M5?GB7RA+K<1/"^K=J)T!G2\5Q;M=N NZO\'L+U!+ P04 " #O2(A7"K&G MWLX" E!@ &0 'AL+W=O0A MJ51QTN^?QZ60.DK'P7=OT[&I24F-]Q9<79;";J>HS'H2#:*=XT$N"O*..!U7 M8H&/2#^K>\NKN$/)98G:2:/!XGP270TNIR,?'P*>):[=G@U>RC#KK]CJ.?-XF5$N_,.ZB1V>1Y#5CDS9)C.#4NKF*3;M.>PE7/3_DY"T M"4G@W10*+&\$B71LS1JLCV8T;P2I(9O)2>TOY9$L[TK.H_2[(81! J=P*Z2% M9Z%J',?$R'X_SEJ4:8.2_ ?E$]P9386#+SK'_&U^S(PZ6LF.UC0Y"O@CHQX, M!R>0])/A$;QA)W,8\(9'9#H@ [=2"YU)H>"1!"&_7N0.Z6W@1H?A?*=#\_[G(V1''=G1,?3T]2;@1KI,&5=S$?C]A!N"J3+9\L\A MRL=!=Q?]5"!DPMJMU M8^2(.S)Q=K@"A\\; EUKRGC^<$VZDKM3AP;&PO=V]R:W-H965TBB$FU3K/!X"RMA3))/HUK2Y=/[8:T,KATX#=U+=SC'+7=S9)ALE^X M5F5%82'-IXTH<85TVRP=>VF/4J@:C5?6@,/U++D83N;C$!\#?BK<^0,;@I([ M:^^#\ZV8)8- "#5*"@B"?UM5G02*?.KL#%Z(9+1A1:LQF91_MX0P',%[ MN$:)AN!"2KLQI$P)2V<-VQ+Y$LA/4^)Z(2N5'?:\QP?X(5]90Y>&+*;!X MGI\RSYYLMB<[SXX"_I!T J/A.\@&V>@(WJ@7/XIXHR/B/9"%2V6$D4IH6)&@ MU_6V<..7X<+\3'PC),X2'A"/;HM)_O;-\&SPZ0C9<4]V? P]/[@8)FD*X0H/ MMTW!?(%=6%3"E C*/+]"Q;H:C?#[!A\(YMK*^S\O23M>?-\F-Q7"PM:-,(^ M6Z$W7+W@X8RM(Y[J-L]:)_(K+)^UL?324:0'#5RC*^.8>HAP;2_WJ_U+<-$. MP%-X^XQ<"5G";AV-%N';!/'X;+C?]\C]6)G=3W8D,A[>?C<'>\TW1K[[ I$@I=2:3>+ M"J+J)HY=5F IW,!4J%FS,K84Q%N[CEUE4>3!J51QFB23N!121_-ID-W;^=34 MI*3&>PNN+DMA=PM49CN+AE$G>)#K@KP@GD\KL<9'I#^K>\N[N$?)98G:2:/! MXFH6W0YO%F-O'PS^DKAU!VOPD2R->?:;/_)9E'A"J# CCR#XM<$[5,H#,8VO M+6;4'^D=#]<=^OL0.\>R% [OC/I;YE3,HJL(.*:NMKNX)%,]CR-B=&]39RU2(L& M*?T!TC5\,IH*!^]TCOEK_YA9]=32CMHB/0GX):,!C(9GD";IZ 3>J ]U%/!& M)T)U0 ;>2RUT)H7B4 4A7S%RQ^)MX,;'X7RWW+A*9#B+N!T88>D%ET&0?F?0[4>-?@!46,2]N*U?.'ME% \! MJ== 8JD0'))CH:6"O5Y1"\TJ:Y,60F]^\6!*P3KP*P@ M,V7)]%W(5E[;< C;'F=S _=HIQXY'"[0*IFI'0BM3:TSUE9*:*9ONU(XN/6U>)$\;A!R M3I>PL!&JQ@-P*@3Q"-C!CF?V$@\.J[GS; C["'"]YFD"73G..T%?H$D*;^!J M,!DWJ^LA/&)%3?'W7GO9*&F%PX3=KE/_/N\SO??X[B:I_W_1\+'F MU*23YAJ=P45R$8YX][7V]^"_\VEPK,?B@SE8HEV':>_X;M2:FI'82_L/RFTS M1_?FS=?HD[!KR2E4N&+79'!Y$8%M)GRS(5.%J;HTQ#,Z+ O^**+U!JQ?&6ZZ M=N,/Z#^S\V]02P,$% @ [TB(5T5#YZ5H P / @ !D !X;"]W;W)K M&ULK5;?;]LV$'[?7W'0ANW%C639Z=+,-E"G:Y<" M38.FVQZ&/=#4V2)"D2I)1?%_OSM*EEW4-C9@@"V3U-UWW_W@G6>M=8^^1 SP M7&GCYTD90GV=IEZ66 E_86LT]&9M724";=TF];5#442E2J=YEKU,*Z%,LIC% MLWNWF-DF:&7PWH%OJDJX[1*U;>?).-D=?%*;,O!!NIC58H,/&'ZO[QWMT@&E M4!4:KZP!A^MY\GI\O9RR?!3X0V'K#]; GJRL?>3-;3%/,B:$&F5@!$$_3WB# M6C,0T?C28R:#258\7._0WT;?R9>5\'AC]9^J".4\N4J@P+5H=/ADV]^P]^>2 M\:35/CZA[62G)"P;'VS5*Q.#2IGN5SSW<3A0N,I.*.2]0AYY=X8BRS0B.WBK2"XL[&Q#&E_ "[JR1U@1G-9G\!\!1\(J/3PJRFP^%H_)7X#R7Q'),S3GL(%MXJ(XQ40L-#$ &IV([[V\%-C\/QO;GVM9 X3^AB M>'1/F"Q^_'[\,OOE#-GI0'9Z#GUQ(B_P1GFIK6\C@?>-(3Y=!8S@*KL,N=!D<5W6.LK[.BM "N>V;%A43-!_8]58\^(PR4,! M$O"I4#J4UE%+HAY+%4A,L:(8T2P"_-*HL"4CWT;XO3 -BPP'1Z)-L6WY087U MW_6/]8CTH*-7Z#9Q;G$P*19=_%NKGX0;J/H8FA&UL M?55-;^,V$/TK Q5H+Z[EKZ3;U#809[MH#]L&FVU[*'J@J+'$AB)58XU(<&JLBYNL)FKO\CSJ&AL5I[Y%QSM['QI% M/ U5'MN JDQ)C/\ODUW*3S8006M0D"(K_#OB U@H0T_AOP,S&DI+X>GQ&_Y"TLY9"17SP M]B]34KW)WF50XEYUEC[YXR\XZ+D1/.UM3+]P[&-O5AGH+I)OAF1FT!C7_ZO3 MX,.KA'>SKR0LAH1%XMT72BS?*U+;=?!'"!+-:#)(4E,VDS-.#N6) N\:SJ/M M;YX0YK?P/3QX1\95Z+3!N,Z)P24DUP/0K@=:? 7H1_C( '6$GUV)Y=O\G$F- MS!9G9KO%5<#?-4UA.9_ 8K987L%;CDJ7"6]Y16D$\O#!.,4BE84G4H1\P^BB MWAYN=1E.'LM=;)7&3<:O(6(X8+;]]IOY[>RG*V17(]G5-?3M@V\:0XD:*%>^ M/1QX;Z*V/G8!X>_/>"+86:^?_[DDXFJ9RR+.5^)SC5RW:95[ 1/YV1;_\E,2 M!P\J&-]%L%BQBVWP&K%D>CU7;95IV.E:$7!@1#".9P@^'F2.[F""=V*&LA,@=9I(S;)C,M:HPEA#+ZDR^X.! M&7U9[;E,WVA16H>.7>2.QJ)T/8:+M<<:'1@2P5RC4(7%7LF^(_%;^\A'L<8+X"1#/<0+*?P)'&)A++L&(-*6RF!>U2) M!VZ3;7_N;'3)&9/DW4#^NS@B1?$OV=J1]HUP-U1SS=@.Q\2;;"3'$@9V6#@: MQL53B\'P54H'H_EF":2K)B >5$K&O2 D:>(5>$9BKTQCK IGP"G<)PK\3GW! MV^>G.@'G"2Z]@?Q5FVHP5*D91[D-COJ.-:Z._?Z^;W-?PON/Q4<5*N/D!NXY M=3;]X2:#T#?@?D*^34VO\,0M- UK_F9AD #>WWN^Y<-$"HQ?P>W_4$L#!!0 M ( .](B%<7.ESA[P( /\& 9 >&PO=V]R:W-H965T[[.DXQ9[HM"Q2T M,Y^6$0]/V<<>%% [S%5-/,;E(3G*#27 A3.A]ZH"SWG,A(%1',M2&"X6,)49CSEJ>+\=?1CXAN)9+S^NL<<5=O@*]B>X ME<*D&BY%@LF?_C[Q;,B&6[+C\"C@M]BTH=MI01B$W2-XW49\U^%U7\$[)/AI M---&T6'Y=4APA7=R&,]>H'-=L!B''MT0C6J)7O3V3:W(,/;JC M([[/6$E!XQCIBAC=JA1LX*G^/^+:P#B3\?-!(<=#[9^*O\-N$W6/ &T8;:M/4#T:%XAF$I_54$ >@"LL9 MP39&DU(IT@>7ZX+N,28P49AP U^EUG MX*8DKS#H]%MP)]MN!)UN"ZZX8"+F MQ.1:4#U+ER3XN.]N3_>C+'@,W; /0AJX0,JF#=_IN?!A&ZYPIASMFE#+&1[F MVCY2Y%Y3Y-[QS)7IK$[*(>'^7E/*42UAENF%EQHR'!.KD'[ ME$2JJMU6$R,+U^)FTE##=,.47BA4UH#VYU*:[<0&:-Z\Z#=02P,$% @ M[TB(5[&(9#$$! E0D !D !X;"]W;W)K&UL MG59M;]LV$/XK!ZT=6D"-)5&2KN]'RJ.EL+B5<:3-J]W/N(_' RQ5;?P_[/:R40!E9ZQJ]LJ$ MH!&R7_G]/@_?HI#L%1*/NW?D45YPR^=3K7:@G319LW6XWXK#Q R54KU#Z_GTG\]5.7??>7/*&6 MG'((;QW.&V5Y_7\VKK2JNM(:> -)F&4,,CI] VG(<@9QXIEQF*4QC#T=QV&< MIA!'Q"U;+ 6O[0-0VS@@%C1*=Q.!X7P"9$LRPLX@FPE.A7K=+G[XG9) W3 M(H?,J2116*1CR%R .461%SV=%6&4DTQ.=)\3"C\+\R*B*",?-!N'1<0&-HZC M,)T4CWR4AW$RZ?DC;9@-;9@=;90E#8"JHW:C*IT9^FJWKAT-T"2 CTIN/EQT MNN_0OG5?=>>O7)+7A\>-W2H=YW :,RCW-(QN&86O8C&LJ'J&NO9Q549 E8XKLGR4.6% ,TP/O2 MB5.F#QHA2!K)!(6NP\2O;,)@P6LN2X1^8)CV8G3//$M2%U6?[HK!:P_&JQW=%E,)[>$=W+V5$ M_.=DO70'1D]&98-ZXQ\$AKQVTO93<]@=WAQG_:A]%.\?+)^XW@BZ#S6N234Z M&5/WZOX1T#-6M7[PKI2E,>[)+;V;4#L!.E\K&D)[QCD87F+S?P%02P,$% M @ [TB(5P1F<6%8 @ *04 !D !X;"]W;W)K&UL?53;;MLP#/T50AN&%FAKQ[FTZQ(#37?KL&Y!VVT/PQX4F[Z@LN1*:OTO2D0+6PJ(6!JC3SUH$H$41C.@HJ7DL5S?[;2\5PU5I025QI,4U5<_UVB4.V"C=C3 MP4V9%]8=!/&\YCG>HOU1KS19P<"2EA5*4RH)&K,%NQB=+R?.WSO\++$U6WMP MF:R5NG?&5;I@H1.$ A/K&#@MCWB)0C@BDO'0<[(AI -N[Y_8/_K<*9.-L#>J_8Q]/E/'ERAA_!?:SG<:,D@:8U75@TE!5S[5J03MO8G,;GZI'D[A2NI]R:S7=EH2S\3=E M$69P#%=5S4M-Y;:@,OBJ9'XLJ%XI7!B#UL#!'5\+-(?SP%)8!PZ2/L2R"Q&] M$.(M7"MI"P,?9(KI__B Y Z:HR?-RV@OX??$GL!X= 11&(WW\(V'&HP]WWA/ M#0QT^>U*KT-/=J/=U)R;FB>X8#06!O4CLOC-J]$L?+='VV30-MG''M_2%*:- M0/=3/BF5MJ40\-MKA3O<6%@*E=S_V25[+_%NV5^X;&@TA^("=3[UM03<) 67 M.4*_8);16 ']";5&_>P_2'P-T5$4G=)Z<#J%0V^/IA'L*DFPU;X5ZMP/J8%$ M-=)VG3R<#N_ 1=?^S^[=(W+-=5Y* P(S@H8GIU,&NAO,SK"J]L.P5I9&RV\+ M>LM0.P>ZSQ0U0V^X ,/K&/\#4$L#!!0 ( .](B%>+BC3,KP, (@) 9 M >&PO=V]R:W-H965T*?TH]D@6M@7>6DFWL;:[640F'2#A3"^VF)).RNE"V%IJM>!V6H4F5,J\B . MPR0HA"R]Z=BM+?1TK"J;RQ(7&DQ5%$(_SS%7NXD7>2\+MW*]L;P03,=;L<8[ MM)^V"TVSH+&2R0)+(U4)&E<3;Q9=SA.6=P(/$G?F: PJ?RSS.QFX@T]R' E MJMS>JMUO>(BGS_92E1OWA=U!-O0@K8Q5Q4&9$!2RK/]B?\C#MRC$!X78X:X= M.92_""NF8ZUVH%F:K/' A>JT"9PLN2AW5M.N)#T[_:@LP@ Z<&=5^MCA #.X M4@45W0B7M[-[LU[?@KMD?P095V8^!=F6'V6C\@G W8 M^ 7L/&XU>)-:'[K1!<1AW&VQUVV"[SI[W9;@#=3QG0JOUNZ=UN;CR\?5=+AU_XJ/1+1JK96I)U!S1,#VF(=;APH\0QR/^]KKT388) M?0=)%UI2WF]2WO^^E-]L&0HEF%N)M,_?F.)6KZ=37'LR\-EU%<(S>T)-39*J MCCJ5E(<%)0SA;$%I-8S[_*WL+7)7EN6:#G1I-37 2N0$5A=P=EW",PIMSF&V M7FM<"VH#UR0DJ=VF\"#R"N&FLL82N]B"L/"[*"OJVU^JV LI]U'H#_L0^1&/ M1PV^#,XB.(>$-SL0,UNEIE6E@6Z2%4KK1 8D0Q:2D(0ZKQT2J[$VYG), -[2 M*&:GY+L/H<^DB-IHD#0T2+Z/!D=T=5W387VS^*F4]C]3I179::H<.V;D)TCS MEBO_O^AQ,J!$#_U^GP_A14P'\%?*#;L;15S+.($'@G1H3-*8BBL][%&EASX= MVO=-^8D+&JVC!7$"K-@3^+,>4+,AQ1:JA/Z"CK>M[OYY8M75W M[5)9NKG=<$-/)=0L0/LK15?.8<(.FL?7]!]02P,$% @ [TB(5V.Z]&9^ M P 3 @ !D !X;"]W;W)K&ULE59MC]LV#/XK MA%L4+9"=7_-V30(T?<$&K+=#A>:1B,K MO%$MPB2*)F'-N Q6"W]VJU<+U5K!)=YJ,&U=,_UCC4+MET$<] =?^*ZR[B!< M+1JVPPW:/YM;3;MP0"EXC=)P)4%CN0S>Q=?KS.E[A;\X[LW)&EPD6Z7NW>:W M8AE$CA *S*U#8"0>\#T*X8"(QO,8.+U?"^"_L.]W)/("\-5;51V-B4'/9278XYN'$8!8] M8Y <#1+/NW/D67Y@EJT66NU!.VU"B-Y %]^Y\#KK M[+RU>R_7IF$Y+@-Z$ ;U P:K5R_B2?3V K=LX)9=0E]MZ/T5K4!0Y6-QAJJ, M8,T,SX') CYPT5HLX&\?"-SAP<):J/S^V[F8+GH]']-=I1&?U!*H$FI+9%PQ M;@CC^5M7*O=)3E8=][U_,J3.'E!3!X!.W#=)9["Q5!!0C5,ROFP$:#7/ MG3?C+Z6RP&4N6I="+L%6WG_3VHXQ!5(<2XW]#Z*AC'AR[K8GZ]&VF+/6H$?I MW (>4.>E;\KFE#+J78=73%+V$>#1/ MQUY.DYF7LS0CF8RF8(>^MM%VS'TZ'4?FNFQ"/ZMV<_=PX!\,?B-4_4$L#!!0 ( .](B%<6 M8W?_M 4 /00 9 >&PO=V]R:W-H965T&9X= 7CUS\D M*%3P5>2DO>PNEJO/A4*8+6A!YQBM:XLR,BX(H M_!3SH:P$)9E1*O*AYSC1L""L[(TOS-B=&%_P6N6LI'<"9%T41#Q?TYP_7O;< M7C-PS^8+I0>&XXN*S.F$JF_5G<"O88N2L8*6DO$2!)U=]J[<\^M$RQN!/QE] ME&N_07LRY?R'_OB87?8<;1#-::HT L'7+WI#\UP#H1D_EYB]=DFMN/Z[0;\U MOJ,O4R+I#<^_LTPM+GM)#S(Z(W6N[OGC[W3I3ZCQ4IY+\X1'*QM'/4AKJ7BQ M5$8+"E;:-WE:QF%-(7$.*'A+!<_8;1E,F2N L0STU_L(5!=>!4_A$T3D)_0WX'GM[[Z!L_O\%6"]6^? M>U8[V*^ML^-<5B2EESVDOZ3B%^V-W_SF1L[;#MN"UK:@"WT\J:LJI\AV17*X M)CDI4PH3DY8?2YM[FL3W-">*9J!XLU]_&7_@@3XIN,YY^N/O?:YU+K[?M:\5 M%;AH.0=29G#+2F-2;E8]!]P;/J6BW1[X@Y0U9O5J8%,#B)14H>*=P((BU+-! M??^S9I5V&ODW%UQ*> 6CP,&G.W C%Z[2M"YJZW)&T;:4V3AH95)PH=@_=J ? M)!Z<0#]V''P=7*3$>+Z"($ST$Q?8,!)R1J8L9XII#_=//8-3K0(]?K4,AY.;?RT< -?%S="[VEL_RP#8@;#YS(QWY_- HPI8/0@3")L:ZU-%Q'ZKLG+Z.-1N#ZX"-2[,&DGIY:!%:F MO*![Y/N>+@A]S!E\8L;C,] CEL/K6X9Q2C1CX] 6H"32L8LQ>!WLC5KV1L?7 M]QLB%W"+_=#>VOZ?"GOGJOLYWDWB%?.,E15A&:"-NMK6FL 8Z+S62JP$M:!0 MH+6U,)[I?3M82#5M4HV(G>$,79UHO!"[H5MJJ5 MQ WV-9>PK,8F@=9S@$\5]K/62?J4+D@YIR8*);:9UD4^S=G >(1WI0A",CI2.M33J'">=H+07^\>9/<+^-\:T M>UC@(4QF2$KLI()(9Z(]L2Q9*_)L^PG,YF 0V)89E3]1B72SM1H9;C:B-/%G MS;'>CTW)PW/0]=IS<+<-(&JW-*VZ.MW,[B/J<.TF6E Q-_=M"289[*6T'6VO M]%?V)KL2M_\'?"9BSK!'RND,59VS&-LY8>_8]D/QRMQKIUSA+=G\7%"24:$% M<'[&\;ZW_- +M']TC/\%4$L#!!0 ( .](B%=Q+& J>0( )4% 9 M>&PO=V]R:W-H965T $$AE>>O:;K21 MUC$$2(-I&_ !\<%-+DVTQ.[LRS+^/6>R[GNWFK])TI$ D> MZTJ:A5<0;4Y]WZ0%UL(^V6@4F0/5E1\%P<2O12F]9.[. MKG0R5PU5I<0K#::I:Z%_+[%2[<(+O>W!=;DNR![XR7PCUGB#]&USI=GR!Y:L MK%&:4DG0F"^\L_!T.;;^SN%[B:W9V8/-9*74G34^90LOL(*PPI0L@^#E <^Q MJBP1R[CO.;TAI 7N[K?L'USNG,M*&#Q7U8\RHV+AS3S(,!=-1=>J_8A]/L>6 M+U65<5]H.]\)1TP;0ZKNP6S7I>Q6\=C_AQW +'@&$/6 R.GN CF5[P6)9*Y5 M"]IZ,YO=N%0=FL65TA;EAC3?EHRCY(LBA#"$MW"-AG29$F9P+DP!KV_%JD+S M9NX3Q['>?MIS+CO.Z!G.$[A4D@H#%S+#[&^\S_H&D=%6Y#(Z2/@UI2.(PQ%$ M010?X(N'I&/'%Q](VD"7W[[T.O1X/]JVR:G9B!07'O>!0?V 7O+J13@)WAW0 M-AZTC0^Q)]LR\),UP,_6U4+(OB@7]TWY("J49."G2P!N\9%@6:GT[M>^7 Y& MVY\+_VZU0CW\_0_,%*J54$J@ L&0(.3!0*#R[CKGV6)C3T?C8.8T3$]BV%<- M?Z=5:M1K-Q ,I*J1U'7-<#K,G+.NU9[>Z"[(= 9 MI#:N\5:*N(W=MN"YB=HZ\'VN^!WVA@TP3.+D#U!+ P04 " #O2(A73]I* M(\4" !)!@ &0 'AL+W=O\9.VG:1=VB5HD] MGG-\QIZ9##=2/>D>;DQU9WOZS3'@NF>K+"DE:54!3,T52M?5PI9 MYD"%\,,@&/@%XZ67#)UMJI*AK(W@)4X5Z+HHF-I-4,C-R.M[>\,C7^7&&OQD M6+$5SM!\KZ:*9G['DO$"2\UE"0J7(V_Q3"$I&,/RVGUVUI@\>=4?!._/:(L[;?$Y]N1>,*U!+O^]CE].+LQQ:V BR/+[E/*S MW*>53U%QF<%<&B:@K(L%*KN]SAFY0%6K-*>DSV"\1D55"I7B*3T9S^"B(E_G M^/;_>$83IHQ=J^J%X*G8 2M+69)Z164%;3I1XK>&?8+!((37<-,; MQ,WHM@\SK RZR ZH@RT*6F,_(-AM:-^70$DKGR/VENA@:G[-V5V']G\JA?RC M\BY0K5P3TY#2V9FFTCMKUR?'37LXN#=-]H&I%:<#$;@D:-"[OO) -8VKF1A9 MN6:QD(9:CQOFU.M160=:7THJGG9B-^B^'LE?4$L#!!0 ( .](B%?_4I$B M\@$ $ 9 >&PO=V]R:W-H965T\"?[=:1 MQ2>64FHP7EK#'%3KY&9QO5F&^!CP2T+O+\XL5'*P]B$87\MU,@^"0$&!@4'0 M[PBWH%0@(AE_1LYD2AF E^$E5")3N'.]E]@ MK&<5^ JK?/RR?HA=726LZ#Q:/8))@99F^(O3V(<+ /$\#4A'0!IU#XFBRCN! M(L^<[9D+T<06#K'4B"9QTH2A[-'1K20L'2>+E_@6TY]6$:^J^?ZT.D#.&:KL6YQ4'!NA7^J MWH%N%>G"YA_S1<:/EPKXQ50TN#KNGF>%[0P. YJ\TWK?#%/]%SZ\C7OA:FD\ M4U 1=#Y[3WG=L&^#@;:-,SY8I(V)QX:>*+@00/>5I3F/1D@P/?K\+U!+ P04 M " #O2(A7944](WP& "&00 &0 'AL+W=OAFN;)F;'.G3CQVTG[H],,:K2P:Q"JP MLI*9_O@"PEQDO)+2-_UB SKG.0?8=R_HH,F&QY^3!6."?%V&47+160BQ.N]V M$W_!EC0YY2L6I9_,>;RD(MV-'[O)*F9TECLMPZZF*,/ND@919SK)C]W&TPE? MBS"(V&U,DO5R2>-O5RSDFXN.VGD^Z)646 M+%F4!#PB,9M?="[5\!VR2U;9*=R@/GG[,=9W;14;*,6,A\D2%H M^N^)7;,PS$AI'E\*:*>,F3G6MY_I9G[RZ*O$\&7A7.:P3*(MO_IU^)"U!PT[14'K7#0 M#G7H%0Z]0QWZA4-_QT'MO^(P*!P&AT88%@[#0QU&A<-H-Z7A*PYGA;YSRL$NY-KIM*\F;F$X%G4YBOB%Q9I_RLHV\G>;^:[?V^=O MROW'^_SM/?EK$D WO?;E#=">;\"5)B7>L]4IZ2DG1%.T'OETKY-?WKQM2>Q: MCG'748G1)!A=COG@BQ2C[LW&.!RCM=TE3!;6$5E(,/:>2TNC*IL6=^> +)3] M)^/NN\'A0=?$DV-TYC]CU$$[IM&,>V4_TLNY_5>X3N2G(WJ2]QG;K;=95]'2 MJ[1U&E)V-JLX3U;49Q>==-J0L/B)=:8__Z0.E5_;A(*$Z4B8@8296]@PAV43 MIZ?IH#<:3;I/=8&\-.KW^H.FD8U,RT'"7"3, \$:\NB7\NA+Y7''GEBT9N2* M1?XBG;M^)G_>L.4#B_\B_Y#K?*!G,;GFD<\B$=-\MGD7))59FVJD(8]5#1*F M(V$&$F8B81829B-A#A+F(F$>"-90X:!4X4"JPO?K3$N$S\D-_9O'I?!:)[)2 MU+'J0L+T+6Q0Z]359H]NO+10FA;F7@MKKX6-/"D'"7.1, \$:[388=EBAS]V MW$C-/D2L,I6-)])4CFWQ2)B.A!E(F(F$64B8C80Y2)B+A'D@6$.=HU*=(ZDZ M7^KNA-RR.#M&'UL7.E+>L1)#PO0M[*S>W9^J_9UQ!1G11,(L),Q&PAPDS$7" M/!"L(9VS4CIG4NFT/6X$+(FD08_5%Q*F(V$&$F8B81829B-A#A+F(F$>"-;0 MX;C4X1BW))*BCE47$J8C80829HY?+*.TG846,IS],MS.VM!!AG.1, \$:^A M5:HOPI0?/2(=L]B29W.LF* T'4HSH#032K.@-!M*+31\W MO)HVRL<\:3I'BQ!)TZ$T THSH30+2K.A- =*9! MRRJ@-!U*,Z TLZ UQQ5MYUFH!8UI0VD.E.9":1Z*UI1158BARBLQS""BD1_0 MD%PF"1,GQ/BR3G<$)SPF5LRH2 <\L: 1&2M$I]\2W$EKMNLQKM6NCS1H]LVM$"C[0QZX\'N M.5C0J#:4YD!I+I3FH6A-$505&*J\!*-UZ#ANT(#69$!I.I1F0&DFE&9!:3:4 MYD!I;D&K=T@[?9&'"MC45%6:H]J/W A^#+?7# Z8W%FD'X^YUP\[V0!RI]>F/X+ M4$L#!!0 ( .](B%<,TY+7P@( %\' 9 >&PO=V]R:W-H965T^?T/-I(]:AS $.>"B[TV,N-*2]\7ZUFX8ZO2W+!DK0&@F!5&P''N7@XM) M;/-=PC<&&[TU)];)0LI'&]QF8R^P@H!#:BP#Q6$-$^#<$J&,WPVGUQYI@=OS M%_:/SCMZ65 -$\F_L\SD8^^]1S)8THJ;.[GY!(V?4\N72J[=+]G4N6?G'DDK M;631@%%!P40]TJ>F#EL Y.D&A T@? T8[@%$#2!R1FMESM8U-309*;DARF8C MFYVXVC@TNF'"WN*]4;C+$&>2+]( &9)WY [6("K ,94KP5R-#Z_!4,8U>8 G M4U%^A'GS^VMR>'!$#@@3Y"&7E:8BTR/?H!A+Z:?-P5?UP>&>@\_)5 J3:W(C M,LAV\3Z::)V$+TZNPE["KZDY(='@F(1!&'7HF?3#/U.Q#[XC)VH+&SF^X1Z^ MB=1&DUN15DI!1O#_1N8BE47)P6 \0?,*OV%]3"Z%82DK:;W,7S[P&2@F,W+X M Z@ZZJIO__D#\HS KCKTXFS7N- E36'L85O0H-;@)6_?#.+@0T]5AFU5AKVJ MYF+!T&%F/S-@:[K@@!68V!H)TV6RIHL=G>U(ZV0PC,)@Y*^W+75D#>)HV&;M M:#UMM9[V:IVR+.- ;J@VY.<4B@6H7UT2>UG^O9ZUD_]$MF,X;@W'__=RXJ[+ M"5Y?3D<6"@Y>78Z_U<,*4"O7VC5)925,W<[:U?;UN'1-T_^;7C\]4ZI63&C" M88G0X.0,BZKJ=EX'1I:N(RZDP?[JICF^@*!L NXO)7;%)K 'M&]J\@=02P,$ M% @ [TB(5]5FQ 8,! 9A( !D !X;"]W;W)K&ULO5A=;]LV%/TKA%8,+=!%HKYL9;:!Q/:P/F0UXF9[&/; 2->V4(G4 M2-IN@/WX41]1+(E6G458'B*).O?PGDL>4^3DR/A7L0.0Z%N:4#$U=E)FUZ8I MPAVD1%RQ#*AZLV$\)5(]\JTI,@XD*H+2Q+0MRS=3$E-C-BG:5GPV87N9Q!16 M'(E]FA+^= L).TX-;#PWW,?;GHF=/*! _![#49S>'K_S/Y+(5Z)>20"YBSY(X[D;FJ,#13!ANP3><^.OT(ER,OY0I:( MXC\Z5EC+0.%>2)96P2J#-*;EE7RK"G$2H'CT 7858+<#W#,!3A7@7-J#6P6X ME_;@50&%=+/47A1N022933@[(IZC%5M^4U2_B%;UBFD^4=:2J[>QBI.SWY@$ MY**?T#T<@.Y!74.VI7$QBG6K0(]/-6*>$"'0^P5($B?B@T(]K!?H_;L/Z!V* M*?JR8WM!:"0FIE0)YMV8897,;9F,?289!]TQ*G<"+6D$D29^T1\?],2;JC!U M=>SGZMS:O82?0WF%'/P1V9;M:/*97QYNZ^2\K??E?^Z]40RGGBI.P>>>X5N3 MI)P(&6?1/I2Z\2T9_((A_XTZS%S/#ZR)>3BM6A?EC ++::(6713&ECL.FK"E M!F;YV![7L(98MQ;KODKL1Y0!#X%J59=4X],46HJ_BUA\%['L0S0T>K5&KU?C MJI2&_KR#]!'X7^@?](43*C; .42(2+1B,96%J=7B4.-T)>CM*5_MKD5&0I@: M:CD3P ]@S'[\ ?O6SSI7#4FV&))L.1!98[C\>KC\-_O/[YC!]KR6L>9=D.OX M;?=U02//;4_)+@AC[+KZ:3FJ=8Z&L]ZH8PKKRO):@G4@;+<$:YE&5N.OK5]+ MK%<_KM6/^]5G$,8DD4]H%63H3S3;2W0' MB7A/W9O9:$P])MAB2;#D066-X@WIX@S>;..BZ:NRWO3?7H&PO:-NXBW+Q M:-1>0[LHQPOPF2446R_?EM9P3JZXFF;JJ-:BG+9J/6K<4JU'G?GUPB=?U/C_ M=O#GO;S0POVYO=;#@[(M!F5;#L76'&7[993M-QNYHF@LQZX;^.TYK8%9@3MJ M3^HNS,?8;WM9 _,"R_?/3.N7KW_\NL__?C,[&FMY;ENX%N6U=5^"6NI1_IGE MNZR!>;)O3H%OBP,+@4*VI[+<%]6M]:'(37$4T&J_Q==SK&E?Y( M\@[JHZ79OU!+ P04 " #O2(A7ZN)#!_4" "[" &0 'AL+W=OM)-#, MP[TDJJXJ*O_>0"DV$\=WM@,/;%EH,^!.QRNZA$?03ZM[B3VWRY*S"KAB@A,) MBXGSP;^>I2;>!OQBL%$[;6*)C#3,H2Y,(,?ZT M.9UN2B/<;6^S?[3>TL M9-0.B 71!9"94)HP3NY>,E#*C-ZP$C,O%3F]!4U9J--PQ@<8/R1Z4L2^NH:6LEA)R@F6I>2:J50D:NU@O+7%Q#OIL$L-IIW1]&U&\0A%0( *\% 9 >&PO=V]R M:W-H965TW>326#AV9CMM]^]W=D)64*GVDOCL^[[[[NR[T5;I9U,@6MB50IIQ4%A; MW82A20LLF>FI"B6=Y$J7S)*IUZ&I-++,@TH11OW^95@R+H-DY/?F.AFIV@HN M<:[!U&7)])\)"K4=!X/@96/!UX5U&V$RJM@:EVB?JKDF*^Q8,EZB-%Q)T)B/ M@]O!S73H_+W#3XY;L[<&E\E*J6=G/&3CH.\$H<#4.@9&OPU.40A'1#)^MYQ! M%](!]]PX"H!41O >]%B%M [!-ME/FT[IAER4BK M+6CG36QNX6OCT90-E^X6EU;3*2><3;XKBW !G^!!IJI$>&0[-'!ZAY9Q8> 1 M=[9FXHP' .43^*#^B9_C\\.B(G[@H:>[[A.WSW>8[^ M:>Y5%!:,JKS 5,F4"\[< SZ'.>H4I3U4PB;$E0_A^G"3]'OQ8!1N]O,ZY#3L M?%Z)'W;BAT?%/\F,&ZOYJK:8P3W3DLNU 94#]0QUA(1EO3(\XTQS/'CY#?_U M*U'7;X0?U>#&UHVI6(KC@.:20;W!(/GX87#9_W+H>L*]MU^B7ON18"!5M;3- M(^IVNZESZYOMS?Z$IE$S//[1-*-LQO2:2P,"T?(RT " !^ M! &0 'AL+W=O@V>5AV(-B,XE075R)3MJ_'R6[00JT?;%%BN?PD*)4 M[*V[\UM$@@>MC)\F6Z+F/$U]M44M_- V:'AG;9T6Q*;;I+YQ*.H(TBK-LVR2 M:B%-4A;1MW!E85M2TN#"@6^U%NYQALKNI\DH>7++Q^8O\6:^=:5L+CW*H_LJ;M-#E+H,:U:!7=VOUW M[.LY#7R553Y^8=_'9@E4K2>K>S KT-)T?_'0]^$(,/KT"B#O 7G4W26**B\% MB;)P=@\N1#-;6,12(YK%21,.94F.=R7CJ/QA"6$")W"E&R$=MYO KN':FLV) MXG[5<.$]DHH5O@7PL)PO9(,R%$;48P#75\/<&]0K=OY<$ODD8+L"Y M;T2%TX0GW*/;85*^?S>:9%_>D#L^R!V_*7?6>O9X#W.K5]*(,)4#6!(V<%'= MM]++SO.5U_0(5X:011!(T^T[Q %[*]76TFQ@V:X\WK?AP)[!N2L5._E&O=2 M3N)9E!@N[*[,AJ=%NCNN*ST:IW S;X3;2.-!X9I1V?#S:0*NF_;.(-O$"5M9 MXGF-RRT_$.A" .^O+4]9;X2A/3PYY7]02P,$% @ [TB(5PO/XR8Y @ M# 4 !D !X;"]W;W)K&ULG53;3MPP$/V54<0# M2$!VO81M4382"[T@E19!:9]-,DDL'#NUO1OX^XZ=;+IM%U3U);[-.7..,^.T MT^;1UH@.GAJI["*JG6O/XMCF-3;<'NL6%9V4VC30T M;KA049:&O1N3I7KEI%!X8\"NFH:;YR5*W2VB:;39N!55[?Q&G*4MK_ .W7U[ M8V@5CRR%:%!9H148+!?1^?1LF?CX$/!-8&>WYN"=/&C]Z!=7Q2*:>$$H,7>> M@=.PQ@N4TA.1C!\#9S2F],#M^8;]??!.7AZXQ0LMOXO"U8OH300%EGPEW:WN M/N+@)PC,M;3A"UT?.Y]'D*^LT\T )@6-4/W(GX9[V (P]@* #0 6=/>)@LI+ M[GB6&MV!\='$YB?!:D"3.*'\3[ESADX%X5SV63N$4SB"JZ;EPM!U.] E?-*J M.I)T7P6<6XO.4L0'K8M.2 G[E^BXD/8 ]D H^%KKE>6JL&GL2)'GC?,A^[+/ MSE[(_A:NM7*UA7>JP.)W?$Q.1CML8V?)7B7\DKMCF$T/@4W8#.[O+F%_[^ 5 MWMEX3;/ >_("[\;[+HL]\C0@?0^L,\;8/(W7._*=C/E._BG?(5#?464IP*>\ MYJI"& 8L2RKL77IZYF1+S]$\V2TG&>4D_VT_^=O^-&%_Y(NW*K1!4X4^M)#K ME7)]L8Z[8ZN?]Q7^*[Q_)ZZYJ82R(+$DZ.1X3@),WWO]PNDVU/N#=M0]85K3 M&ULU5=M;^,V#/XKA%<,+=#6+WEK MNB1 FMYM]Z&]H+F[81CV0;&96*AM>9*T@I'X1G$I-IY!0YDR]J@7GZ*^ MXVF/,,%0:A-$_2UPA$FB+2D_?J^,.O696G'S>67]HP&OP$R)P!%+?J:1C/O. ME0,1SDB1R >V_ DK0"UM+V2),+^PK&0]!\)"2)96RLJ#E&;E/WFJB-A0"+HO M* 250O!:A4:E8)AS2\\,K%LBR:#'V1*XEE;6](/AQF@K-#3389Q(KMY2I2<' M]TPB=. ")I*%CQ>:D0A&+%5I(H@A^O06):&)@"_X) N2G,$)T R^Q*P0)(M$ MSY7*#VW-#:LS;\HS@Q?.;, =RV0LX$,68;1'?V37[UKT786_)B%8D7 36 U^ M#N4E-/QS"+R@ 5\GMW!Z<@8B)ASWP1N]E;4M9QMUQ!K&?/,%\RHXJ0J+B=#PL9 %1_@D1$&R$.%4A:UTXVQ?T,IC6^987?V+ M0=#RFLVKGKO8!']0; M5LT;5M*(R_E_<[*;?D'.2S5'='!*FS[ I-R;/9GNX M)#PZA\^Y5A#G\*/2D$(GZ1@Y99'>84(;]#;I-8@MUJT;=>C?4WU!( M5!OW13I%#FRVRHD#L*T>ZJ_(MH4+?KU#C>6W?6Y;3S@VMF]D;(N,;DU&]_]5 M-59WCV6VNY,[?L?S7L@?WUMW0MZ_RZ"Z(%8ME MF+)":?\))WN[H]*/MJ4\K"+;^#8Z/=^*3_4&DM-0^V^:!VLIV&T=&[&WLK:- M/%@C#_XCD0UVPN8WO)W@'I#:1KGN"WU[8_B&**NBUDUDM5V. K\@X7OKV^[: MT>EB!QHH?PG?VTN[&Y-0BGQN!D0!H0Y:.135N_40.C2CE[L6+R?8.\+G5-UQ M"&ULK57?3]LP$/Y7K Q-3!HX34*!+HU$FT[; QNB8WN8]N FU\8B MMC/;;=E_/]L)(850H8V7Q#[?]]TO^R[>"GFK"@"-[EC)U=@KM*Y&&*NL $;4 ML:B FY.ED(QHLY4KK"H))'<@5N+ ]X>8$?$\F6B5.Z+MHVN[Z%LK;1@ M#=AXP"BO_^2NR4,'8'CZ 4$#"!X#HF< 80,(7VHA:@#12RV<- 7.JYC=XE+ MB29)+,462:MMV.S"9=^A3;XHM_=DKJ4YI0:GDR]" SI%1VBN179[9'.>HZE@ MYAXJXDJYYVAV9]> #E/0A);JG5&^F:?H\. =.D"4HV^%6"O"<2Q$EX+K0J$9SR'OP:?[\>=[\-@DJ(\" M/PA[_)F^'![TA?-_UF?_;'TG&6%[;4+'%SW#=PU*2YII*ML(1ZHB&8P]T^D4R UXR=LW@Z'_H2_+KTF6OB;9[)7(=NH1M?6(]M:C M^T2S[A.%^HGVE:5F'#I&.TXV21"AY=$ MKBA7J(2E,>4?GYHF*^L14V^TJ%P/70AM.K);%F8J@[0*YGPI3!]M-M9 .^>3 MOU!+ P04 " #O2(A7-R^&@O<# #]#P &0 'AL+W=O6NZ)$";WK -Z%IVKD'.1Z*I8YY MB@\2U#))F'R]P5BL1X[OO$U\YO.%-A/N>)BQ.4Y1/V8/DD9NJ27B"::*BQ0D MSD;.M7\U\;M&P.[XD^-:5;[!4'D2XMD,?HU&CF<088RA-BH8_:UP@G%L-!&. M+X52I[1I!*O?;]I_MN2)S!-3.!'Q7SS2BY%SZ4"$,[:,]6>Q_@4+0A9@*&)E M?V%=[/4<")=*BZ00)@0)3_-_]E(XHB+@7[XC$!0"P8Y $+PCT"X$VI9HCLS2 MNF6:C8=2K$&:W:3-?%C?6&EBPU,3QJF6M,I)3H]_%QJA#QB6 B M$CHFBEE'%TMPG]GAM?$[UZ]P>HN:\5B=T8['Z2V[@'=P#N!.I7BCXE$88U?(F:-1X'^H6M/US"+R@70>H6?PWEKXGO@6G70:V;?5UWM'W MZ27CDF(I)-!EGR'7&)V#L$%4<$K>S^-R5N?[7'77JC:)8#7VANZJ2J;1N,D] M5RIC(8X<2BX*Y0J=\8\_^#WOIP9JG9):IY':U "_N+%']8&]4E+1<"TE2^=H MOL_?CNH_=Y@\H?RWCF&CAZ% MM[,;WT:C1U+JE91ZAU-:VT1,D68KE/2P +Z@#+E"R"0/T5*-1!PSJ2!#F=.N M99T;[5=8^U[KLKM#O!':D<3[)?'^_R NT3S+M 8A92Y)#^"2Q:!1)G#Z-S)9 M2[K9H.]!DF?!H ,1>ZU+Q).OJ(!7L@U^K@AZ-6JV?'%9^N+R<%^P^5SBG-%3 MQ8DYIR(BA!6+EUA'.=?;J\9Y)\8U.P;EEBVT@Q+MX"O9-C^4AZ?8P=X=O-B% MV6CRR*/H>YO"P#N4TL?=P<)F]1+V]N]@,[)CF5=*(O]0YM]T\ JUU7,5[#)K MM'PLLV##+/A^14&A>_O(]G<)-@(XEN"FZ/&/J7H^\/SFY@?;CTAOUPG?HSKR M-^61WUP?'5,2%"JKP0WV#N_^GDK=L UV4[[XWU"_?&"@NONOO=_R]S)-S;:M MHB!GY58:K 3EW/:=BM[A9:KS7JN<+7O;:]O1N9OM>6-\Q^2<\@C$."-1K]4G M!#+O-?.!%IEMUYZ$IN;/?BZH/T=I-M#Z3%#+5@R,@;+C'_\'4$L#!!0 ( M .](B%<9@^' F@, .0- 9 >&PO=V]R:W-H965T;$ULB2/)D//O MNY(=QSC$H10>L&Z[VF]7E]5T(^2S2@$T>0YE=^N(1.; MF>,[KPWW+$FU:7#GTQ5-X 'TX^I.8LVMM<0L!ZZ8X$3"8)ZI@(;*_6*S3F3-V2 Q+6F3Z7FQ^@0IH:/1%(E/VGVRJL9Y#HD)ID5?" M:$'.>/FE+Y4C&@*H9[= 4 D$;8'!!P+]2L!ZSBTMLU@W5-/Y5(H-D68T:C,% MZQLKC32,FS ^:(F]#.7T_'>A@8S(!7G0(GJ^,!Z)R4+DN$P4M8Z^(/>@M&21 MQAX[BEP9WS/]C9S>@*8L4V>[1OU]"_D3R'^P[_'AAIR>G)$3XA*54@F*,$X> M.=/JO-'P9RH*17F,C2=;]:FKD=58[$85UW7)%7S -2&W@NM4D1]Y#/&VO(L^ MJAT5O#KJ.NA4^$>D>Z3OGY/ "_H[[%ETB_]&^4?B6^;TZ[CUK;[!1^846FET M#>,).457E4X\V^6H4M'0*C*[>CT/PM'473>-[YS,'"67:D4CF#EX5BB0:W#F MWW_GA]X/'2B#&F6P+\HYV=A]AVN(KD'B.4)6N*; (L8BRZA49 6RQ-U)6\XU M:M".>\.AU_CY+?9.ZPYD'];LP_W9:9)(2"AN2,9Q*^%1&9$US0K8Q5GJ#9M1 M]?O]%MJ.0<$XK =MF1S6)H>=)O\L*3]6W:3M^,YY#G3\J*88[4-Q MA 4W>K?@?*\7A"W63FL.9!W7K.-.UB]X,AM 'A.F5/%Y[,;O8G\0#\):J5\*ZJ#]CW0;<&AA(UDQ/^_A/M%LYJG&&ULK5EK2?S"G>XVLVZZGQ60;2: 6$G$V7]?26""L8)QER\V2/><>Z\X M0E=BM,?DA>X08N MCA(ZUG:,I7>Z3OT=BB&]Q2E*>,\&DQ@R?DNV.DT)@H$$ MQ9%N&8:CQS!,M,E(MCV2R0AG+ H3]$@ S>(8DI\/*,+[L69JAX9OX7;'1(,^ M&:5PB]:(/:6/A-_I)4L0QBBA(4X 09NQ=F_>K4Q# *3%OR':T\HU$*D\8_PB M;E;!6#-$1"A"/A,4D/^]HBF*(L'$X_A1D&JE3P&L7A_8%S)YGLPSI&B*H^]A MP'9CS=5 @#8PB]@WO/=0D5!?\/DXHO(7[ M;0P-^1AF."S"/( Z3_!^^%0-1 M 7 >-< J %8=T/L 8!< NRV@5P!Z;0'] M!O"W *@-,6,"@ @[:CY!8 MZV' M80$82CGDST\^_!ED<#(B> ^(L.9LXD(J2*+Y,P\3(?8U([PWY#@V^8H9 BZX M 7-(DC#94G#]%Z;T$WA$!*QWD"#>M\YG L";=[/W_NL98C",..8&/*UGX/KJ M$[@".J"BEX(P 4])R.CG2L,_.YQ1F 2\\>KH?J0SGI0(3?>+!![R!*P/$K#! M%YRP'07S)$"! N\UXX<->)T/9CFBUF%$'ZQ&PK]]=@ML\S.P#,M6Q#-MAO^9 M18WP63/\/B4<;GP(G[N? _J<2=4_0EA5B87B>#8;\_TE^KBFGT(Y;#.YI"'XTUOMY1 M1%Z1-OG]-],Q_E#IITNR^6GXKF'TCL-?=.EQV269IQK]H7,<_DJ58\7H2!N] M4AN]1FW,PB@3JSQ FPU?]L6;%?W(0O83^#CFA0R%LA1((YC00MLR:JQA@O M%5679'-%^&:O-B<677I<=DGFJ<(WZF\EA9%ENVI=.:6NG$9=K1GV7P!.A40H MX KBVQG*2.@+K5'9F6#&"S8_RGBQ)"HWMI/J2S.6O['XBTR*C/>B0ZF8\E)1 MBDWT'J0JV9Z1#S.*)$ON%J W1/R0MZ7*'Y2*'_RJXO8IHA_4U_'F#(_4YY;J6E$[1+LKDR_/H, M[=+CLDLR3QE^3;HKE9%MJV5B&N\G9,;YO1I?#MI+I2 \HY5FMY>*I5.VN3J# MV@Y@T:G/9:=LGCJ#NF*45B>2T2OGJS$B6WDX3WEMF24L/P\J6\L/ /?RV+O6 M_F#>+4U%NR<^&,CSW'?Z_&O#%TBV(2]-(K3AKHS; 5^ 2'Z G]\PG,K3W6?, M&([EY0[! !%AP/LW&+/#C7!0?D:9_ =02P,$% @ [TB(5PLG(8EQ'P M]#@" !D !X;"]W;W)K&ULQ=UK4^-6@L;QKZ)B MI[:2*J;!-L9VTNDJ&MWOEV2FMK;VA?E[GOV\^)DDA?;E?99M?3CX6Q<-/9V>;VX_)?;QYLWY( MLO*1#^O\/B[*3_.[L\U#GL3+W4+WJ[/Q^?GEV7V<9B?OWNZ^YN?OWJZWQ2K- M$C^7-MO[^SC_^CY9K3__?I"F-Y]+*HOG+U[^Q#?)5%2_/;@Y^5G9\_* M,KU/LDVZSJ0\^?#+R=7HIV@QKQ;8/>,?:?)Y\^)CJ7HI-^OU[]4GQO*7D_-J MC9)5O(\9K7@RX^?='7WXLL7[7FUV_Y<^[Y][?B+=;C?%^GZ_<+D& M]VGV^&_\9?^->+' >/S* N/] N.^"TSV"TSZ+G"Q7^#B8('RI74O,-TO,.V[ MP.5^@]NAY8_?> MVJ.GS3UJ;>_):XL\;?!1[RT^>MKDH\-M_OHB3QM]U-KJKW['GC;[J/=V'SUM M^%%KR[_Z37[:]*/6MG]UD:>-/]IM_;/'W][=K[X<%_&[M_GZLY17SR^]ZH-= M?NR6+W_CTZR*NJC(RT?37QP-NEZ M\'SWX.5Y*30?_=O+3]^>%>5+JU;P[';_,M3'ES%^Y65,)&>=%1\WDI(MDV7' M\IIX^85@^;/R6_K\?1T_?5_?CX5@E#R\D4:S4VE\/AY)OT6R],/??NQ8KVLQ M<_60E\S%44;NL3;C\XH9S06,(F;,[:IDYCOFLFLC]7@QD]U:C"==VTB\N'=; ME(N/'A<7O A]"'-]]1IC]&?&@K4QAZS-E5(R![]%7:@U!%4T?X^^^.WK4NT> MZOGQ[[\C9ISX:[UNT56X7[/UFAF)&3VV=FU/^'(.K_VOJIC?B6D_&-@D^2?DI-WNW7]N2N/ M24PF,87$5!+3'K'+'5;];?7IW7A6_JWU]NS3RU@FAS1(S"0QB\1L$G-(S.W8 MYA>3PVWND4/Z)!:06$AB$80U9(5 M7:DKA(:F+HG))*:0F$IBVB,V??$;>#D['Q^$+CFB06(FB5DD9I.80V)N>Y-? M3.:S@\PE1_1)+""QD,0B"&MD[O0YBKYJS@KH[B:#2M_;-.'^Z3Z]-=U$:^ZT2,PF,8?$7!+S2,PGL8#$0A*+(*R1R9?/F7PI MG@>OL[N_%TE^OSLN_CP/EIRXV.9ID2:;4TGY?%1NKI/\O0V MSJ0P^;1>?:H>J*;371DM''QH1I.83&(*B:DDIEVV,GHVFAS.GO:I'>9I,1Y5LZ8-^7D^2$N\C0N.D_C>"_4A@;Y MO/6G\_SP'0R9'% A,97$-!+32S[>KT;=D^U66;>.5%%;O9QK9;?[X53_);\NOQ'>= M;UB*1QH<\H_:_.4I$F\.3UV3T3$55%-134,U'=4,5#-1S4(U&]4<5'-1S4,U M']4"5 M1+:*T9IZ/ZSP??TN>N]OJP$LU6_<>JHK,1BK6DO*E2++.(^CB009' M^;CUMOK%88Z3 RJHIJ*:AFHZJAFH9J*:A6HVJCFHYJ*:AVH^J@6H%J):1&G- M'*^[C2-QN?&5'"\GY,GGEV=K*X6,SS6Y71SN]YFA13&1?>Q M%2$[.- ONHZMS _GY.28"JJIJ*:AFHYJ!JJ9J&:AFHUJ#JJYJ.:AFH]J :J% MJ!916C.\ZP[F2%S"/ AM.XUOTE5:U2_==7;[>@M>S X.;[1OB6H*JJFHIHW: MGW:\N/1]*#6@X[IHUJ :B&J1936#.6Z MA#D2MS"==5[)M+M*8924.9PLI9NO+TX[=.)L^R&^K5J9V9VDQK>[U!:> MC2@>='!DH_5+5%-0344U#=5T5#-0S40U"]5L5'-0S44U#]5\5 M0+42UB-*: MNX"ZWSD2%SRK.M#7ZHHGF^H-SJ==0%7*[XQVM.>YUU[V@Q:M?A ZI()J*JII MJ*:CFH%J)JI9J&:CFH-J+JIYJ.:C6H!J(:I%E-9,[+K0.1(W.J_C+%ZF<28U M9^_"&3G:ZD0U&=445%-134,U'=4,5#-1S4(U&]4<5'-1S4,U']4"5 M1+:*T M9K[7A="1N!&ZNS2WD6V*?/MX)<+]-;&^2O)K;W"B_4]4DU%-.?JMNWTCC2>G MDC0^O^BZ,KR*KHZ&:CJJ&:AFHIJ%:C:J.:CFHIJ':CZJ!:@6HEI$:9SJXJ)U^X7]LQ8O MGG7Y9M1\DH&NF(EJ%JK9J.:@FHMJ'JKYJ!:@6HAJ$:4U4[EN;X[%[K\'J^3P;73L'U5Q4\U#-1[4 U4)4BRBM&<'C.H+%A(S!^8S>)A+5%%1344U#-1W5 M#%0S4\AR7=W!3ZM+E2X29?[3SOS7SCBX/R_Z)ANM(ZY MRNB@"JJIJ*:AFHYJ!JJ9J&:AFHUJ#JJYJ.:AFH]J :J%J!916C/8ZYKE^"^] MUZ5XM,&AWKZ5XJ+U1Z2,CJF@FHIJ&JKIJ&:@FHEJ%JK9J.:@FHMJ'JKYJ!:@ M6HAJ$:4U,[UN:8Z/M#3C+^G]]EY\] 7M7**:C&H*JJFHIJ&:CFH&JIFH9J&: MC6H.JKFHYJ&:CVH!JH6H%E%:,]#KSN58W+D<>D\V,3JOFH%J!:B&H1I34SNVY=CL6MR^8]YZO3 M5%[>DUX\-T?;EZ@FHYJ":BJJ::BFHYJ!:B:J6:AFHYJ#:BZJ>:CFHUJ :B&J M1936S/FZ?3D>V+X\^%B\Y.,C%ZS%Y=3T4=#U45--034U -5"5(LHK1':D[I@.3ERD\WR\]W=-/-DF1;/5RFL MJO./A\[?K_,2K6;OUW&Y'N5C75D^:??\1O/SP[_QK\4K,S2X^PVJH(.JJ*:A MFHYJ!JJ9J&:AFHUJ#JJYJ.:AFH]J :J%J!916C.EZ\+EY,CM,E]+Z=^R[299 M/D=S=;+A_7U:5/-O24V.]2\GW6VX\_'T,+?1:B6J*:BFHIJ&:CJJ&:AFHIJ% M:C:J.:CFHIJ':CZJ!:@6HEI$:?=3X;Z'H86C# Y>4I-134$U%=6TO=:XZ-]E>W9,CFF@FHEJ%JK9J.:@FKO7 M&K<\:]V7Q$/']%$M0+40U2)*:V9T79"4BR\J%M.;H4)INBW!M4ET#I.I7N_7ZP MEW/&:J2O[^_7F105Z]O?J\KE-K_]&&^2XZG>ODWEI"/5T5HEJBFH MIJ*:AFHZJAFH9J*:A6HVJCFHYJ*:AVH^J@6H%J):1&G-5*_[EQ-Q__+55%?3 M+]6Y@Q_C_*ZZA/BG)*]NB1E6URDLD_V/;9IWE^KWXXU&+V)]=/B>T[5XK0:G M.MJV1#6UU_=#0\?44KW)Q*RGOC5_GJ,:Y/)2?-=G6=W[)E'G_.I*M/<;J*;W;+ M2A_6>1GVGY+=I6B3V^WNUCQR_+5[SK[H-6='*YBHIJ":BFH:JNFH9J":B6H6 MJMFHYJ":BVH>JOFH%J!:B&H1I37V A=U+?/B&VN9W[X7Z,KZBW:#O&Z M#LUZ5%-0344U#=5T5#-0S40U"]5L5'-0S44U#]5\5 M0+42UB-*:65^7.R^^ ML=PI)Q_B[:HXE:Z6Y0/I.HM7S3/1.R/]<;#F^<#GX\-(1PN=J*:@FHIJ&JKI MJ&:@FHEJ%JK9J.:@FHMJ'JKYJ!:@6HAJ$:4U(WU<1[JXT-G_5,GWN[=1JU;1 MBR\^3>-%YTJ*UV#HN9*H)J.:@FHJJFFHIJ.:@6HFJEFH9J.:@VHNJGFHYJ-: M@&HAJD64UMP?U,72"W&QM'5IQ#+VTXT4E8/%2VF=2?^(\S2^626O3^N[:G[G MA^^YBE=C<(RC55%44U%-0S4=U0Q4,U'-0C4;U1Q4'%V 4K\C@($>[K*BFHIJ& M:CJJ&:AFHIJ%:C:J.:CFHIJ':CZJ!:@6HEI$:6KXX^"C^>A-2%%-1C4%U514TU!-1S4# MU4Q4LU#-1C4'U5Q4\U#-1[4 U4)4BRBMN;>H:[(7XIHL,.V?]3I)!^W%HIJ" M:BJJ::BFHYJ!:B:J6:AFHYJ#:BZJ>:CFHUJ :B&J1936C/&Z%WN!W)>4F?27 M7WIQ%F?U]/+S_]]N'F_54;U=L-MS/)_>N;_ L/!O!O3FJ*@FHYJ":BJJ::BF MHYJ!:B:J6:AFHYJ#:BZJ>:CFHUJ :B&J1936W-G4M=Z+@3=''?XWPZ+SK8+V M.4!H,Q?5%%1344U#-1W5#%0S4J;C;^^>G_=/N>[2V;M$J7I'!08XV>E%-134-U714 M,U#-1#4+U6Q4:CFHUJ :B&J1936W-G4=>'I M]ZX+[P=HO5G0_K,!;0RCFH)J*JIIJ*:CFH%J)JI9J&:CFH-J+JIYJ.:C6H!J M(:I%E-9,\KHQ7'XH2G)UG2?I728=_/D@GJH+R<%3=5*344U!-175-%334O//IF$Z_&Y>+ M1QF<^6A;&-445%-13=MK+V]?/9Z-6WUX"GWWA+6VT;YW%6),E2NKI?;[.B,\/1#B^JR:BFH)J*:AJJ MZ:AFH)J):A:JV=/V[9Q'A_M1!QW2134/U7Q4"U M1+6(TIH)7E=SIT?N8)L4 M19)O7H2XMRTV19PMRQGXJ2B\R6;;-:K)J*:@FHIJVEY[.0&_G+7GWV@C%]5, M5+-0S48U!]5<5/-0S4>U -5"5(LHK9G>=2-W*F[D^OGZMIQC;Z0/^?I>,C:; M;9S=[F;DU3NBG;&-=F!1348U!=545-/VVLO87DS;L8UV6U'-1#4+U6Q4_B-=MZ"X U6144U!-134-U714,U#-1#4+U6Q4OF-=ZX==O*+>)3!F8\685%-0345U;2]UK@7?/O<%W1, ]7,(S^M MY8+3^>3G-]6_L\G/TOS->6>&H\565'-0S44U#]5\5 M0+42UB-*:&3ZN,UQ< M;'TUPQMW&I?BYY:IDBT[0QPMF**:C&H*JJFHINVU@PM++PY#'"V.HIK9ZQ58 MO9YEHVOFH)J+:AZJ^:@6H%J(:A&E-<.W+GI>BHN>]CJ[^WL9L_>[-SA/I>MM MGE<5?R6'_\&# MY&/Q07+AN@W.=5*344U!-175-%3343]F0>+8BBFGGDI_7P M(/EH\6;:&>)H,Q35'%1S4K\#J]2P;73,'U5Q4\U#-1[4 U4)4BRBM&;YU MJ?/R2*GS.Q\E1ZN?J":CFH)J*JII>ZUQE+QC9HU6/U'-1#4+U6Q4M-T@\=$P?U0)4"U$MHK1F=M>5SDMQI?//'R=7[KX^%(W#X^)CXV@C%-5D M5%-0344U#=5T5#-0S40U"]5L5'-0S44U#]5\5 M0+42UB-*:>X>Z.7KYCB#$Q>M7J*:@FHJJFFS=O5RU#I36$?' M-%#-1#4+U6Q4^T3%]5 M0+42UB-*:V3VNLUM[=-7T"$-5#-1S3KRH]\Z M&#E_L^C,<+3>B6HNJGD=/S\'/ST^.F" :N'0[3V>OQEW1O+WJ'7.ZEIG^>%? M^B0/JH%J!:B6D1IS>2N2Y(S<4GRSQ_OCN(RU:6K/+Y) MXQ>71/DJ/N:-=BI1348U!=545--034U -5" M5(LHK;F/J+NXM%>QJ/=C91S40U"]5L M5'-0S44U#]5\5 MF[5YR=3.L@Q_R$!TTHK1F2->ES1E0VLR2S_&JBO+O,J=' M6YRH)J.:@FHJJFFHIJ.:@6HFJEFH9J.:@VHNJGFHYJ-:@&HAJD64UMQ=U"W. MV5_2XA2/,CCST18GJBFHIJ*:-FNW.+OF]&B+$]5,5+-0S48UY\COY>ZDB^GC MM1SGLY^ER:PSPM'R)JKYJ!:@6HAJ$:4U(GQ>-SCG?TV#4SS,T Q'-1G5%%13 M44V;=[8:SQ?3@Q1'1S50S>SY&JR>S[/1M7-0S44U#]5\5 M0+42UB-*:$5PW M/>?_T::G>/3!R8PV/5%-0345U;1YN^DYF;=FU^B8!JJ9J&:AFHUJ#JJY'5N^ MXRJ'Z)@^J@6H%J):1&G-[![7V?VGFYY.FNV.A8B.>HM'&9S1:'L3U1144U%- M0S4=U0Q4,U'-0C4;U1Q4''C)!ZYNH M)J.:@FHJJFE[37RA(AT=TT UL] #WHG6PFAS50#6SYVNP>C[/1M?.0347U3Q4\U$M0+40U2)* M:^9O7=*.?]K[H$I'F9PZ*-]35134$U%-6VO';TV"CJJ M@6IFS]=@]7R>C:Z=@VHNJGFHYJ-:@&HAJD64UHS@NCTY%[TR[_UD^X6-U M[./J4Y+'=XEX_HW6*%%-1C4%U514TU!-1S4#U4Q4LU#-1C4'U5Q4\U#-1[4 MU4)4BRBM&?YU*W,N;F5B\V^T6XEJ,JHIJ*:BFK;7#N:DH_'HSY M&JR>S[/1M7-0S44U#]5\5 M0+42UB-*:$5PW'>?B1E6/^;=BO/?"P2?^H=5' M5)-134$U%=4T5--1S4 U$]4L5+-1S4$U%]4\5/-1+4"U$-4B2FOL!!9U5W(A M[DJVSCUY'V_2C125@\5+:9U)_XCS-+Y9);OY>%?H)J.:@FHJJFF+ MSGL33@[FW[V>9:!K9J*:A6HVJCFHYJ*:AVH^J@6H%J):1&G->*Y[E MQC_*; MYN@]SE41#SLXM-$"):HIJ*:BFH9J.JH9J&:BFH5J-JHYJ.:BFH=J/JH%J!:B M6D1IS9W N-X)B N9P!P=[6*BFHQJ"JJIJ*;MM<,3IB>')X?W?)Z!KIV):A:J MV:CFH)J+:AZJ^:@6H%J(:A&E-2.Z[D\NQ/W)'O/TZS*Z\WA5AG?V>_7.I_)' M=3OD'Z[?*S\^OM(T&9SI:M40U!=545--034U -5"5(LHK;E_J"N>Y8??>0HO'&!PW).:C&H*JJFHINVUPZGYJ#6% M[_<\ UT[$]4L5+-1S4$U%]4\5/-1+4"U$-4B2FM&=-T"7?SI%NB@*7R?H_!H M8Q359%134$U%-0W5=%0S4,U$-0O5;%1S4,U%-0_5?%0+4"U$M8C2FON'NC&Z M$#=&@2D\VA5%-1G5%%1344U;=/8G.X["]WN>@:Z=B6H6JMFHYJ":BVH>JOFH M%J!:B&H1I34CNFZ4+OYTHS1JG"W3F=)HC1359%134$U%-0W5=%0S4,U$-0O5 M;%1S4,U%-0_5?%0+4"U$M8C2FHE?UT@7XAHI,"E'"Z2H)J.:@FHJJFF+SE)E MQZ2\W_,,=.U,5+-0S48U!]5<5/-0S4>U -5"5(LH[3&BSS8?DZ20XR)^]_8^ MR>^2ZV2UVDBWZVU6\M4),\]?E?+D0QGAHY^NQB=GK:]KHY^,42'EU@9BG3XKU0YD-)]+-NBC6][L/ M/Y;[@22OGE ^_F&]+IX^J0;XO,Y_W[V<=_\&4$L#!!0 ( .](B%=]/)N3 MX00 $<= 9 >&PO=V]R:W-H965T MEP0,SWGL<_QV\&C+^'>QQEB"UR2FXM9:2[FYMFT1K7&"Q!7;8*J>+!E/D%2W M?&6+#<=HD0TZCF\GB%!K/,K+'OAXQ%(9$XH?.!!IDB#^=H=CMKVUH/5> M\(VLUC(KL,>C#5KA1RR?-P]6M-X'4(AUE _L8?!&_% MWC7(FC)G['MV\^OBUG*R&N$81S*#0.KO!4]Q'&=(JAX_2E"KRID%[E^_HW_) M&Z\:,T<"3UG\)UG(]:TUM, "+U$:RV]L^PLN&]3/\"(6B_P7;(MW_8$%HE1( MEI3!J@8)H<4_>BV)V MPW2,!;AG@GAK@E0'>J0&],J!W&- [$M O _*FVT7; M<^(")-%XQ-D6\.QMA99=Y.SGT8HO0K..\BBY>DI4G!Q_91(#Z(!+<(\5WP*< M!5@B$@OPA%]EBN)S\ D0"I[6+!6(+L0%^/DGV!]Z-U?9_\"[R9[.2!PKV<7( MEJI.&;(=E?GOBOSND?P>F#$JUP*$=($7+?&!/AZZ&@!;D5$QXKXSDPK@8FT,/\ANA)M0F[P$Q"!7,@X[F&.J_J M3%Z>I7>LS1O,D21T572F"W!/T)S$1+ZU=8P"R\^QLOGL93QP?&]DO^R3K$V8 MS:+78H,B?&NI:5)@_H*ML6J0[]RT4=W,V(=^KYXQ-)2Q1F"O(K#7CWUW<,"DH8PU)OL5DWTMDU\( M133"QWF\ &@I,0>3*$J3-$82+\ D85R2?U&VA+7QW&^TNN\X!S1KJ]659I-@ MH2&PFAQ^)8??K6.'KVJK(W ;RWZ#Y4 ]E[CAX)]#6J"MYAL!JY TJ\@9: M\J8IYYA*,$,RY402M4JS);AG='6I>G " CR7X.\93N:8_]/&J!:^(Q-3DV"! M2;#0$%A-HV&ET;#+?%,M?!>@5*]-EV&C%\-&3]>F[4JW2;#0$%B-[L\5W9^U M=,\()4F::'N]%J%KKS<)%I@$"PV!U62 SLX^.%HA[K%:3%6';TSP3]G,I*:I MJ=J=O=!RD@>%.1;:+H [NJ8A0M-(56UV7/UD'] $&O'PX0 M/437$6(4+3"*%II"JXOA[L1P__]!HD_A.?DH:7/@4WUH9V5,HH6FT.K*[ PK MU#O6R3P%P5JMU> >T44ABW[,F#2D4Z-H@5&TT!1:79F=$X9Z*WQTS$PH35$, M'M!;6&>H]IM\H@)?&8TT(C0-=,]IJF#2'@=& MT4)3:'45=G8;ZOVV3H7J0U*J^R!7)JB- [\I@5$K;10M-(56EV#GIJ'>3NLD MT'PZTJ-VGOF->F_8XO8;=C\TE;/@W=X[&$HP7^4G<@)$+*6R^*Q?E5:G?I/\ MK.N@_ Y>3V%+>9"=$N8'43OXXHAQAOB*4 %BO%2IG*N!FH]X<6I7W$BVR8^E MYDQ*EN27:XP6F&#EW3 M P V X !D !X;"]W;W)K&ULM9=;;]LV%,>_ M"J$50PO4D:BKG=D&$F=%._02Q,WV,.R!EFF+*$6J)!4W^_0C)46^B%*2(GNQ M=3GGK]\YA^0AISLNOLD,8P5^Y)3)F9,I59R[KDPSG"-YQ@O,])L-%SE2^E9L M75D(C-:54TY=W_-B-T>$.?-I]>Q:S*>\5)0P?"V +/,.9XAPA2GRD@@_7>'%YA2HZ0YOC>B3OM-XWAX_:#^K@I>![-" M$B\X_8NL539SQ@Y8XPTJJ;KAN_>X"2@R>BFGLOH%N\;6-2"?V6:#\U_\P5!M #(_ 1ZVQ(?;$LBX)B72J%*+A$%+$4@V4UICZP>N"8 M MQ@BA1> \4?7%]?884(E6^TR.WR"KQ^]0:\ H2!KQDO)6)K.7659C9?=M.& M[[+F\WOXOJ3J# 3P+? ]/["X+X;=_T"LS]W5F6K3Y;?I\BN]L$?O6N@))-0] MT-& W[^7I#!YTO$RK&S!U6IQI69FU-T\B,81G+IWAS%TK?PX@N/6Z@@U:%&# M0=2OW-1O0UA5/VI*!"A!*T*)(MA:BEHP.N" ,#EAM=C$H9TT;$G#0=(O.J5Z M3+%M/9#>@FHQ&?'-Z%8S7TAISVW8(8F#)#[![1J%D9_8>:.6-WHB[W%6[X', MN% CA45N XXZ+!/?.^&UV$#?CANWN/%/XE+.MKVT<3>], Q.<+M&H1_U\"8M M;_*$@4D%OW^R\_V7F-K+#4]=FU#=WX4%_AD\87Y\Y2Y\YQ(9U MGSO&7DKM. O[M@N'^^Y/KF&-ZB.+F,6J?Q6#^_X+AQOPP]1H=D=5'WND9(." MSR[9"ZD=A[]OZG"XJ_=NE;:"2_M.L-NL)V%GEG6-((QA3['V+1T.]_2+-"WS MLM[1KK%.2$KJ;:ZA1[E>',B_U0,K>+=KC\*Q?TINL4H\KX=\W]WA<'M_[I:T MD3O<;8;1^)358M1)LGMP[#!GOD](; F3>HINM)=WENA017V,JF\4+ZJ3R(HK M?:ZI+C-]],3"&.CW&ZY/(\V-.=RTA]GY?U!+ P04 " #O2(A7M9(<;X0# M #?"P &0 'AL+W=OP\R.7'R3)<8*_*@HDW.O5&H_]7V9E[A"\IKO,=-/MEQ42.FMV/ER M+S J:E)%_3 ($K]"A'F+66U[$(L9/RA*&'X00!ZJ"HF_;S'EQ[D'O5?#(]F5 MRAC\Q6R/=O@)J^?]@] [O_-2D HS23@# F_GW@VX')"%.<*^,"Z;\7O,24&D\ZC^^M4Z^+:8BGZU?OZUJ\%K-!$B\Y M_9,4JIQ[J0<*O$4'JA[Y\1-N!<7&7\ZIK'_!L<$FB0?R@U2\:LDZ@XJPYA_] M: MQ0H#1&4+8$D*;$)\A1"TAL@FC,X112QB]-T+<$N+W1DA:0E+7OBE67>D5 M4F@Q$_P(A$%K;V91'U?-U@4FS'36DQ+Z*=$\M?B=*PQ@ *[ ;U@?D'Q=@"67 M2H*+%5:(4'FI[<]/*W#QX1)\ (2!+R4_2,0*.?.53L,X\_,VY+()&9X)&8'/ MG*E2@HP5N'#PLV'^9(#O:_E=#<+7&BS#08?WN;H&$?P(PB",'/FLWD\/77+^ M7_3U+T=_4XRH:XBH]CC*Q*M2'0*M/LCXDZM6GCQF'[O*,N_*,A\MSV%PU=2$L MYQ5VZ1OWHEZ%5F8K%\;JXLR!2>P[[<", K?$M).8#DK\PA6B[2?L;)NG_5=2 M:M_D/F9LGU#6Q\ TL:^SPU%RYAPGGF6 P<_/>/!?W7K'2Y"5 0A^^'B+U'2&(7KL^&/[)-%%AL:OG/JG=')AJWCF=M9LM;^N) MRK(OX70%'?;,S*(.^\UDFDU<=AA,LV9X]7\FU(R^GY'8$2:UU*U.+K@>ZVX2 MS339;!3?U]//ABL]2]7+4D_@6!B ?K[E>@)J-R9 -],O_@502P,$% @ M[TB(5V3,?NKL @ I@@ !D !X;"]W;W)K&UL MK99M;],P$,>_BA4FM$FP/+5I-]I(:\?$),:FE<$+Q LWN336'#O8;CN^/;:3 MACZDI9IXD_CA[I_?W<6Y#)9BH?A)ZYC4I*"F"2<(8$9$/GRK\<]XV]-?A&8"G7 MQLA$,N7\V4QNTZ'C&2"@D"BC@/5M 6.@U AIC%^UIM,\TCBNCU?J-S9V'ED.$Y58]\^0GJ>+I&+^%4VBM:UK:>@Y*Y5+RHG35!05AU MQR]U'M8T0VD K,AO6-58X'@B^1,)8:S4SL+FQWCH: MPDP5)TKH7:+]5/R%*T"^A]ZCSZ"S(?5@,B]+"KI2"E,TQC)'-[K6Z)95[XQ) M_B-0K"!%BJ_<3J]!84+EF19XFERCTY,S=(((0U]S/I>8I7+@*LUKGNHF-=NH M8@OVL%V@.\Y4+M%'ED*ZZ>_J.)M@@U6PH^"@X'VBSE'HOT.!%X0M/./CW8,# M.&&3^]#J=?;IE2!T/MD,)2;+^HQE.M$298(7*",,LP00M?EM2UXE'EEQZ\'IDWF_NA*_GN&I(?7EQL<;<9]7KMY-V&O'LD M>06'*,%30HDB[:#='88P\KM;H+M&7CMEU%!&!REO-JK^+\:H+9E;B+LV>Q![ M#6+O*$1[\-']E)*9_2A(].,.BBF(GVVH!S5-J[J4)4Y@Z.A>)$$LP(G?OO$C M[T/;,?U/8AOA]YOP^T>$_^I#V]\YDGXOVBK9KDW0];>*YJY]\@L0,]L))4KX MG*GJ@]BL-LWVRO:8K?61;L)5S_PK4W7P.RQF1)>50J8EO?.>?HE$U16KB>*E M;2Q3KG2;LL-<_TB , 9Z/^.ZN=03\X#FUR3^ U!+ P04 " #O2(A7-UF\ M%"4" !#!0 &0 'AL+W=OL?.JD%23',2J?V2V(>6_W]E)(S8!5;\D=_:] M=^_9.F>--D^V G#D60IE9U'E7'U#J2TJD,P.= T*=S;:2.8P-5MJ:P.L#" I M:!K''ZAD7$5Y%M:6)L_TS@FN8&F(W4G)S&$.0C>S*(E>%E9\6SF_0/.L9EMX M />S7AK,:,]2<@G*^/A3\XM#8HYAX)VNMGWSRI9Q%L1<$ M @KG&1C^]G +0G@BE/&GXXSZEAYX'+^PWP7OZ&7-+-QJ\^[.X0B0G@.D'2 -NMM& M0>6".99G1C?$^&ID\T&P&M HCBM_*0_.X"Y'G,N_:P=M]_1, M]_O"#<@P>4_2.!W^"Z=HI'>3]F[2P#] MRM$;SO&4N!:?Q(' 3_X^CP=)G&9T?Z+ON.\[?M/IG.H\/M4YGG[\KS,]F@G_ MO'QC9LN51>(-XN+!!'E,.[)MXG0=QF2M'0Y=""M\Y<#X MS?:!R5+O&3U[^; M^5]02P,$% @ [TB(5]U$^W_K P TQ0 !D !X;"]W;W)K&ULM9CO;Z,V&,?_%8N=ICOI6C 02+HDTJ[5=)MZ6W7M;:_= MY$FP#NS,=IKK?S\;*% @+B++BR2V\?/CX\>0+YX?N/@N$P"%?F0IDPLG46IW MY;IRE4!&Y"7? =-7-EQD1.FNV+IR)X"L58 M-T21Y5SP Q)FMO9F&OG:Y-::AC)3QGLE]%6J[=3R3ZX 80]=H%O0JR%UXPM1 M>T$5U1V^*8;1+26/-"T&W]^ (C25'_3<;_[WA7\*%'Y&^IP11YEJ:KV$??A$ORN.9 M6^MI.8DF<_>IR6C-R=S/5W)'5K!P] TK03R!L_SY)QQYOUB(@XHX^-^(^_@* M[Y,&WZQ%9XT_DBZLZ,)!=,] Q!&JR; ZAAU./,'M0EJ3&8DZJ5 G)Z/V@4TZ M8$'B36M ML*:G8L7#*CCMJ:!9DE>HUF1&HLXJU-G)J'U@L[A5$?TX:-':TQF+V]!&^&3<7CC\YK^A/?)8LEK?X&$"QT(V&UA(O\L:MG>M M/9NQM+6VP!:NF"[=GG@BJ0% =J19_T2K.3 M M*20@C\'RJE&F-RA(-;"27=%R$0=QYT%Y#MF":]V"[<)E".V NG9US 7VVZ3G M4#)^K61\NY)I[MFT/MP8^#+?%2^Q%[7%2SGKU3L_CL)JUNO,:U'BVT7)TID[7;.'$RQWU?B-A2)G7LC;;R+F.]-J(X02LZBN_R0ZA' MKA3/\F8"9 W"3-#7-YRKEXXYUZK.,9?_ 5!+ P04 " #O2(A7.]9'.U8" M "_!0 &0 'AL+W=ORF/3/2RB)"D0ZYMM*_+TDIJA+;:2\2N=P9SHZT MFS92/>@* ,E3S86>>Q7B]LKW=5Y!3?5(;D&8DU*JFJ+9JHVOMPIHX4 U]Z,@ MF/@U9<++4A=;JBR5.^1,P%(1O:MKJGY? Y?-W N]Y\"*;2JT 3]+MW0#:\"[ M[5*9G=^S%*P&H9D41$$Y]SZ$5XO$YKN$GPP:/5@36\F]E ]V\Z68>X$5!!QR MM S4O/:P ,XMD9'QV'%Z_946.%P_LW]RM9M:[JF&A>2_6('5W)MYI("2[CBN M9/,9NGK&EB^77+LG:;K MV!7:*G-EW5"D6:ID0Y3--FQVX;QQ:%,-$_8KKE&94V9PF'V3""0,R3NR HV* MY0@%65!=F=VJC$ZH_)[CB,3A)8F"*#X"7[P-OZ7B%-PW M?O6F1;UID>-+3O"Y.FWMN5W 7T..5=9231R5[:E]-@FB,/7W0_V'2>/I-.Z3 M7JB,>Y7QFRH''\;J/*:M)1@/K@WCV?25MB-)010U7;8=)D^OZU[_Z@O>QH M^TK5A@E-.)0&%HRFQAO5CHMV@W+K.NY>HNE?MZS,A 5E$\QY*4W7=1O;Q/W, MSOX 4$L#!!0 ( .](B%>;,O%3J ( * ( 9 >&PO=V]R:W-H965T M\4$,GT[J\=EV5 M9I!3U111B"=C?)T/'<]L"#BDVC!0_*U@!)P;(MS&[X;3:4,: M8'?\RO[9YHZY/%(%(\%_L;G.ALZE0^:PH!77=V+]!9I\S@U?*KBR7[*N?>,+ MAZ25TB)OP+B#G!7UGSXW.G0 ?K0#$#2 X%! V #"0P%1 X@.!9PW )NZ6^=N MA1M339.!%&LBC3>RF8%5WZ)1+U:8@*>.*W,.SKB@_0Y>'V9B)T'<(X$7!%O@H_WP'ZGND]"W\' +?+P?/H:T3[R+G=$G!T3W(@OW M-^$N:M\6(&@+$%B^: =?K?8=E)5,,SSQ9"K%4M*\1VXJG0G)_L"2FR9SK4J:PM#!+J) KL!)WK_S8^_C-MV/23:NR6)+9KK5*D&Y5EVA__4( M6X\-+<-6R_#_M>PLU[*2!P7S;=KN#?96;6NRJTZR7C_>%&1\S("3(Y%M%")J M"Q'M+<1F+^F1648Q2 ^UUTQB#4ZQ?R@[=[9-^)K\O*-5$%[Y\>6F7*.]>WCK M<3TFV>1(9+7V;J>[F[O[ELHE*Q3AL$!ZKW^!0LGZ/JP-+4K;\!^%QNO##C-\ M0H T#KB^$-CT&\/<(>VC)/D+4$L#!!0 ( .](B%=LF,W,5P, $D+ 9 M >&PO=V]R:W-H965T@7 MC+92MQ;!PZ!:!SP@'MSDMK'FQ,%VVO7?<^UD6=ITV81&']+8.>?8]_CFY@ZW M0MZJ&$"3NX2G:N3$6F?GKJO"&!*JSD0&*3Y9"9E0C4.Y=E4F@4:6E' W\+R^ MFU"6.N.AG9O+\5#DFK,4YI*H/$FHW%T %]N1XSOW$]=L'6LSX8Z'&5W# O3W M;"YQY%8J$4L@54RD1,)JY$S\\]G X"W@!X.MJMT3$\E2B%LS^!*-',]L"#B$ MVBA0_-O )7!NA' ;?TI-IUK2$.OW]^J?;.P8RY(JN!3\)XMT/'+>.R2"%#*7LFVQ'H."7.E15*2<0<)2XM_>E?Z4".@SG%"4!*"0T+W M$4*G)'2>2^B6A.YSM]0K"39TMXC=&C>EFHZ'4FR)-&A4,S?6?% M[Z(5E1_!O1\70:O@MU"?D8[_E@1>T#FRG\MV^@(RI'N/TJ?M]$F^;EU]]L^; MWS.C4R5'Q^IU']&[$9IRDN;)$J1)@>*4R7U:1.2$I>7DZ;&S+]1[5MT4K,W8 M&[J;NIM-A'\ F38A_6 ?,FM"!@^0O3=UL@G&Y!8)DDF68A7RB*2H03@QT6!W( S?O/*[WL?6[*F5WG7:_RK?=DMCV)F#81'PZM;1/9\ZM? M^=5O]6N>+SD+^8Y,TE3D:8@N+&R>/11@,B\\(+^NP+R,OX_%W[K*\\^\L.HE MQ:8O*39[(;&]HQI41S7XKP5Q\&2*-A&-@MB$- IB$](HB&ZM9TA KFVSIDB( M&:B+SV4U6_6#$]L&'/ND2Q')FQ MUX-]L77A>8[(]Q5)D<,-X]_%"D"2ISA*Q,A82;F^-$TQ7T%,Q3E;0Z+N+!B/ MJ52G?&F*-0<:Y$%Q9-JM5L^,:9@8XV%^[9:/ARR549C +2/$FI4.;/ [>,7 MNI=77E5F1@5,6?1G&,C5R!@8)( %32-YQS8?H:Q0-^/-623R7[(IRO95X7DJ M)(O+8/4$<9@4__2I;(BM %71Y@"[#+!W [I[ MIE0/O0#)TRH'-HAFX9T#TT M0Z\,Z!T:T"\#^KE81>OFTCA4TO&0LPWA66E%RPYR??-HI4B89%:\EUS=#56< M'']F$HC5);^1SRR9LT1R%JDR2W*=2. @I" G#D@:1H(\P)-,:72J"G^]=\C) MAU/R@80)>5BQ5- D$$-3JD?*P.:\3#\MTMM[TK?)C5[86^"E-SDG+.B-VRVXWU4+C=U!H_E]W[ MN>S^.TU'DWW9:U*T*VNV@FW =/M]^N%O'J6DVC?J51_YT^ M6KW+$)!;RN6S]E76[3F0B#D'(UD_^R28"+5;@F MM\#GRCMT"6?9^ +-T_H2/=@>(,]WYL53??YC/8%*ZGUZ5!2[\VB-?K MO%U?:^IU,)9#=;7:2YWD.X@[UZ?6 MI6,U7'>M2Z_8*7W%%QNW-Y0OPT20"!8J5>N\WS4(+_9"BQ/)UOE6W(Q)R>+\ M< 4T )X54/<73'V$ER=9@FI'>OPO4$L#!!0 ( .](B%?VSUW_,P, "03 M - >&PO*QK['Y]QC^X88!K59"78S9\Q$ MRU+(>DCFQE2?XKB>SEE)ZS-5,6F10NF2&MO5L[BN-*-Y#:12Q+U.)XU+RB49 M#>2BO"I-'4W50IHA2=M0Y&]?\R'IIA])Y.7&*F=#Y.@90YAP/^#' MVM]8@@Y&SH+D+:HCQLU.C@:%DIL-38@/6&5:LNB>BB$94\$GF@.KH"47*Q_N M06"JA-*1L95D4W4A4C]XN.M[4&2-3LFETBZWS^"_)\WP/6#= X-KRCJ<:;KJ]L[)AN!N-LE$Z9SI-DV7K$.C@6 % MV-%\-H>[454,H#&JM(V=9TPR3<6V:5O[;WF57^TXN?A7EMUOE7W#08_-:_6MFSP_!)/I M(9@\B)KL'X+)[$V:C)L7^-8I8>>,T$8C.(L-R0\XU8E-TFBRX,)PV?3F/,^9 M?')4L/*&3NR? #OZ=GS."KH0YK8%AV33_LYROBBS=M0U+$0S:M/^!M/KINU! MT.;B,F=+EH^;KIY-7#.R#9NUN8"PCURY*XQ@'(^%$<"P/)@#C.-96)[_:3Y] M=#X>P[SU@T@?Y?11CF>%D+'[8'G"G,Q>X9EF69*D*;:BXW'0P1A;MS2%G[ : MY@T86![(]&=KC>\V7B'/UP&VI\]5"#93O!*QF>)K#4AXW8"19>'=QO( ]L% MK'8@?S@/U%28DR2PJY@W[ G&D2S#$*C%<(VF*;(Z*7S"^X,])4F296$$L+"# M),$0>!IQ!', 'C D2=Q[<.]]%*_?4_'F_V*C1U!+ P04 " #O2(A7EXJ[ M', 3 @ "P %]R96QS+RYR96QSG9*Y;L,P#$!_Q=">, ?0(8@S9?$6 M!/D!5J(/V!(%BD6=OZ_:I7&0"QEY/3P2W!YI0.TXI+:+J1C]$%)I6M6X 4BV M)8]ISI%"KM0L'C6'TD!$VV-#L%HL/D N&6:WO606IW.D5XA-/E_G;@2=&A(E@6FD7)TZ(= MI7\=Q_:0T^FO8R*T>EOH^7%H5 J.W&,EC'%BM/XU@LD/['X 4$L#!!0 ( M .](B%>TL&_*L00 XE / >&PO=V]R:V)O;VLN>&ULQ9I+;]LX$(#_ M"J%3>O#:DBCG@;I -VEW Z1I$!OIL:!EVB8BD0)).6E__0ZI-4)YH\%>3)]L M/2Q_'E+SS=#Z^*+T\U*I9_):5]+,DJVUS=5X;,HMKYGY0S5!7S$.?H:/P_ZU"^*5_C]A5.NU*/F-*MN:2]O%4?/* 4JS%8U) MB&0UGR7[4\AGN2)?I(4@D5O970K.=;\4OOIVU?UJ"[A!#/65@ /Z=N7!CP=Y M#=NJ$BOX]A69.PCW 4/4FGQON X@,P0R.QGDM:J; #)'(/.(D'^RBLF2$S]- M#3F[;@-(BD#2$T+^S +( H$L3C;<9V0:0YPCD^7$A[R&% MDY2,8*B-\&P/FAOXS&$&ND 8+R(P9HZQ-4)R8\B<;WS>?.2-"C/0)0)Y&0$R M!\C/9:E:-\Z/O.1BQSS%6R*?8)E\$H&1 N,CWW'9H-E(8F&G2(ZO&8UX YA>F)=1@()@[9@NQ5R2QI!)ZFSR%>Y@\L2JMI>?,86D,1R2YCYXI>\+.I? O0%:5F&IC6DD MBZ&1U'ED ?VB:?6O+M&$?)A"LA@*29U#[A5(1%K7.;H8WDKH^L+1SM"6)89, M4F<3J!3=&'-9BMZ=G&$2R8XLD;F R@#.90?S$$K:0TQ,(ED,B0S4-.1L$6)B M$LEB2&2H??>(:8F'?R&-X9ZE-[LS+'O)/'\,Y ITK. M;D),=+$L1A,SF-A[F)A_\E/Z9T1"3,P_>0S_#&'VYR;FGSR&?PZ[?QAM;IFH M3"^:F'_R&/X9M'D>8F+^R6/X9Q"3AIB8A?(8%AHL.L)H4LQ"-(:%!C'#:%+, M0C2&A08QBQ 3LQ"-8:%!S&F(B5F(QK#08*79FYOHGS8Q++1?HWK+EPO^:EM6 MA?4FQ2Q$8UBH5Q#W2$-,S$(T\N*:FZ5MTU3^#QP6EL44LQ"-LM;6P_1OX#8R MMB=+BEF(QNZ"PFCV2@^*68A&Z85ZF#^XV&RA)1JQ7=AD%)B%BBB]4 _S&[.M MADH.-L(UP@*S4!%E#>Z]SM*-?AUB8A8JHJS!O==9^L048F(6*F)8Z#U,%]XF MS)L%9J$BAH6&%E[[SPZ@#P]X"XWWS]^L^!JZZ=4]?(6!_26KR@=-W$OW?R M MW*+]NJVJ:]CW7=XIMMH_SK-_%.G3/U!+ P04 " #O2(A7O '6P> ! #L M( &@ 'AL+U]R96QS+W=O M )/[F/!00D5#B]B %28/D<269Q#)[HE"$8Y%08/F5-;8\O7?^)-E>_Z2=FW9 M=H>\V?9YOIS[]96*W6FV7Z:E;?NS3H?PR.'QVPWO>I%2:R6L[K%-9 M-.&XN^[.X;*1F_/D9O+\MFB&YS=I0NT@A2"M'V009/6#'(*\?E"$H%@_: 9! ML_I!MQ!T6S_H#H+NZ@?=0]!]_2"9HHQ3@J01U@1:"W(M!%X+@BT$8@N2+01F M"Z(M!&H+LBT$;@O"+01R"](M!'8+XBT$>BOJK01Z*^JM!'KKZ&&;0&]%O95 M;T6]E4!O1;V50&]%O95 ;T6]E4!O1;V50&]%O95 ;T.]C4!O0[V-0&]#O8U M;QN]+"'0VU!O(]#;4&\CT-M0;R/0VU!O(]#;4&\CT-M0;R/0VU%O)]#;46\G MT-M1;R?0VU%O)]#;1R^["?1VU-L)]';4VPGT=M3;"?1VU-L)]';4VPGTCJAW M)- [HMZ10.^(>D<"O2/J'0GTCJAW)- [CCY6_J?>N9QV*5][OM=X_?^DNIS/ M3=?+7Y;?.T @=!&S:;EL6 M_0$W>4!$$ENVH?#W=<(@M:*HB$J]&R)B^]T76SJ;9/2VM>1[F[IJ_#A9A& ? M&//Y@FKM4V.IB2,SXVH=XE\W9U;G2STG)@:#(F&2>.*I_T'G<3VZQQHJVMRER'.,[63?$MI;]/2./*;HY?E-;?Q D) M.YG0COPJ^C87( MA?+\(QX38^FKGX_:TRZH^&5VW-X/XY;=>7C67:[?XZ]G?*Q_81\"I \)TH<" MZ2,#Z6,(TL5PN034$L! A0#% M @ [TB(5P=!36*! L0 ! ( ! &1O8U!R;W!S M+V%P<"YX;6Q02P$"% ,4 " #O2(A7.!,+M.\ K @ $0 M @ &O 9&]C4')O<',O8V]R92YX;6Q02P$"% ,4 " #O2(A7F5R< M(Q & "<)P $P @ '- 0 >&PO=&AE;64O=&AE;64Q+GAM M;%!+ 0(4 Q0 ( .](B%>Y=!5_Y@4 &PO=V]R:W-H965T&UL4$L! A0#% @ [TB(5V":-"6^ P ^@P !@ M ("!.10 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ [TB(5\TPBU^]# DW !@ ("!)"0 'AL+W=O!" M !X;"]W;W)K&UL4$L! A0#% @ [TB(5P^[ M2Z2;" 'A8 !D ("!!D< 'AL+W=O&PO=V]R:W-H965TI3 !X;"]W;W)K&UL4$L! A0#% @ [TB(5WB*3G,*!0 8PP !D M ("!=U< 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ [TB(5ZZ(VD"+!@ (1( !D ("! M*FD 'AL+W=O&PO=V]R:W-H965TS@( "4& 9 M " @>5R !X;"]W;W)K&UL4$L! A0#% M @ [TB(5U7H6Q-/ @ *P4 !D ("!ZG4 'AL+W=O\" #_!@ &0 M@($<@P >&PO=V]R:W-H965TQB&0Q! 0 )4) 9 " @4*& !X;"]W;W)K&UL4$L! A0#% @ [TB(5P1F<6%8 @ *04 !D M ("!?8H 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ [TB(5Q9C=_^T!0 ]! !D ("!IY0 M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M[TB(5_]2D2+R 0 0 !D ("!/J 'AL+W=O&UL4$L! A0#% @ [TB(5]5FQ 8,! M9A( !D ("!$ZP 'AL+W=O&PO=V]R:W-H965T0( *\% 9 " @8*S !X;"]W;W)K&UL4$L! A0#% @ [TB(5RGGR,M @ ?@0 !D M ("!,K8 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ [TB(5S^:.&PO=V]R:W-H965T&UL4$L! A0#% @ [TB( M5ZGT"K\/!0 4AD !D ("!X\D 'AL+W=O&PO=V]R:W-H965T&PO=V]R:W-H965T&UL4$L! A0#% @ [TB(5S=9O!0E @ 0P4 !D M ("!T?X 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ [TB(5YLR\5.H @ H @ !D ("!W &PO=V]R:W-H965T 9 " @4D. M 0!X;"]W;W)K&UL4$L! A0#% @ [TB(5_;/ M7?\S P )!, T ( !+A,! 'AL+W-T>6QE&PO=V]R:V)O;VLN>&UL4$L! A0#% @ [TB(5[P!UL'@ M 0 [" !H ( !4QP! 'AL+U]R96QS+W=O30 0 K2 !, M ( !:QX! %M#;VYT96YT7U1Y<&5S72YX;6Q02P4& #\ /P P$0 ;" ! # end XML 68 Show.js IDEA: XBRL DOCUMENT // Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission. Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105. var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0); e.removeAttribute('id');a.parentNode.appendChild(e)}} if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'} e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}} XML 69 report.css IDEA: XBRL DOCUMENT /* Updated 2009-11-04 */ /* v2.2.0.24 */ /* DefRef Styles */ ..report table.authRefData{ background-color: #def; border: 2px solid #2F4497; font-size: 1em; position: absolute; } ..report table.authRefData a { display: block; font-weight: bold; } ..report table.authRefData p { margin-top: 0px; } ..report table.authRefData .hide { background-color: #2F4497; padding: 1px 3px 0px 0px; text-align: right; } ..report table.authRefData .hide a:hover { background-color: #2F4497; } ..report table.authRefData .body { height: 150px; overflow: auto; width: 400px; } ..report table.authRefData table{ font-size: 1em; } /* Report Styles */ ..pl a, .pl a:visited { color: black; text-decoration: none; } /* table */ ..report { background-color: white; border: 2px solid #acf; clear: both; color: black; font: normal 8pt Helvetica, Arial, san-serif; margin-bottom: 2em; } ..report hr { border: 1px solid #acf; } /* Top labels */ ..report th { background-color: #acf; color: black; font-weight: bold; text-align: center; } ..report th.void { background-color: transparent; color: #000000; font: bold 10pt Helvetica, Arial, san-serif; text-align: left; } ..report .pl { text-align: left; vertical-align: top; white-space: normal; width: 200px; white-space: normal; /* word-wrap: break-word; */ } ..report td.pl a.a { cursor: pointer; display: block; width: 200px; overflow: hidden; } ..report td.pl div.a { width: 200px; } ..report td.pl a:hover { background-color: #ffc; } /* Header rows... */ ..report tr.rh { background-color: #acf; color: black; font-weight: bold; } /* Calendars... */ ..report .rc { background-color: #f0f0f0; } /* Even rows... */ ..report .re, .report .reu { background-color: #def; } ..report .reu td { border-bottom: 1px solid black; } /* Odd rows... */ ..report .ro, .report .rou { background-color: white; } ..report .rou td { border-bottom: 1px solid black; } ..report .rou table td, .report .reu table td { border-bottom: 0px solid black; } /* styles for footnote marker */ ..report .fn { white-space: nowrap; } /* styles for numeric types */ ..report .num, .report .nump { text-align: right; white-space: nowrap; } ..report .nump { padding-left: 2em; } ..report .nump { padding: 0px 0.4em 0px 2em; } /* styles for text types */ ..report .text { text-align: left; white-space: normal; } ..report .text .big { margin-bottom: 1em; width: 17em; } ..report .text .more { display: none; } ..report .text .note { font-style: italic; font-weight: bold; } ..report .text .small { width: 10em; } ..report sup { font-style: italic; } ..report .outerFootnotes { font-size: 1em; } XML 70 FilingSummary.xml IDEA: XBRL DOCUMENT 3.23.3 html 229 309 1 true 57 0 false 10 false false R1.htm 000 - Document - Document And Entity Information Sheet http://investors.permapipe.com/20231031/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/20231031/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/20231031/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/20231031/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/20231031/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/20231031/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/20231031/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/20231031/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/20231031/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/20231031/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/20231031/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/20231031/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/20231031/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/20231031/role/statement-note-7-stockbased-compensation Note 7 - Stock-based Compensation Notes 14 false false R15.htm 014 - Disclosure - Note 8 - Earnings (Loss) Per Share Sheet http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share Note 8 - Earnings (Loss) Per Share Notes 15 false false R16.htm 015 - Disclosure - Note 9 - Debt Sheet http://investors.permapipe.com/20231031/role/statement-note-9-debt Note 9 - Debt Notes 16 false false R17.htm 016 - Disclosure - Note 10 - Leases Sheet http://investors.permapipe.com/20231031/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/20231031/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/20231031/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/20231031/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/20231031/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/20231031/role/statement-note-15-noncontrolling-interests- Note 15 - Noncontrolling Interests Notes 22 false false R23.htm 022 - Disclosure - Note 16 - Contingencies Sheet http://investors.permapipe.com/20231031/role/statement-note-16-contingencies- Note 16 - Contingencies Notes 23 false false R24.htm 023 - Disclosure - Significant Accounting Policies (Policies) Sheet http://investors.permapipe.com/20231031/role/statement-significant-accounting-policies-policies Significant Accounting Policies (Policies) Policies http://investors.permapipe.com/20231031/role/statement-note-13-recent-accounting-pronouncements- 24 false false R25.htm 024 - Disclosure - Note 4 - Revenue Recognition (Tables) Sheet http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-tables Note 4 - Revenue Recognition (Tables) Tables http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition 25 false false R26.htm 025 - Disclosure - Note 6 - Impairment of Long-lived Assets (Tables) Sheet http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-tables Note 6 - Impairment of Long-lived Assets (Tables) Tables http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets 26 false false R27.htm 026 - Disclosure - Note 7 - Stock-based Compensation (Tables) Sheet http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-tables Note 7 - Stock-based Compensation (Tables) Tables http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation 27 false false R28.htm 027 - Disclosure - Note 8 - Earnings (Loss) Per Share (Tables) Sheet http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-tables Note 8 - Earnings (Loss) Per Share (Tables) Tables http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share 28 false false R29.htm 028 - Disclosure - Note 10 - Leases (Tables) Sheet http://investors.permapipe.com/20231031/role/statement-note-10-leases-tables Note 10 - Leases (Tables) Tables http://investors.permapipe.com/20231031/role/statement-note-10-leases 29 false false R30.htm 029 - Disclosure - Note 11 - Restricted Cash (Tables) Sheet http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash-tables Note 11 - Restricted Cash (Tables) Tables http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash 30 false false R31.htm 030 - Disclosure - Note 14 - Treasury Stock (Tables) Sheet http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-tables Note 14 - Treasury Stock (Tables) Tables http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock 31 false false R32.htm 031 - Disclosure - Note 2 - Business Segment Reporting (Details Textual) Sheet http://investors.permapipe.com/20231031/role/statement-note-2-business-segment-reporting-details-textual Note 2 - Business Segment Reporting (Details Textual) Details http://investors.permapipe.com/20231031/role/statement-note-2-business-segment-reporting 32 false false R33.htm 032 - Disclosure - Note 3 - Accounts Receivable (Details Textual) Sheet http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable-details-textual Note 3 - Accounts Receivable (Details Textual) Details http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable 33 false false R34.htm 033 - Disclosure - Note 4 - Revenue Recognition (Details Textual) Sheet http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-details-textual Note 4 - Revenue Recognition (Details Textual) Details http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-tables 34 false false R35.htm 034 - Disclosure - Note 4 - Revenue Recognition - Revenues by Revenue Class (Details) Sheet http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details Note 4 - Revenue Recognition - Revenues by Revenue Class (Details) Details 35 false false R36.htm 035 - Disclosure - Note 4 - Revenue Recognition - Reconciliation of the Cost in Excess of Billings (Details) Sheet http://investors.permapipe.com/20231031/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 36 false false R37.htm 036 - Disclosure - Note 5 - Income Taxes (Details Textual) Sheet http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes-details-textual Note 5 - Income Taxes (Details Textual) Details http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes 37 false false R38.htm 037 - Disclosure - Note 6 - Impairment of Long-lived Assets (Details Textual) Sheet http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-details-textual Note 6 - Impairment of Long-lived Assets (Details Textual) Details http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-tables 38 false false R39.htm 038 - Disclosure - Note 6 - Impairment of Long-lived Assets - Goodwill (Details) Sheet http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-goodwill-details Note 6 - Impairment of Long-lived Assets - Goodwill (Details) Details 39 false false R40.htm 039 - Disclosure - Note 7 - Stock-based Compensation (Details Textual) Sheet http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-details-textual Note 7 - Stock-based Compensation (Details Textual) Details http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-tables 40 false false R41.htm 040 - Disclosure - Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details) Sheet http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details Note 7 - Stock-based Compensation - Stock-based Compensation Expense (Details) Details 41 false false R42.htm 041 - Disclosure - Note 7 - Stock-based Compensation - Stock Option Activity (Details) Sheet http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stock-option-activity-details Note 7 - Stock-based Compensation - Stock Option Activity (Details) Details 42 false false R43.htm 042 - Disclosure - Note 7 - Stock-based Compensation - Restricted Stock Activity (Details) Sheet http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details Note 7 - Stock-based Compensation - Restricted Stock Activity (Details) Details 43 false false R44.htm 043 - Disclosure - Note 8 - Earnings (Loss) Per Share - Summary of Earnings Per Share (Details) Sheet http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-earnings-per-share-details Note 8 - Earnings (Loss) Per Share - Summary of Earnings Per Share (Details) Details http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-tables 44 false false R45.htm 044 - Disclosure - Note 9 - Debt (Details Textual) Sheet http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual Note 9 - Debt (Details Textual) Details http://investors.permapipe.com/20231031/role/statement-note-9-debt 45 false false R46.htm 045 - Disclosure - Note 10 - Leases (Details Textual) Sheet http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual Note 10 - Leases (Details Textual) Details http://investors.permapipe.com/20231031/role/statement-note-10-leases-tables 46 false false R47.htm 046 - Disclosure - Note 10 - Leases - Supplemental Balance Sheet Information Related to Leases (Details) Sheet http://investors.permapipe.com/20231031/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 47 false false R48.htm 047 - Disclosure - Note 10 - Leases - Lease Costs (Details) Sheet http://investors.permapipe.com/20231031/role/statement-note-10-leases-lease-costs-details Note 10 - Leases - Lease Costs (Details) Details 48 false false R49.htm 048 - Disclosure - Note 10 - Leases - Supplemental Cash Flow Information Related to Leases (Details) Sheet http://investors.permapipe.com/20231031/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 49 false false R50.htm 049 - Disclosure - Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details) Sheet http://investors.permapipe.com/20231031/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details Note 10 - Leases - Weighted-average Lease Terms and Discount Rates (Details) Details 50 false false R51.htm 050 - Disclosure - Note 10 - Leases - Maturities of Lease Liabilities (Details) Sheet http://investors.permapipe.com/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details Note 10 - Leases - Maturities of Lease Liabilities (Details) Details 51 false false R52.htm 051 - Disclosure - Note 11 - Restricted Cash - Summary of Cash, Cash Equivalents and Restricted Cash (Details) Sheet http://investors.permapipe.com/20231031/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 52 false false R53.htm 052 - Disclosure - Note 14 - Treasury Stock (Details Textual) Sheet http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-details-textual Note 14 - Treasury Stock (Details Textual) Details http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-tables 53 false false R54.htm 053 - Disclosure - Note 14 - Treasury Stock - Repurchases of Common Stock (Details) Sheet http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-repurchases-of-common-stock-details Note 14 - Treasury Stock - Repurchases of Common Stock (Details) Details 54 false false R55.htm 054 - Disclosure - Note 15 - Noncontrolling Interests (Details Textual) Sheet http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual Note 15 - Noncontrolling Interests (Details Textual) Details http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests- 55 false false All Reports Book All Reports ppih-20231031.xsd ppih-20231031_cal.xml ppih-20231031_def.xml ppih-20231031_lab.xml ppih-20231031_pre.xml ppih20231031_10q.htm permapipelogo10q.jpg http://fasb.org/us-gaap/2023 http://xbrl.sec.gov/dei/2023 true true JSON 73 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "ppih20231031_10q.htm": { "nsprefix": "ppih", "nsuri": "http://investors.permapipe.com/20231031", "dts": { "schema": { "local": [ "ppih-20231031.xsd" ], "remote": [ "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-roles-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd", "https://xbrl.sec.gov/country/2023/country-2023.xsd", "https://xbrl.sec.gov/currency/2023/currency-2023.xsd", "https://xbrl.sec.gov/dei/2023/dei-2023.xsd", "https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd", "https://xbrl.sec.gov/exch/2023/exch-2023.xsd", "https://xbrl.sec.gov/naics/2023/naics-2023.xsd", "https://xbrl.sec.gov/sic/2023/sic-2023.xsd", "https://xbrl.sec.gov/stpr/2023/stpr-2023.xsd" ] }, "calculationLink": { "local": [ "ppih-20231031_cal.xml" ] }, "definitionLink": { "local": [ "ppih-20231031_def.xml" ] }, "labelLink": { "local": [ "ppih-20231031_lab.xml" ] }, "presentationLink": { "local": [ "ppih-20231031_pre.xml" ] }, "inline": { "local": [ "ppih20231031_10q.htm" ] } }, "keyStandard": 269, "keyCustom": 40, "axisStandard": 27, "axisCustom": 0, "memberStandard": 25, "memberCustom": 30, "hidden": { "total": 37, "http://fasb.org/us-gaap/2023": 25, "http://xbrl.sec.gov/dei/2023": 6, "http://investors.permapipe.com/20231031": 6 }, "contextCount": 229, "entityCount": 1, "segmentCount": 57, "elementCount": 470, "unitCount": 10, "baseTaxonomies": { "http://fasb.org/us-gaap/2023": 770, "http://xbrl.sec.gov/dei/2023": 29 }, "report": { "R1": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "b", "p", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "b", "p", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R2": { "role": "http://investors.permapipe.com/20231031/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_2023-08-01_2023-10-31", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2023-08-01_2023-10-31", "name": "us-gaap:CostOfRevenue", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "unique": true } }, "R3": { "role": "http://investors.permapipe.com/20231031/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_2023-08-01_2023-10-31", "name": "us-gaap:ProfitLoss", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2023-08-01_2023-10-31", "name": "us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "unique": true } }, "R4": { "role": "http://investors.permapipe.com/20231031/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_2023-10-31", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "i_2023-10-31", "name": "us-gaap:RestrictedCashCurrent", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "unique": true } }, "R5": { "role": "http://investors.permapipe.com/20231031/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/20231031/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_2022-01-31_StatementEquityComponentsAxis-CommonStockMember", "name": "us-gaap:StockholdersEquity", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2022-02-01_2022-04-30_StatementEquityComponentsAxis-CommonStockMember", "name": "us-gaap:NetIncomeLoss", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "unique": true } }, "R7": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:ProfitLoss", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:DepreciationDepletionAndAmortization", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "unique": true } }, "R8": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R9": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R10": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R11": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R12": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R13": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:AssetImpairmentChargesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:AssetImpairmentChargesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R14": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R15": { "role": "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share", "longName": "014 - Disclosure - Note 8 - Earnings (Loss) Per Share", "shortName": "Note 8 - Earnings (Loss) Per Share", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "15", "firstAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R16": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R17": { "role": "http://investors.permapipe.com/20231031/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": "d_2023-02-01_2023-10-31", "name": "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R18": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:CashAndCashEquivalentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:CashAndCashEquivalentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R19": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:FairValueDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:FairValueDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R20": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R21": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:TreasuryStockTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:TreasuryStockTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R22": { "role": "http://investors.permapipe.com/20231031/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_2023-02-01_2023-10-31", "name": "us-gaap:MinorityInterestDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:MinorityInterestDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R23": { "role": "http://investors.permapipe.com/20231031/role/statement-note-16-contingencies-", "longName": "022 - Disclosure - Note 16 - Contingencies", "shortName": "Note 16 - Contingencies", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "23", "firstAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R24": { "role": "http://investors.permapipe.com/20231031/role/statement-significant-accounting-policies-policies", "longName": "023 - Disclosure - Significant Accounting Policies (Policies)", "shortName": "Significant Accounting Policies (Policies)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "policies", "menuCat": "Policies", "order": "24", "firstAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R25": { "role": "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-tables", "longName": "024 - 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_2023-02-01_2023-10-31", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R26": { "role": "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-tables", "longName": "025 - 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_2023-02-01_2023-10-31", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:AssetImpairmentChargesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:AssetImpairmentChargesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R27": { "role": "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-tables", "longName": "026 - 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_2023-02-01_2023-10-31", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R28": { "role": "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-tables", "longName": "027 - Disclosure - Note 8 - Earnings (Loss) Per Share (Tables)", "shortName": "Note 8 - Earnings (Loss) Per Share (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "28", "firstAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R29": { "role": "http://investors.permapipe.com/20231031/role/statement-note-10-leases-tables", "longName": "028 - Disclosure - Note 10 - Leases (Tables)", "shortName": "Note 10 - Leases (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "29", "firstAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "ppih:SupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "ppih:SupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R30": { "role": "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash-tables", "longName": "029 - 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_2023-02-01_2023-10-31", "name": "us-gaap:ScheduleOfRestrictedCashAndCashEquivalentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "us-gaap:CashAndCashEquivalentsDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:ScheduleOfRestrictedCashAndCashEquivalentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "us-gaap:CashAndCashEquivalentsDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R31": { "role": "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-tables", "longName": "030 - Disclosure - Note 14 - Treasury Stock (Tables)", "shortName": "Note 14 - Treasury Stock (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "31", "firstAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:ScheduleOfTreasuryStockByClassTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:TreasuryStockTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:ScheduleOfTreasuryStockByClassTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:TreasuryStockTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R32": { "role": "http://investors.permapipe.com/20231031/role/statement-note-2-business-segment-reporting-details-textual", "longName": "031 - 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": "32", "firstAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:NumberOfReportableSegments", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:SegmentReportingDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:NumberOfReportableSegments", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:SegmentReportingDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R33": { "role": "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable-details-textual", "longName": "032 - Disclosure - Note 3 - Accounts Receivable (Details Textual)", "shortName": "Note 3 - Accounts Receivable (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "33", "firstAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:IncreaseDecreaseInAccountsReceivable", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2022-08-01_2022-10-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember", "name": "ppih:NumberOfMajorCustomers", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "unique": true } }, "R34": { "role": "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-details-textual", "longName": "033 - Disclosure - Note 4 - Revenue Recognition (Details Textual)", "shortName": "Note 4 - Revenue Recognition (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "34", "firstAnchor": { "contextRef": "i_2023-10-31", "name": "us-gaap:UnbilledReceivablesCurrent", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "i_2023-10-31_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": "ppih20231031_10q.htm", "unique": true } }, "R35": { "role": "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details", "longName": "034 - 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": "35", "firstAnchor": { "contextRef": "d_2023-08-01_2023-10-31", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2023-08-01_2023-10-31", "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": "ppih20231031_10q.htm", "unique": true } }, "R36": { "role": "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details", "longName": "035 - 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": "36", "firstAnchor": { "contextRef": "i_2023-10-31", "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": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2023-10-31", "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": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R37": { "role": "http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes-details-textual", "longName": "036 - Disclosure - Note 5 - Income Taxes (Details Textual)", "shortName": "Note 5 - Income Taxes (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "37", "firstAnchor": { "contextRef": "d_2023-08-01_2023-10-31", "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-08-01_2023-10-31", "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations", "unitRef": "Pure", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R38": { "role": "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-details-textual", "longName": "037 - 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": "38", "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": "ppih20231031_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": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R39": { "role": "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-goodwill-details", "longName": "038 - 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": "39", "firstAnchor": { "contextRef": "i_2023-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": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:GoodwillForeignCurrencyTranslationGainLoss", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "us-gaap:AssetImpairmentChargesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "unique": true } }, "R40": { "role": "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-details-textual", "longName": "039 - 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": "40", "firstAnchor": { "contextRef": "i_2023-10-31", "name": "us-gaap:CommonStockCapitalSharesReservedForFutureIssuance", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "unique": true } }, "R41": { "role": "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details", "longName": "040 - 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": "41", "firstAnchor": { "contextRef": "d_2023-08-01_2023-10-31_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": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-08-01_2023-10-31_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": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R42": { "role": "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "longName": "041 - 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": "42", "firstAnchor": { "contextRef": "i_2023-01-31_AwardTypeAxis-EmployeeStockOptionMember", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "-4", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31_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": "ppih20231031_10q.htm", "unique": true } }, "R43": { "role": "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "longName": "042 - 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": "43", "firstAnchor": { "contextRef": "i_2023-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": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2023-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": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R44": { "role": "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-earnings-per-share-details", "longName": "043 - Disclosure - Note 8 - Earnings (Loss) Per Share - Summary of Earnings Per Share (Details)", "shortName": "Note 8 - Earnings (Loss) Per Share - Summary of Earnings Per Share (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "44", "firstAnchor": { "contextRef": "d_2023-08-01_2023-10-31", "name": "us-gaap:WeightedAverageNumberOfSharesOutstandingBasic", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2023-08-01_2023-10-31", "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "unique": true } }, "R45": { "role": "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual", "longName": "044 - Disclosure - Note 9 - Debt (Details Textual)", "shortName": "Note 9 - Debt (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "45", "firstAnchor": { "contextRef": "i_2023-10-31", "name": "us-gaap:DebtAndCapitalLeaseObligations", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2023-10-31", "name": "us-gaap:DebtAndCapitalLeaseObligations", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:DebtDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R46": { "role": "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual", "longName": "045 - Disclosure - Note 10 - Leases (Details Textual)", "shortName": "Note 10 - Leases (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "46", "firstAnchor": { "contextRef": "i_2023-10-31", "name": "us-gaap:OperatingLeaseLiability", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "ppih:SupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock", "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "i_2023-10-31", "name": "us-gaap:FinanceLeaseRightOfUseAsset", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "ppih:LesseeOperatingAndFinanceLeasesTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "unique": true } }, "R47": { "role": "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "longName": "046 - 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": "47", "firstAnchor": { "contextRef": "i_2023-10-31", "name": "us-gaap:PropertyPlantAndEquipmentNet", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "i_2023-10-31_BalanceSheetLocationAxis-OtherCurrentLiabilitiesMember", "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": "ppih20231031_10q.htm", "unique": true } }, "R48": { "role": "http://investors.permapipe.com/20231031/role/statement-note-10-leases-lease-costs-details", "longName": "047 - Disclosure - Note 10 - Leases - Lease Costs (Details)", "shortName": "Note 10 - Leases - Lease Costs (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "48", "firstAnchor": { "contextRef": "d_2023-08-01_2023-10-31", "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": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-08-01_2023-10-31", "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": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R49": { "role": "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details", "longName": "048 - 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": "49", "firstAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "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": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-02-01_2023-10-31", "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": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R50": { "role": "http://investors.permapipe.com/20231031/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details", "longName": "049 - 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": "50", "firstAnchor": { "contextRef": "i_2023-10-31", "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": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2023-10-31", "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": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R51": { "role": "http://investors.permapipe.com/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "longName": "050 - 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": "51", "firstAnchor": { "contextRef": "i_2023-10-31", "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": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2023-10-31", "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": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R52": { "role": "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details", "longName": "051 - 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": "52", "firstAnchor": { "contextRef": "i_2023-10-31", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "i_2023-10-31", "name": "us-gaap:RestrictedCashAndCashEquivalents", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfRestrictedCashAndCashEquivalentsTextBlock", "div", "div", "us-gaap:CashAndCashEquivalentsDisclosureTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "unique": true } }, "R53": { "role": "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-details-textual", "longName": "052 - Disclosure - Note 14 - Treasury Stock (Details Textual)", "shortName": "Note 14 - Treasury Stock (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "53", "firstAnchor": { "contextRef": "i_2022-12-07", "name": "us-gaap:StockRepurchaseProgramAuthorizedAmount1", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-6", "ancestors": [ "p", "us-gaap:TreasuryStockTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "i_2022-12-07", "name": "us-gaap:StockRepurchaseProgramAuthorizedAmount1", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-6", "ancestors": [ "p", "us-gaap:TreasuryStockTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R54": { "role": "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-repurchases-of-common-stock-details", "longName": "053 - Disclosure - Note 14 - Treasury Stock - Repurchases of Common Stock (Details)", "shortName": "Note 14 - Treasury Stock - Repurchases of Common Stock (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "54", "firstAnchor": { "contextRef": "d_2023-10-01_2023-10-31", "name": "us-gaap:TreasuryStockSharesAcquired", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfTreasuryStockByClassTextBlock", "us-gaap:TreasuryStockTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "d_2023-10-01_2023-10-31", "name": "us-gaap:TreasuryStockSharesAcquired", "unitRef": "Share", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "td", "tr", "tbody", "table", "us-gaap:ScheduleOfTreasuryStockByClassTextBlock", "us-gaap:TreasuryStockTextBlock", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true, "unique": true } }, "R55": { "role": "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual", "longName": "054 - Disclosure - Note 15 - Noncontrolling Interests (Details Textual)", "shortName": "Note 15 - Noncontrolling Interests (Details Textual)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "55", "firstAnchor": { "contextRef": "d_2023-08-01_2023-10-31", "name": "us-gaap:NetIncomeLossAttributableToNoncontrollingInterest", "unitRef": "USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "td", "tr", "tbody", "table", "div", "body", "html" ], "reportCount": 1, "baseRef": "ppih20231031_10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "d_2023-08-01_2023-10-31_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": "ppih20231031_10q.htm", "unique": true } } }, "tag": { "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r16", "r90", "r91", "r113" ] }, "us-gaap_DebtInstrumentAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [ "r22", "r87", "r88", "r120", "r122", "r178", "r275", "r276", "r277", "r278", "r279", "r281", "r286", "r287", "r288", "r289", "r291", "r292", "r293", "r294", "r295", "r296", "r419", "r606", "r607", "r608", "r609", "r610", "r665" ] }, "us-gaap_ProceedsFromIssuanceOfSecuredDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromIssuanceOfSecuredDebt", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_ProceedsFromIssuanceOfSecuredDebt", "terseLabel": "Proceeds from Issuance of Secured Debt", "documentation": "The cash inflow from amounts received from issuance of long-term debt that is wholly or partially secured by collateral. Excludes proceeds from tax exempt secured debt." } } }, "auth_ref": [ "r38" ] }, "us-gaap_AwardTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AwardTypeAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "http://investors.permapipe.com/20231031/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": [ "r329", "r330", "r331", "r332", "r333", "r334", "r335", "r336", "r337", "r338", "r339", "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited" ], "lang": { "en-us": { "role": { "label": "Other comprehensive income (loss)" } } }, "auth_ref": [] }, "us-gaap_CommonStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesIssued", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r91" ] }, "us-gaap_DebtInstrumentInterestRateEffectivePercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentInterestRateEffectivePercentage", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r27", "r77", "r300", "r419" ] }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r16", "r90", "r91", "r113", "r337" ] }, "us-gaap_DebtInstrumentInterestRateStatedPercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentInterestRateStatedPercentage", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r27", "r276" ] }, "us-gaap_CommonStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockValue", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Common stock, $.01 par value, authorized 50,000 shares; 7,951 issued and outstanding at October 31, 2023 and 8,004 at January 31, 2023", "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": [ "r91", "r476", "r623" ] }, "country_AE": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/country/2023", "localname": "AE", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "UNITED ARAB EMIRATES" } } }, "auth_ref": [] }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-16-contingencies-" ], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies Disclosure [Text Block]", "documentation": "The entire disclosure for commitments and contingencies." } } }, "auth_ref": [ "r111", "r259", "r260", "r583", "r689" ] }, "us-gaap_DebtInstrumentMaturityDate": { "xbrltype": "dateItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentMaturityDate", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r134", "r606", "r702" ] }, "us-gaap_CommonStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesAuthorized", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r91", "r529" ] }, "us-gaap_TreasuryStockSharesAcquired": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockSharesAcquired", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-repurchases-of-common-stock-details" ], "lang": { "en-us": { "role": { "label": "Total number of shares purchased (in shares)", "documentation": "Number of shares that have been repurchased during the period and are being held in treasury." } } }, "auth_ref": [ "r16", "r91", "r113" ] }, "us-gaap_CommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesOutstanding", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r16", "r91", "r529", "r548", "r725", "r726" ] }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Adjustments to reconcile net income to net cash provided by (used in) operating activities" } } }, "auth_ref": [] }, "us-gaap_UnbilledReceivablesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnbilledReceivablesCurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/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_RetainedEarningsAccumulatedDeficit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetainedEarningsAccumulatedDeficit", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Retained earnings", "documentation": "Amount of accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r93", "r113", "r478", "r502", "r507", "r513", "r530", "r623" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Financing activities" } } }, "auth_ref": [] }, "us-gaap_DebtInstrumentNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentNameDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [ "r28", "r178", "r275", "r276", "r277", "r278", "r279", "r281", "r286", "r287", "r288", "r289", "r291", "r292", "r293", "r294", "r295", "r296", "r419", "r606", "r607", "r608", "r609", "r610", "r665" ] }, "us-gaap_BusinessAcquisitionAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessAcquisitionAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20231031/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": [ "r68", "r69", "r384", "r616", "r617" ] }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessAcquisitionAcquireeDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20231031/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": [ "r384", "r616", "r617" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r34", "r35", "r97", "r150", "r477", "r503", "r507" ] }, "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionsByRelatedPartyAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Related Party, Type [Axis]", "documentation": "Information by type of related party. Related parties include, but not limited to, affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests." } } }, "auth_ref": [ "r321", "r442", "r443", "r453", "r454", "r455", "r456", "r457", "r458", "r459", "r460", "r461", "r462", "r463", "r464", "r524", "r525", "r526", "r527", "r528", "r547", "r549", "r570", "r709" ] }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/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": [ "r51", "r145", "r480" ] }, "us-gaap_IncomeStatementAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementAbstract", "lang": { "en-us": { "role": { "label": "Income Statement [Abstract]" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInFinancingActivities", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r169" ] }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInInvestingActivities", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r169" ] }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Operating activities" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInOperatingActivities", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "totalLabel": "Net cash provided by (used in) operating activities", "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities." } } }, "auth_ref": [ "r106", "r107", "r108" ] }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Investing activities" } } }, "auth_ref": [] }, "us-gaap_DebtInstrumentTerm": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentTerm", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_OperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiability", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "http://investors.permapipe.com/20231031/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": [ "r424" ] }, "us-gaap_ProceedsFromInsuranceSettlementInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromInsuranceSettlementInvestingActivities", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r7", "r37" ] }, "us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent", "negatedLabel": "Minimum pension liability adjustment, net of tax", "documentation": "Amount, after tax and reclassification adjustment, of (increase) decrease in accumulated other comprehensive income for defined benefit plan, attributable to parent." } } }, "auth_ref": [ "r4", "r14", "r97", "r116" ] }, "ppih_SupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "SupplementalBalanceSheetInformationRelatedToLeasesTableTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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_DebtDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r112", "r173", "r274", "r280", "r281", "r282", "r283", "r284", "r285", "r290", "r297", "r298", "r299" ] }, "ppih_TransferredAtPointInTimeUsingInputMethodMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "TransferredAtPointInTimeUsingInputMethodMember", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_Goodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Goodwill", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsNoncurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/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 an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized." } } }, "auth_ref": [ "r146", "r257", "r465", "r605", "r623", "r676", "r683" ] }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r438" ] }, "us-gaap_DeferredIncomeTaxesAndTaxCredits": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredIncomeTaxesAndTaxCredits", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 15.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Deferred tax expense", "documentation": "Amount of deferred income tax expense (benefit) and income tax credits." } } }, "auth_ref": [ "r108" ] }, "ppih_TransferredAtPointInTimeUsingOutputMethodMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "TransferredAtPointInTimeUsingOutputMethodMember", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "ppih_SupplementalCashFlowInformationRelatedLeasesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "SupplementalCashFlowInformationRelatedLeasesTableTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "ppih_StockRepurchaseProgramAuthorizedRepurchaseAmountUsed": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "StockRepurchaseProgramAuthorizedRepurchaseAmountUsed", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "ppih_SpecialtyPipingSystemsAndCoatingMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "SpecialtyPipingSystemsAndCoatingMember", "presentation": [ "http://investors.permapipe.com/20231031/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_SharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharesOutstanding", "presentation": [ "http://investors.permapipe.com/20231031/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_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-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": [ "r671" ] }, "ppih_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedAndIssuedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedAndIssuedInPeriod", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_GrossProfit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GrossProfit", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r100", "r174", "r220", "r227", "r232", "r235", "r245", "r265", "r266", "r267", "r268", "r269", "r270", "r271", "r272", "r273", "r408", "r602", "r693" ] }, "ppih_SecuredOvernightFinancingRateSOFRMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "SecuredOvernightFinancingRateSOFRMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_OperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 8.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/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": [ "r424" ] }, "ppih_LineOfCreditFacilityCovenantTermsEBITDARatioMinimumUndrawnAvailabilityForFiveConsecutiveDays": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "LineOfCreditFacilityCovenantTermsEBITDARatioMinimumUndrawnAvailabilityForFiveConsecutiveDays", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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_IncreaseDecreaseInOutstandingChecksFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOutstandingChecksFinancingActivities", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "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": [ "r10", "r42" ] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CityAreaCode", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "ppih_LineOfCreditFacilityDefaultAdditionalInterestRate": { "xbrltype": "percentItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "LineOfCreditFacilityDefaultAdditionalInterestRate", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_UnbilledRevenuesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnbilledRevenuesMember", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "ppih_LineOfCreditFacilityFixedChargeCoverageRatioRequired": { "xbrltype": "pureItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "LineOfCreditFacilityFixedChargeCoverageRatioRequired", "presentation": [ "http://investors.permapipe.com/20231031/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/20231031", "localname": "LineOfCreditFacilityGuaranteedAmount", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_LongtermDebtTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LongtermDebtTypeDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details" ], "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": [ "r28", "r52" ] }, "ppih_LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "verboseLabel": "Current maturities of long-term debt", "label": "ppih_LongtermDebtCurrentMaturitiesExcludingNorthAmericanRevolvingLine", "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": [] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "LocalPhoneNumber", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "ppih_MortgageNoteSecuredByTennesseeManufacturingFacilityMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "MortgageNoteSecuredByTennesseeManufacturingFacilityMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_AssetImpairmentChargesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetImpairmentChargesTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "ppih_NorthAmericanLoanPartiesMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "NorthAmericanLoanPartiesMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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/20231031", "localname": "NoteToFinancialStatementDetailsTextual", "lang": { "en-us": { "role": { "label": "Note To Financial Statement Details Textual" } } }, "auth_ref": [] }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/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": [ "r424" ] }, "us-gaap_AccountsReceivableNetNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableNetNoncurrent", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_AccountsReceivableNetNoncurrent", "terseLabel": "Accounts Receivable, after Allowance for Credit Loss, Noncurrent", "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 noncurrent." } } }, "auth_ref": [ "r242", "r466" ] }, "ppih_NumberOfMajorCustomers": { "xbrltype": "integerItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "NumberOfMajorCustomers", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "srt_StatementGeographicalAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "StatementGeographicalAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]" } } }, "auth_ref": [ "r239", "r240", "r518", "r519", "r520", "r572", "r574", "r577", "r579", "r580", "r584", "r585", "r586", "r587", "r588", "r589", "r590", "r591", "r592", "r597", "r613", "r628", "r699", "r721" ] }, "srt_StatementScenarioAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "StatementScenarioAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Scenario [Axis]" } } }, "auth_ref": [ "r198", "r324", "r643", "r644", "r670" ] }, "us-gaap_StockRepurchaseProgramRemainingNumberOfSharesAuthorizedToBeRepurchased": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockRepurchaseProgramRemainingNumberOfSharesAuthorizedToBeRepurchased", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-repurchases-of-common-stock-details" ], "lang": { "en-us": { "role": { "label": "Approximate dollar value of shares that may yet be purchased under the plans or programs (in shares)", "documentation": "The remaining number of shares authorized to be repurchased by an entity's Board of Directors under a stock repurchase plan." } } }, "auth_ref": [] }, "ppih_NotesToFinancialStatementsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "NotesToFinancialStatementsAbstract", "lang": { "en-us": { "role": { "label": "Notes To Financial Statements [Abstract]" } } }, "auth_ref": [] }, "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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 a entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses." } } }, "auth_ref": [ "r673" ] }, "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentBasisSpreadOnVariableRate1", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "srt_ScenarioUnspecifiedDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ScenarioUnspecifiedDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Scenario [Domain]" } } }, "auth_ref": [ "r198", "r324", "r643", "r670" ] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "Security12bTitle", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r637" ] }, "us-gaap_ForeignEarningsRepatriated": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ForeignEarningsRepatriated", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_ForeignEarningsRepatriated", "terseLabel": "Foreign Earnings Repatriated", "documentation": "Amount of foreign earnings repatriated from subsidiaries outside the country of domicile." } } }, "auth_ref": [] }, "ppih_OneCustomerMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "OneCustomerMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/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": [] }, "ppih_AdditionalSOFRAdjustmentBasedOnTermOfInterestPeriodMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "AdditionalSOFRAdjustmentBasedOnTermOfInterestPeriodMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_OtherNoncurrentAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNoncurrentAssetsMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/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_ProceedsFromLinesOfCredit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromLinesOfCredit", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r38", "r665" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r348" ] }, "ppih_StockIssuedDuringPeriodSharesRestrictedStockAwardForfeitedOrRetiredForTaxes": { "xbrltype": "sharesItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardForfeitedOrRetiredForTaxes", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "ppih_AssetsTransferredToAcquireNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "AssetsTransferredToAcquireNoncontrollingInterest", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "ppih_AssetsTransferredToAcquireNoncontrollingInterest", "terseLabel": "Assets Transferred To Acquire Noncontrolling Interest", "documentation": "Represents the amount of assets transferred to acquire noncontrolling interest." } } }, "auth_ref": [] }, "us-gaap_OtherCurrentLiabilitiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherCurrentLiabilitiesMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Other Current Liabilities [Member]", "documentation": "Primary financial statement caption encompassing other current liabilities." } } }, "auth_ref": [] }, "ppih_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedAndIssuedInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedAndIssuedInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "ppih_CanadianMortgageNoteMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "CanadianMortgageNoteMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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_ProceedsFromSaleOfPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Proceeds from sales of property and equipment", "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": [ "r104" ] }, "us-gaap_OtherNoncurrentLiabilitiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNoncurrentLiabilitiesMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Other Noncurrent Liabilities [Member]", "documentation": "Primary financial statement caption encompassing other noncurrent liabilities." } } }, "auth_ref": [] }, "ppih_PermaPipeCanadaLtdMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "PermaPipeCanadaLtdMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20231031/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": [] }, "ppih_PercentOfRevenueFromContractWithCustomerIncludingAssessedTax": { "xbrltype": "percentItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "PercentOfRevenueFromContractWithCustomerIncludingAssessedTax", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r19", "r20", "r63" ] }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccountsReceivable", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 5.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/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": [ "r8" ] }, "us-gaap_AccountsReceivableNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableNet", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r537", "r581", "r629", "r720" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsNonvestedNumberOfShares", "presentation": [ "http://investors.permapipe.com/20231031/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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares", "presentation": [ "http://investors.permapipe.com/20231031/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_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "ppih_SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresOrRetirementsForTaxesWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresOrRetirementsForTaxesWeightedAverageGrantDateFairValue", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_AccountsReceivableNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableNetCurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Trade accounts receivable, less allowance for credit losses of $574 at October 31, 2023 and $612 at January 31, 2023", "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": [ "r242", "r243" ] }, "ppih_PubliclyAnnouncedShareRepurchaseProgramMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "PubliclyAnnouncedShareRepurchaseProgramMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-repurchases-of-common-stock-details" ], "lang": { "en-us": { "role": { "label": "Publicly Announced Share Repurchase Program [Member]", "documentation": "Represents publicly announced share repurchase program." } } }, "auth_ref": [] }, "ppih_CurrentMaturitiesOfLongtermDebtMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "CurrentMaturitiesOfLongtermDebtMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "Current Maturities of Long-term Debt [Member]", "documentation": "Primary financial statement caption encompassing current maturities of long-term debt." } } }, "auth_ref": [] }, "ppih_ProceedsFromPaymentsForStockOptionsExercisedAndTaxesRelatedToRestrictedSharesVested": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "ProceedsFromPaymentsForStockOptionsExercisedAndTaxesRelatedToRestrictedSharesVested", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "ppih_CostsIncurredOnUncompletedContracts": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "CostsIncurredOnUncompletedContracts", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/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_InterestIncomeExpenseNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InterestIncomeExpenseNet", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_InterestIncomeExpenseNet", "negatedLabel": "Interest expense", "documentation": "The net amount of operating interest income (expense)." } } }, "auth_ref": [ "r127" ] }, "us-gaap_LinesOfCreditCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LinesOfCreditCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/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": [ "r87", "r120" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "TradingSymbol", "presentation": [ "http://investors.permapipe.com/20231031/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_SubsequentEventsPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubsequentEventsPolicyPolicyTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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_CostsIncurredForUncompletedContractsAnticipatedCollectionPeriod": { "xbrltype": "durationItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "CostsIncurredForUncompletedContractsAnticipatedCollectionPeriod", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_NetIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetIncomeLoss", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-earnings-per-share-details" ], "lang": { "en-us": { "role": { "label": "Net income (loss)", "totalLabel": "Net income 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": [ "r99", "r108", "r126", "r140", "r155", "r157", "r161", "r174", "r184", "r188", "r189", "r191", "r192", "r196", "r197", "r207", "r220", "r227", "r232", "r235", "r245", "r265", "r266", "r267", "r268", "r269", "r270", "r271", "r272", "r273", "r403", "r408", "r485", "r550", "r565", "r566", "r602", "r634", "r693" ] }, "ppih_CostsInExcessOfBillingsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "CostsInExcessOfBillingsNet", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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", "documentation": "Costs in excess of billings, net related to percentage of completion" } } }, "auth_ref": [] }, "us-gaap_AssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsNoncurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r174", "r245", "r265", "r266", "r267", "r268", "r269", "r270", "r271", "r272", "r273", "r386", "r390", "r408", "r693", "r694", "r710" ] }, "ppih_RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "RenewalOfRevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [] }, "ppih_CommonStockIssuedUnderStockPlansNetOfSharesUsedForTaxWithholding": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "CommonStockIssuedUnderStockPlansNetOfSharesUsedForTaxWithholding", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Common stock issued under stock plans, net of shares used for tax withholding", "documentation": "The amount of common stock issued under stock plans, net of shares used for tax withholding." } } }, "auth_ref": [] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "SecurityExchangeName", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r639" ] }, "ppih_RevolvingCreditLinesUsedByEgyptSubsidiaries2Member": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "RevolvingCreditLinesUsedByEgyptSubsidiaries2Member", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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/20231031", "localname": "RevolvingCreditLinesUsedByEgyptSubsidiariesMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [] }, "srt_SegmentGeographicalDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "SegmentGeographicalDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]" } } }, "auth_ref": [ "r239", "r240", "r518", "r519", "r520", "r572", "r574", "r577", "r579", "r584", "r585", "r586", "r587", "r588", "r589", "r590", "r591", "r592", "r597", "r613", "r628", "r699", "r721" ] }, "ppih_BillingsToDate": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "BillingsToDate", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "ppih_RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "RevolvingCreditLinesUsedByMiddleEasternSubsidiaries1Member", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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/20231031", "localname": "RevolvingCreditLinesUsedByMiddleEasternSubsidiaries2Member", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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/20231031", "localname": "RevolvingCreditLinesUsedBySaudiArabianSubsidiaryMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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/20231031", "localname": "RevolvingLinesNorthAmericaMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [] }, "ppih_CentralBankOfEqyptCbeRateMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "CentralBankOfEqyptCbeRateMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [] }, "ppih_SIBORMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "SIBORMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "SIBOR [Member]", "documentation": "Represents Saudi Inter Bank Offered Rate." } } }, "auth_ref": [] }, "us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Finance leases liabilities", "documentation": "Amount of increase in right-of-use asset obtained in exchange for finance lease liability." } } }, "auth_ref": [ "r435", "r622" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "http://investors.permapipe.com/20231031/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": [ "r329", "r330", "r331", "r332", "r333", "r334", "r335", "r336", "r337", "r338", "r339", "r340", "r341", "r342", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354" ] }, "dei_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentType", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-document-and-entity-information" ], "lang": { "en-us": { "role": { "label": "Document Type", "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'." } } }, "auth_ref": [] }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsForRepurchaseOfCommonStock", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_PaymentsForRepurchaseOfCommonStock", "negatedLabel": "Repurchase of common stock", "documentation": "The cash outflow to reacquire common stock during the period." } } }, "auth_ref": [ "r39" ] }, "dei_EntityCentralIndexKey": { "xbrltype": "centralIndexKeyItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCentralIndexKey", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r638" ] }, "us-gaap_ScheduleOfTreasuryStockByClassTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfTreasuryStockByClassTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-tables" ], "lang": { "en-us": { "role": { "label": "Class of Treasury Stock [Table Text Block]", "documentation": "Tabular disclosure of 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": [ "r58", "r59", "r60", "r61" ] }, "us-gaap_OperatingIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingIncomeLoss", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r220", "r227", "r232", "r235", "r602" ] }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeRelatedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r25" ] }, "dei_DocumentQuarterlyReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentQuarterlyReport", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r640" ] }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DisaggregationOfRevenueTableTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r699" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r348" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityFileNumber", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_RelatedPartyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Related Party, Type [Domain]", "documentation": "Related parties include affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests." } } }, "auth_ref": [ "r321", "r442", "r443", "r524", "r525", "r526", "r527", "r528", "r547", "r549", "r570" ] }, "us-gaap_InventoryNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InventoryNet", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r152", "r599", "r623" ] }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r435", "r622" ] }, "dei_DocumentTransitionReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentTransitionReport", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r641" ] }, "us-gaap_OtherAssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherAssetsNoncurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsNoncurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r147" ] }, "us-gaap_TreasuryStockAcquiredAverageCostPerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockAcquiredAverageCostPerShare", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-repurchases-of-common-stock-details" ], "lang": { "en-us": { "role": { "label": "Average price paid per share (in dollars per share)", "documentation": "Total cost of shares repurchased divided by the total number of shares repurchased." } } }, "auth_ref": [ "r58" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r638" ] }, "us-gaap_TreasuryStockSharesRetired": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockSharesRetired", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_TreasuryStockSharesRetired", "terseLabel": "Treasury Stock, Shares, Retired (in shares)", "negatedLabel": "Treasury stock retired (in shares)", "documentation": "Number of shares of common and preferred stock retired from treasury during the period." } } }, "auth_ref": [ "r16", "r91", "r113" ] }, "us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccountsAndOtherReceivables", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 14.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r8" ] }, "us-gaap_AllocatedShareBasedCompensationExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AllocatedShareBasedCompensationExpense", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r355", "r363" ] }, "us-gaap_RepaymentsOfSecuredDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RepaymentsOfSecuredDebt", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r40" ] }, "us-gaap_RepaymentsOfOtherDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RepaymentsOfOtherDebt", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 6.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r40" ] }, "srt_WeightedAverageMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "WeightedAverageMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Weighted Average [Member]" } } }, "auth_ref": [ "r594", "r595", "r712", "r714", "r717" ] }, "dei_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://investors.permapipe.com/20231031/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/2023", "localname": "EntityInteractiveDataCurrent", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r642" ] }, "dei_CurrentFiscalYearEndDate": { "xbrltype": "gMonthDayItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CurrentFiscalYearEndDate", "presentation": [ "http://investors.permapipe.com/20231031/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_AccountsNotesLoansAndFinancingReceivablesByBillingStatusTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsNotesLoansAndFinancingReceivablesByBillingStatusTypeAxis", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r32" ] }, "us-gaap_ShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensation", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 9.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r8" ] }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r83", "r115", "r509", "r510" ] }, "us-gaap_SubleaseIncome": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubleaseIncome", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-note-10-leases-lease-costs-details": { "parentTag": "us-gaap_LeaseCost", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r433", "r622" ] }, "us-gaap_ConcentrationRiskTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskTypeDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/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": [ "r48", "r50", "r75", "r76", "r241", "r582" ] }, "us-gaap_OperatingExpenses": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingExpenses", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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_TreasuryStockCommonMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockCommonMember", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r58" ] }, "us-gaap_TimingOfTransferOfGoodOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TimingOfTransferOfGoodOrServiceAxis", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r615", "r699" ] }, "us-gaap_ReceivablesBillingStatusDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ReceivablesBillingStatusDomain", "presentation": [ "http://investors.permapipe.com/20231031/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_TimingOfTransferOfGoodOrServiceDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TimingOfTransferOfGoodOrServiceDomain", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r615", "r699" ] }, "us-gaap_TreasuryStockCommonShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockCommonShares", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r58" ] }, "us-gaap_RedeemableNoncontrollingInterestEquityCarryingAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RedeemableNoncontrollingInterestEquityCarryingAmount", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/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": [ "r53", "r54", "r55", "r56" ] }, "us-gaap_LesseeFinanceLeaseDiscountRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeFinanceLeaseDiscountRate", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r706" ] }, "us-gaap_TreasuryStockCommonValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockCommonValue", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_TreasuryStockCommonValue", "negatedLabel": "Treasury stock, 109 shares at October 31, 2023 and 3 shares at January 31, 2023", "documentation": "Amount allocated to previously issued common shares repurchased by the issuing entity and held in treasury." } } }, "auth_ref": [ "r33", "r58", "r61" ] }, "dei_EntitySmallBusiness": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntitySmallBusiness", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r638" ] }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r437", "r622" ] }, "us-gaap_OperatingExpensesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingExpensesAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Operating expenses" } } }, "auth_ref": [] }, "us-gaap_LeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseCost", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-note-10-leases-lease-costs-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r429", "r622" ] }, "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r72", "r116", "r156", "r158", "r162", "r467", "r486" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r438" ] }, "us-gaap_ShortTermLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShortTermLeaseCost", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-note-10-leases-lease-costs-details": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r432", "r622" ] }, "us-gaap_OperatingLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseCost", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-note-10-leases-lease-costs-details": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r431", "r622" ] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r638" ] }, "us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseWeightedAverageDiscountRatePercent", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r437", "r622" ] }, "us-gaap_ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": -1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r6", "r70", "r72", "r156", "r158", "r163", "r468", "r487" ] }, "us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOtherOperatingCapitalNet", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 12.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r8" ] }, "srt_ConsolidatedEntitiesDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ConsolidatedEntitiesDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Consolidated Entities [Domain]" } } }, "auth_ref": [ "r178", "r386", "r387", "r390", "r391", "r446", "r593", "r692", "r695", "r696" ] }, "us-gaap_ContractWithCustomerAssetNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerAssetNet", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r302", "r304", "r315" ] }, "us-gaap_Assets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Assets", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_Assets", "totalLabel": "Total assets", "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events." } } }, "auth_ref": [ "r119", "r148", "r174", "r220", "r228", "r233", "r245", "r265", "r266", "r267", "r268", "r269", "r270", "r271", "r272", "r273", "r386", "r390", "r408", "r473", "r542", "r623", "r636", "r693", "r694", "r710" ] }, "srt_OwnershipAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "OwnershipAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Ownership [Axis]" } } }, "auth_ref": [] }, "srt_ProductOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ProductOrServiceAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Product and Service [Axis]" } } }, "auth_ref": [ "r237", "r449", "r491", "r492", "r493", "r494", "r495", "r496", "r596", "r612", "r624", "r653", "r690", "r691", "r699", "r721" ] }, "srt_OwnershipDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "OwnershipDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Ownership [Domain]" } } }, "auth_ref": [] }, "us-gaap_CommonStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockParOrStatedValuePerShare", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r91" ] }, "us-gaap_StockRepurchaseProgramAuthorizedAmount1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockRepurchaseProgramAuthorizedAmount1", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockRepurchaseProgramAuthorizedAmount1", "terseLabel": "Stock Repurchase Program, Authorized Amount", "documentation": "Amount of stock repurchase plan authorized." } } }, "auth_ref": [] }, "us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DisposalGroupsIncludingDiscontinuedOperationsNameDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Disposal Group Name [Domain]", "documentation": "Name of disposal group." } } }, "auth_ref": [ "r616", "r617" ] }, "srt_ProductsAndServicesDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ProductsAndServicesDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details" ], "lang": { "en-us": { "role": { "label": "Product and Service [Domain]" } } }, "auth_ref": [ "r237", "r449", "r491", "r492", "r493", "r494", "r495", "r496", "r596", "r612", "r624", "r653", "r690", "r691", "r699", "r721" ] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentPeriodEndDate", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_BalanceSheetLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BalanceSheetLocationDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Balance Sheet Location [Domain]", "documentation": "Location in the balance sheet (statement of financial position)." } } }, "auth_ref": [ "r73", "r74" ] }, "us-gaap_DeferredFinanceCostsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredFinanceCostsNet", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r78", "r698" ] }, "us-gaap_ScheduleOfAssumptionsForLongDurationContractsByProductAndGuaranteeTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfAssumptionsForLongDurationContractsByProductAndGuaranteeTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r79", "r80", "r81", "r82", "r128" ] }, "us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [ "r616", "r617" ] }, "srt_RestatementAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RestatementAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period [Axis]" } } }, "auth_ref": [ "r138", "r179", "r180", "r181", "r184", "r185", "r188", "r189", "r190", "r191", "r193", "r194", "r195", "r196", "r197", "r198", "r214", "r249", "r250", "r374", "r399", "r401", "r402", "r403", "r420", "r439", "r440", "r498", "r499", "r500", "r501", "r502", "r503", "r504", "r505", "r506", "r507", "r511" ] }, "us-gaap_SellingExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SellingExpense", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r102" ] }, "us-gaap_NoncashOrPartNoncashAcquisitionFixedAssetsAcquired1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NoncashOrPartNoncashAcquisitionFixedAssetsAcquired1", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Fixed assets acquired from non affiliates - non-cash", "documentation": "The amount of fixed assets that an Entity acquires in a noncash (or part noncash) acquisition. Noncash is defined as information about all investing and financing activities of an enterprise during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period." } } }, "auth_ref": [ "r44", "r45", "r46" ] }, "srt_RestatementDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RestatementDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period [Domain]" } } }, "auth_ref": [ "r138", "r179", "r180", "r181", "r184", "r185", "r188", "r189", "r190", "r191", "r193", "r194", "r195", "r196", "r197", "r198", "r214", "r249", "r250", "r374", "r399", "r401", "r402", "r403", "r420", "r439", "r440", "r498", "r499", "r500", "r501", "r502", "r503", "r504", "r505", "r506", "r507", "r511" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r336" ] }, "us-gaap_AllowanceForDoubtfulAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AllowanceForDoubtfulAccountsReceivable", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r151", "r244", "r252", "r253", "r255", "r720" ] }, "us-gaap_ContractWithCustomerAssetNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerAssetNetCurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r302", "r304", "r315" ] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressAddressLine1", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r136", "r305", "r306", "r307", "r308", "r309", "r310", "r311", "r312", "r316" ] }, "us-gaap_ScheduleOfRestrictedCashAndCashEquivalentsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfRestrictedCashAndCashEquivalentsTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r21", "r118", "r719" ] }, "us-gaap_TreasuryStockValueAcquiredCostMethod": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockValueAcquiredCostMethod", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_TreasuryStockValueAcquiredCostMethod", "negatedLabel": "Repurchase of common stock", "documentation": "Equity impact of the cost of common and preferred stock that were repurchased during the period. Recorded using the cost method." } } }, "auth_ref": [ "r16", "r58", "r113" ] }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "calculation": { "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-earnings-per-share-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-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": [ "r202", "r210" ] }, "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment", "calculation": { "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-earnings-per-share-details": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-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": [ "r671" ] }, "us-gaap_AssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsCurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_AssetsCurrent", "totalLabel": "Total current 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 within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events." } } }, "auth_ref": [ "r141", "r153", "r174", "r245", "r265", "r266", "r267", "r268", "r269", "r270", "r271", "r272", "r273", "r386", "r390", "r408", "r623", "r693", "r694", "r710" ] }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r65" ] }, "us-gaap_AccountingPoliciesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountingPoliciesAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-significant-accounting-policies-policies" ], "lang": { "en-us": { "role": { "label": "Accounting Policies [Abstract]" } } }, "auth_ref": [] }, "us-gaap_BaseRateMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BaseRateMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Base Rate [Member]", "documentation": "Minimum rate investor will accept." } } }, "auth_ref": [] }, "us-gaap_RestrictedCashAndCashEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RestrictedCashAndCashEquivalents", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/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": [ "r41", "r118", "r143", "r172", "r475" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "calculation": { "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-earnings-per-share-details": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-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": [ "r201", "r210" ] }, "dei_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityRegistrantName", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r638" ] }, "dei_EntityAddressCityOrTown": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressCityOrTown", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentByTypeAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [ "r11" ] }, "us-gaap_AssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsCurrentAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Current assets" } } }, "auth_ref": [] }, "us-gaap_VariableRateDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "VariableRateDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_ProceedsFromIssuanceOfDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromIssuanceOfDebt", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r661" ] }, "us-gaap_VariableRateAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "VariableRateAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Variable Rate [Axis]", "documentation": "Information by type of variable rate." } } }, "auth_ref": [] }, "dei_LegalEntityAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "LegalEntityAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20231031/role/statement-document-and-entity-information", "http://investors.permapipe.com/20231031/role/statement-note-1-basis-of-presentation", "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-lease-costs-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-tables", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash-tables", "http://investors.permapipe.com/20231031/role/statement-note-12-fair-value-", "http://investors.permapipe.com/20231031/role/statement-note-13-recent-accounting-pronouncements-", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-repurchases-of-common-stock-details", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-tables", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-16-contingencies-", "http://investors.permapipe.com/20231031/role/statement-note-2-business-segment-reporting", "http://investors.permapipe.com/20231031/role/statement-note-2-business-segment-reporting-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-tables", "http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes", "http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-goodwill-details", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-tables", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-tables", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-earnings-per-share-details", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-tables", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual", "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_ScheduleOfGoodwillTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfGoodwillTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r605", "r675", "r676", "r677", "r678", "r679", "r680", "r681", "r682", "r683", "r684", "r685" ] }, "dei_EntityAddressStateOrProvince": { "xbrltype": "stateOrProvinceItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://investors.permapipe.com/20231031/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_EntityDomain": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20231031/role/statement-document-and-entity-information", "http://investors.permapipe.com/20231031/role/statement-note-1-basis-of-presentation", "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-lease-costs-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-tables", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash-tables", "http://investors.permapipe.com/20231031/role/statement-note-12-fair-value-", "http://investors.permapipe.com/20231031/role/statement-note-13-recent-accounting-pronouncements-", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-repurchases-of-common-stock-details", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-tables", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-16-contingencies-", "http://investors.permapipe.com/20231031/role/statement-note-2-business-segment-reporting", "http://investors.permapipe.com/20231031/role/statement-note-2-business-segment-reporting-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-tables", "http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes", "http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-goodwill-details", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-tables", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-tables", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-earnings-per-share-details", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-tables", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual", "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_LongtermDebtTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LongtermDebtTypeAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Long-Term Debt, Type [Axis]", "documentation": "Information by type of long-term debt." } } }, "auth_ref": [ "r28" ] }, "us-gaap_SegmentReportingDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SegmentReportingDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r216", "r217", "r218", "r219", "r220", "r225", "r229", "r233", "r234", "r235", "r236", "r237", "r238", "r241" ] }, "us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlements1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DefinedBenefitPlanRecognizedNetGainLossDueToSettlements1", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 8.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_DefinedBenefitPlanRecognizedNetGainLossDueToSettlements1", "negatedLabel": "Non-cash pension termination expense", "documentation": "Amount of gain (loss) recognized in net periodic benefit (cost) credit from irrevocable action relieving primary responsibility for benefit obligation and eliminating risk related to obligation and assets used to effect settlement." } } }, "auth_ref": [ "r317", "r319", "r322" ] }, "dei_EntityAddressPostalZipCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_TreasuryStockTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r114" ] }, "us-gaap_LesseeOperatingLeaseTermOfContract": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseTermOfContract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseTermOfContract", "terseLabel": "Lessee, Operating Lease, Term of Contract (Year)", "documentation": "Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r705" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/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": [ "r438" ] }, "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-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": [ "r204", "r205", "r206", "r210", "r327" ] }, "us-gaap_IncreaseDecreaseInEmployeeRelatedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInEmployeeRelatedLiabilities", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r8" ] }, "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerIncludingAssessedTax", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_GrossProfit", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20231031/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": [ "r221", "r222", "r226", "r230", "r231", "r237", "r239", "r241", "r313", "r314", "r449" ] }, "us-gaap_OtherLiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherLiabilitiesNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r29" ] }, "us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DisposalGroupIncludingDiscontinuedOperationConsideration", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "For the year ending January 31, 2025, 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": [ "r438" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "For the year ending January 31, 2029, 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": [ "r438" ] }, "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeOutstandingOptionsWeightedAverageExercisePriceBeginningBalance1", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r64" ] }, "us-gaap_LongTermDebtNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LongTermDebtNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Long-term debt, less 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": [ "r149" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "For the year ending January 31, 2028, 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": [ "r438" ] }, "us-gaap_CommonStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockMember", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r626", "r627", "r628", "r630", "r631", "r632", "r633", "r667", "r668", "r701", "r723", "r725" ] }, "us-gaap_TransferredAtPointInTimeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TransferredAtPointInTimeMember", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r615" ] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_ProfitLoss", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "totalLabel": "Income before income taxes", "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest." } } }, "auth_ref": [ "r0", "r98", "r125", "r220", "r227", "r232", "r235", "r471", "r482", "r602" ] }, "us-gaap_EarningsPerShareDiluted": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareDiluted", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-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": [ "r165", "r188", "r189", "r191", "r192", "r194", "r203", "r208", "r209", "r210", "r214", "r402", "r403", "r470", "r489", "r601" ] }, "us-gaap_PropertyPlantAndEquipmentGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentGross", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/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": [ "r110", "r144", "r481" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "For the year ending January 31, 2027, 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": [ "r438" ] }, "us-gaap_OtherNonoperatingIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNonoperatingIncomeExpense", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Other expense", "documentation": "Amount of income (expense) related to nonoperating activities, classified as other." } } }, "auth_ref": [ "r103" ] }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r105" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "For the year ending January 31, 2026, 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": [ "r438" ] }, "us-gaap_FinancingReceivablesPeriodPastDueAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinancingReceivablesPeriodPastDueAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/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": [ "r130", "r256", "r604" ] }, "us-gaap_StockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquity", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/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": [ "r91", "r94", "r95", "r109", "r531", "r548", "r568", "r569", "r623", "r636", "r666", "r674", "r703", "r725" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "verboseLabel": "For the three 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": [ "r708" ] }, "us-gaap_FinancingReceivablesPeriodPastDueDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinancingReceivablesPeriodPastDueDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/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": [ "r130", "r256", "r604" ] }, "us-gaap_PropertyPlantAndEquipmentNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentNet", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsNoncurrent", "weight": 1.0, "order": 0.0 }, "http://investors.permapipe.com/20231031/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/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Property, plant and equipment, net of accumulated depreciation", "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": [ "r11", "r472", "r481", "r623" ] }, "us-gaap_LettersOfCreditOutstandingAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LettersOfCreditOutstandingAmount", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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_DebtAndCapitalLeaseObligations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtAndCapitalLeaseObligations", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r124" ] }, "us-gaap_OperatingLeaseExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseExpense", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r704" ] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PrepaidExpenseAndOtherAssetsCurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r657" ] }, "us-gaap_DeferredIncomeTaxAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredIncomeTaxAssetsNet", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsNoncurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r366", "r367" ] }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskBenchmarkDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/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": [ "r48", "r50", "r75", "r76", "r241", "r582" ] }, "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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_ConcentrationRiskByBenchmarkAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskByBenchmarkAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/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": [ "r48", "r50", "r75", "r76", "r241", "r508", "r582" ] }, "us-gaap_ProvisionForDoubtfulAccounts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProvisionForDoubtfulAccounts", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 11.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r166", "r254" ] }, "us-gaap_LongTermLoansPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LongTermLoansPayable", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Related party loan", "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": [ "r28" ] }, "us-gaap_TreasuryStockRetiredCostMethodAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockRetiredCostMethodAmount", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_TreasuryStockRetiredCostMethodAmount", "negatedLabel": "Retirement of treasury stock", "documentation": "Amount of decrease of par value, additional paid in capital (APIC) and retained earnings of common and preferred stock retired from treasury when treasury stock is accounted for under the cost method." } } }, "auth_ref": [ "r16", "r57", "r91" ] }, "us-gaap_IncreaseDecreaseInInventories": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInInventories", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r8" ] }, "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "http://investors.permapipe.com/20231031/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": [ "r3" ] }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentTypeDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [ "r110" ] }, "us-gaap_FairValueDisclosuresTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueDisclosuresTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r407" ] }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r325", "r328", "r356", "r357", "r359", "r619" ] }, "us-gaap_RepaymentsOfLinesOfCredit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RepaymentsOfLinesOfCredit", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r40", "r665" ] }, "us-gaap_FinancingReceivablesEqualToGreaterThan90DaysPastDueMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinancingReceivablesEqualToGreaterThan90DaysPastDueMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/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": [ "r604" ] }, "us-gaap_GainLossOnDispositionOfAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GainLossOnDispositionOfAssets", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 10.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_GainLossOnDispositionOfAssets", "negatedLabel": "(Loss) gain 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": [ "r663", "r686", "r687" ] }, "us-gaap_FinanceLeaseRightOfUseAssetAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseRightOfUseAssetAmortization", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-note-10-leases-lease-costs-details": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r425", "r430", "r622" ] }, "srt_ConsolidatedEntitiesAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ConsolidatedEntitiesAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Consolidated Entities [Axis]" } } }, "auth_ref": [ "r178", "r386", "r387", "r390", "r391", "r446", "r593", "r692", "r695", "r696" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/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": [ "r41", "r106", "r172" ] }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r412" ] }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r337" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Weighted average common shares outstanding" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerLiability", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r302", "r303", "r315" ] }, "us-gaap_CashAndCashEquivalentsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashAndCashEquivalentsDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r143", "r475" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "totalLabel": "Net increase (decrease) 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": [ "r1", "r106" ] }, "dei_EntityCommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCommonStockSharesOutstanding", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r41", "r106", "r172" ] }, "us-gaap_ProfitLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProfitLoss", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest", "weight": 1.0, "order": 0.0 }, "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0, "order": 1.0 }, "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 13.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "verboseLabel": "Net income", "label": "Net income", "totalLabel": "Net income", "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest." } } }, "auth_ref": [ "r140", "r155", "r157", "r168", "r174", "r184", "r196", "r197", "r220", "r227", "r232", "r235", "r245", "r265", "r266", "r267", "r268", "r269", "r270", "r271", "r272", "r273", "r385", "r388", "r389", "r403", "r408", "r471", "r483", "r515", "r550", "r565", "r566", "r602", "r620", "r621", "r635", "r660", "r693" ] }, "srt_RangeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RangeAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]" } } }, "auth_ref": [ "r261", "r262", "r263", "r264", "r318", "r323", "r351", "r352", "r353", "r447", "r448", "r497", "r521", "r522", "r571", "r573", "r575", "r576", "r578", "r594", "r595", "r603", "r611", "r618", "r625", "r628", "r688", "r697", "r713", "r714", "r715", "r716", "r717" ] }, "us-gaap_CustomerConcentrationRiskMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CustomerConcentrationRiskMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/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": [ "r49", "r241" ] }, "us-gaap_EarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Text Block]", "documentation": "The entire disclosure for earnings per share." } } }, "auth_ref": [ "r200", "r211", "r212", "r213" ] }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredIncomeTaxLiabilitiesNet", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r366", "r367", "r474" ] }, "us-gaap_StatementOfFinancialPositionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfFinancialPositionAbstract", "lang": { "en-us": { "role": { "label": "Statement of Financial Position [Abstract]" } } }, "auth_ref": [] }, "srt_MaximumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MaximumMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Maximum [Member]" } } }, "auth_ref": [ "r261", "r262", "r263", "r264", "r323", "r448", "r497", "r521", "r522", "r571", "r573", "r575", "r576", "r578", "r594", "r595", "r603", "r611", "r618", "r625", "r697", "r712", "r713", "r714", "r715", "r716", "r717" ] }, "srt_RangeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RangeMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]" } } }, "auth_ref": [ "r261", "r262", "r263", "r264", "r318", "r323", "r351", "r352", "r353", "r447", "r448", "r497", "r521", "r522", "r571", "r573", "r575", "r576", "r578", "r594", "r595", "r603", "r611", "r618", "r625", "r628", "r688", "r697", "r713", "r714", "r715", "r716", "r717" ] }, "us-gaap_AccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r25" ] }, "us-gaap_LiabilitiesAndStockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesAndStockholdersEquity", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r96", "r123", "r479", "r623", "r666", "r674", "r703" ] }, "us-gaap_GeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GeneralAndAdministrativeExpense", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r102", "r552" ] }, "srt_MinimumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MinimumMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "label": "Minimum [Member]" } } }, "auth_ref": [ "r261", "r262", "r263", "r264", "r323", "r448", "r497", "r521", "r522", "r571", "r573", "r575", "r576", "r578", "r594", "r595", "r603", "r611", "r618", "r625", "r697", "r712", "r713", "r714", "r715", "r716", "r717" ] }, "us-gaap_AccountsReceivableMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/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": [ "r582" ] }, "us-gaap_AccruedIncomeTaxesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedIncomeTaxesCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r88", "r121" ] }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r8" ] }, "us-gaap_NetIncomeLossAttributableToNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetIncomeLossAttributableToNoncontrollingInterest", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20231031/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": [ "r71", "r117", "r155", "r157", "r196", "r197", "r484", "r660" ] }, "us-gaap_CreditFacilityAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CreditFacilityAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [] }, "srt_MajorCustomersAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MajorCustomersAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]" } } }, "auth_ref": [ "r241", "r614", "r699", "r721", "r722" ] }, "us-gaap_OperatingLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseRightOfUseAsset", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsNoncurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/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": [ "r423" ] }, "us-gaap_InterestPaidNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InterestPaidNet", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r167", "r170", "r171" ] }, "us-gaap_AccruedSalesCommissionCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedSalesCommissionCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r25", "r600" ] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r358" ] }, "us-gaap_OperatingLeasePayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeasePayments", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r428", "r434" ] }, "us-gaap_AccountsPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsPayableCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r23", "r623" ] }, "dei_DocumentInformationTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "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": [] }, "us-gaap_CostOfRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfRevenue", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_GrossProfit", "weight": -1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r101", "r174", "r245", "r265", "r266", "r267", "r268", "r269", "r270", "r271", "r272", "r273", "r408", "r693" ] }, "us-gaap_FinanceLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseRightOfUseAsset", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r423" ] }, "us-gaap_CreditFacilityDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CreditFacilityDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_FinanceLeasePrincipalPayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeasePrincipalPayments", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/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 of principal on finance obligation", "documentation": "Amount of cash outflow for principal payment on finance lease." } } }, "auth_ref": [ "r426", "r434" ] }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EffectiveIncomeTaxRateContinuingOperations", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r369" ] }, "us-gaap_BusinessCombinationStepAcquisitionEquityInterestInAcquireeIncludingSubsequentAcquisitionPercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationStepAcquisitionEquityInterestInAcquireeIncludingSubsequentAcquisitionPercentage", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerLiabilityCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r302", "r303", "r315" ] }, "us-gaap_EmployeeStockOptionMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeStockOptionMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_SalesRevenueNetMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SalesRevenueNetMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/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": [ "r241", "r649" ] }, "dei_DocumentInformationLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentInformationLineItems", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_LiabilitiesNoncurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesNoncurrentAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Long-term liabilities" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccountsPayable", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r8" ] }, "us-gaap_MinorityInterestOwnershipPercentageByNoncontrollingOwners": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "MinorityInterestOwnershipPercentageByNoncontrollingOwners", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "us-gaap_MinorityInterestOwnershipPercentageByNoncontrollingOwners", "terseLabel": "Subsidiary, Ownership Percentage, Noncontrolling Owner", "documentation": "The equity interest of noncontrolling shareholders, partners or other equity holders in consolidated entity." } } }, "auth_ref": [] }, "us-gaap_AssetsNoncurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsNoncurrentAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Long-term assets" } } }, "auth_ref": [] }, "us-gaap_UndistributedEarningsOfForeignSubsidiaries": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UndistributedEarningsOfForeignSubsidiaries", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r12", "r13", "r365", "r383" ] }, "us-gaap_AdditionalPaidInCapital": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdditionalPaidInCapital", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r92", "r623", "r724" ] }, "us-gaap_LiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_LiabilitiesNoncurrent", "totalLabel": "Total long-term liabilities", "documentation": "Amount of obligation due after one year or beyond the normal operating cycle, if longer." } } }, "auth_ref": [ "r22", "r84", "r85", "r86", "r89", "r174", "r245", "r265", "r266", "r267", "r268", "r269", "r270", "r271", "r272", "r273", "r387", "r390", "r391", "r408", "r693", "r710", "r711" ] }, "us-gaap_IncomeTaxesPaidNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxesPaidNet", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Cash income taxes paid", "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes." } } }, "auth_ref": [ "r43" ] }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Changes in operating assets and liabilities" } } }, "auth_ref": [] }, "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r131", "r132", "r135", "r139", "r182", "r183", "r186", "r187", "r198", "r199", "r247", "r248", "r375", "r376", "r377", "r397", "r400", "r404", "r405", "r406", "r409", "r410", "r411", "r421", "r422", "r441", "r450", "r451", "r452", "r502", "r503", "r504", "r505", "r507" ] }, "us-gaap_RelatedPartyMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/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": [ "r176", "r177", "r442", "r443", "r444", "r445", "r524", "r525", "r526", "r527", "r528", "r547", "r549", "r570" ] }, "us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityUndiscountedExcessAmount", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r438" ] }, "us-gaap_FinanceLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiability", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Total lease liabilities, finance leases", "totalLabel": "Total finance lease liabilities", "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease." } } }, "auth_ref": [ "r424", "r438" ] }, "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockCapitalSharesReservedForFutureIssuance", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r30" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r17", "r18" ] }, "us-gaap_LeaseContractualTermDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseContractualTermDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual" ], "lang": { "en-us": { "role": { "label": "Lease Contractual Term [Domain]", "documentation": "Contractual term of lease arrangement." } } }, "auth_ref": [ "r652" ] }, "ppih_TreasuryStockValueAcquired": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "TreasuryStockValueAcquired", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Repurchase of common stock", "documentation": "Equity impact of the common stock that were repurchased during the period." } } }, "auth_ref": [] }, "us-gaap_FinanceLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Finance lease liability short-term", "terseLabel": "Finance Lease, Liability, Current", "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current." } } }, "auth_ref": [ "r424" ] }, "us-gaap_LeaseContractualTermAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseContractualTermAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/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": [ "r652" ] }, "us-gaap_SupplementalCashFlowInformationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SupplementalCashFlowInformationAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited" ], "lang": { "en-us": { "role": { "label": "Supplemental cash flow information" } } }, "auth_ref": [] }, "srt_NameOfMajorCustomerDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "NameOfMajorCustomerDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]" } } }, "auth_ref": [ "r241", "r614", "r699", "r721", "r722" ] }, "dei_EntityShellCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityShellCompany", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r638" ] }, "ppih_TwoCustomersMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "TwoCustomersMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Two Customers [Member]", "documentation": "Represents information pertaining to two customers." } } }, "auth_ref": [] }, "us-gaap_FinanceLeaseLiabilityPaymentsDue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsDue", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r438" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20231031/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": [ "r700" ] }, "dei_EntityCurrentReportingStatus": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCurrentReportingStatus", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "srt_RestatementAdjustmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RestatementAdjustmentMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period, Adjustment [Member]" } } }, "auth_ref": [ "r179", "r180", "r181", "r194", "r195", "r214", "r401", "r402", "r645", "r646", "r647", "r648", "r651", "r654", "r655" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r700" ] }, "ppih_statement-statement-note-10-leases-lease-costs-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "statement-statement-note-10-leases-lease-costs-details", "lang": { "en-us": { "role": { "label": "Note 10 - Leases - Lease Costs (Details)" } } }, "auth_ref": [] }, "ppih_WeightedaverageLeaseTermsAndDiscountRatesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "WeightedaverageLeaseTermsAndDiscountRatesTableTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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-maturities-of-lease-liabilities-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "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/20231031", "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": [] }, "us-gaap_FinanceLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual" ], "lang": { "en-us": { "role": { "verboseLabel": "Long-term finance obligation", "label": "us-gaap_FinanceLeaseLiabilityNoncurrent", "terseLabel": "Finance Lease, Liability, Noncurrent", "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as noncurrent." } } }, "auth_ref": [ "r424" ] }, "us-gaap_MinorityInterestDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "MinorityInterestDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r115" ] }, "ppih_statement-statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "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/20231031", "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/20231031", "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": [] }, "us-gaap_NumberOfReportableSegments": { "xbrltype": "integerItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NumberOfReportableSegments", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r672" ] }, "us-gaap_MinorityInterestOwnershipPercentageByParent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "MinorityInterestOwnershipPercentageByParent", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_RestrictedStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RestrictedStockMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20231031/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": [ "r47" ] }, "ppih_statement-statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "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": [] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsDueAfterYearFive", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/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": [ "r438" ] }, "ppih_statement-statement-note-11-restricted-cash-tables": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "statement-statement-note-11-restricted-cash-tables", "lang": { "en-us": { "role": { "label": "Note 11 - Restricted Cash" } } }, "auth_ref": [] }, "ppih_statement-statement-note-14-treasury-stock-repurchases-of-common-stock-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "statement-statement-note-14-treasury-stock-repurchases-of-common-stock-details", "lang": { "en-us": { "role": { "label": "Note 14 - Treasury Stock - Repurchases of Common Stock (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-14-treasury-stock-tables": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "statement-statement-note-14-treasury-stock-tables", "lang": { "en-us": { "role": { "label": "Note 14 - Treasury Stock" } } }, "auth_ref": [] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsDueNextTwelveMonths", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "For the year ending January 31, 2025", "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": [ "r438" ] }, "ppih_statement-statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "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": [] }, "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "AmendmentFlag", "presentation": [ "http://investors.permapipe.com/20231031/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_FinanceLeaseLiabilityPaymentsDueYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsDueYearFive", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "For the year ending January 31, 2029", "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": [ "r438" ] }, "ppih_statement-statement-note-4-revenue-recognition-revenues-by-revenue-class-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "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": [] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsDueYearFour", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "For the year ending January 31, 2028", "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": [ "r438" ] }, "ppih_AbuDhabiLandLeaseMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "AbuDhabiLandLeaseMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/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": [] }, "ppih_statement-statement-note-4-revenue-recognition-tables": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "statement-statement-note-4-revenue-recognition-tables", "lang": { "en-us": { "role": { "label": "Note 4 - Revenue Recognition" } } }, "auth_ref": [] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsDueYearThree", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "For the year ending January 31, 2027", "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": [ "r438" ] }, "ppih_statement-statement-note-6-impairment-of-longlived-assets-goodwill-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "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": [] }, "us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsDueYearTwo", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "For the year ending January 31, 2026", "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": [ "r438" ] }, "ppih_statement-statement-note-6-impairment-of-longlived-assets-tables": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "statement-statement-note-6-impairment-of-longlived-assets-tables", "lang": { "en-us": { "role": { "label": "Note 6 - Impairment of Long-lived Assets" } } }, "auth_ref": [] }, "us-gaap_DepreciationDepletionAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DepreciationDepletionAndAmortization", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 16.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r9", "r223" ] }, "us-gaap_FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseLiabilityPaymentsRemainderOfFiscalYear", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details" ], "lang": { "en-us": { "role": { "label": "For the three months ending January 31, 2024", "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in remainder of current fiscal year." } } }, "auth_ref": [ "r708" ] }, "ppih_statement-statement-note-7-stockbased-compensation-restricted-stock-activity-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "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/20231031", "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/20231031", "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/20231031", "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-loss-per-share-summary-of-earnings-per-share-details": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "statement-statement-note-8-earnings-loss-per-share-summary-of-earnings-per-share-details", "lang": { "en-us": { "role": { "label": "Note 8 - Earnings (Loss) Per Share - Summary of Earnings Per Share (Details)" } } }, "auth_ref": [] }, "ppih_statement-statement-note-8-earnings-loss-per-share-tables": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "statement-statement-note-8-earnings-loss-per-share-tables", "lang": { "en-us": { "role": { "label": "Note 8 - Earnings (Loss) Per Share" } } }, "auth_ref": [] }, "us-gaap_ConcentrationRiskPercentage1": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskPercentage1", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r48", "r50", "r75", "r76", "r241" ] }, "dei_DocumentFiscalYearFocus": { "xbrltype": "gYearItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentFiscalYearFocus", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "ppih_statement-statement-significant-accounting-policies-policies": { "xbrltype": "stringItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "statement-statement-significant-accounting-policies-policies", "lang": { "en-us": { "role": { "label": "Significant Accounting Policies" } } }, "auth_ref": [] }, "us-gaap_LeaseCostTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseCostTableTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r707" ] }, "dei_DocumentFiscalPeriodFocus": { "xbrltype": "fiscalPeriodItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentFiscalPeriodFocus", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_NotesPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NotesPayable", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r22", "r122", "r718" ] }, "us-gaap_FinanceLeaseInterestPaymentOnLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseInterestPaymentOnLiability", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r427", "r434" ] }, "us-gaap_FinanceLeaseInterestExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseInterestExpense", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-note-10-leases-lease-costs-details": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r425", "r430", "r622" ] }, "ppih_CustomerDepositsCurrent1": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "CustomerDepositsCurrent1", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 9.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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_AdditionalPaidInCapitalMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdditionalPaidInCapitalMember", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r360", "r361", "r362", "r516", "r667", "r668", "r669", "r701", "r725" ] }, "us-gaap_StatementTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementTable", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-1-basis-of-presentation", "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-lease-costs-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-tables", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash-tables", "http://investors.permapipe.com/20231031/role/statement-note-12-fair-value-", "http://investors.permapipe.com/20231031/role/statement-note-13-recent-accounting-pronouncements-", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-repurchases-of-common-stock-details", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-tables", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-16-contingencies-", "http://investors.permapipe.com/20231031/role/statement-note-2-business-segment-reporting", "http://investors.permapipe.com/20231031/role/statement-note-2-business-segment-reporting-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-tables", "http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes", "http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-goodwill-details", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-tables", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-tables", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-earnings-per-share-details", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-tables", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual", "http://investors.permapipe.com/20231031/role/statement-significant-accounting-policies-policies" ], "lang": { "en-us": { "role": { "label": "Statement [Table]", "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed." } } }, "auth_ref": [ "r179", "r180", "r181", "r215", "r449", "r512", "r517", "r523", "r524", "r525", "r526", "r527", "r528", "r529", "r532", "r533", "r534", "r535", "r536", "r538", "r539", "r540", "r541", "r543", "r544", "r545", "r546", "r547", "r549", "r551", "r552", "r553", "r554", "r555", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r567", "r629" ] }, "us-gaap_TableTextBlock": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TableTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases-tables", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash-tables", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-tables", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-tables", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-tables", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-tables", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-tables" ], "lang": { "en-us": { "role": { "label": "us-gaap_TableTextBlock", "terseLabel": "Notes Tables" } } }, "auth_ref": [] }, "us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LineOfCreditFacilityCurrentBorrowingCapacity", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r24" ] }, "ppih_LesseeFinanceLeaseNumberOfOptionsToExtend": { "xbrltype": "integerItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "LesseeFinanceLeaseNumberOfOptionsToExtend", "presentation": [ "http://investors.permapipe.com/20231031/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_StatementOfIncomeAndComprehensiveIncomeAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract", "lang": { "en-us": { "role": { "label": "Statement of Comprehensive Income [Abstract]" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareBasic": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareBasic", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-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": [ "r165", "r188", "r189", "r191", "r192", "r194", "r201", "r203", "r208", "r209", "r210", "r214", "r402", "r403", "r470", "r489", "r601" ] }, "ppih_LesseeOperatingLeaseAnnualPayment": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "LesseeOperatingLeaseAnnualPayment", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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_StatementEquityComponentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementEquityComponentsAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Equity Components [Axis]", "documentation": "Information by component of equity." } } }, "auth_ref": [ "r16", "r31", "r137", "r159", "r160", "r161", "r179", "r180", "r181", "r185", "r195", "r197", "r215", "r246", "r251", "r301", "r360", "r361", "r362", "r373", "r374", "r392", "r393", "r394", "r395", "r396", "r398", "r401", "r413", "r414", "r415", "r416", "r417", "r418", "r440", "r498", "r499", "r500", "r516", "r567" ] }, "us-gaap_BalanceSheetLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BalanceSheetLocationAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable-details-textual" ], "lang": { "en-us": { "role": { "label": "Balance Sheet Location [Axis]", "documentation": "Information by location on balance sheet (statement of financial position)." } } }, "auth_ref": [] }, "ppih_LineOfCreditFacilityCommonStockRepurchaseRestrictions": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "LineOfCreditFacilityCommonStockRepurchaseRestrictions", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_LiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesCurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r26", "r142", "r174", "r245", "r265", "r266", "r267", "r268", "r269", "r270", "r271", "r272", "r273", "r387", "r390", "r391", "r408", "r623", "r693", "r710", "r711" ] }, "ppih_LineOfCreditFacilityCovenantTermsEBITDARatioMinimumUndrawnAvailability": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "LineOfCreditFacilityCovenantTermsEBITDARatioMinimumUndrawnAvailability", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r343" ] }, "us-gaap_RetainedEarningsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetainedEarningsMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "Retained Earnings [Member]", "documentation": "Accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r137", "r179", "r180", "r181", "r185", "r195", "r197", "r246", "r251", "r360", "r361", "r362", "r373", "r374", "r392", "r394", "r395", "r398", "r401", "r498", "r500", "r516", "r725" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r343" ] }, "ppih_LineOfCreditFacilityCapitalExpendituresRestrictions": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "LineOfCreditFacilityCapitalExpendituresRestrictions", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-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": [ "r211" ] }, "us-gaap_StatementOfStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfStockholdersEquityAbstract", "lang": { "en-us": { "role": { "label": "Statement of Stockholders' Equity [Abstract]" } } }, "auth_ref": [] }, "ppih_LesseeOperatingAndFinanceLeasesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "LesseeOperatingAndFinanceLeasesTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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_LesseeFinanceLeaseAnnualRentIncreasePercentage": { "xbrltype": "percentItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "LesseeFinanceLeaseAnnualRentIncreasePercentage", "presentation": [ "http://investors.permapipe.com/20231031/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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r340", "r341" ] }, "us-gaap_StatementOfCashFlowsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfCashFlowsAbstract", "lang": { "en-us": { "role": { "label": "Statement of Cash Flows [Abstract]" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited" ], "lang": { "en-us": { "role": { "label": "Earnings per share attributable to common stock" } } }, "auth_ref": [] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r358" ] }, "ppih_LandAndBuildingsInLebanonTennesseeMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "LandAndBuildingsInLebanonTennesseeMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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_LesseeFinanceLeaseTermOfContract1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeFinanceLeaseTermOfContract1", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r705" ] }, "us-gaap_IncomeTaxDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxDisclosureTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes" ], "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Text Block]", "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information." } } }, "auth_ref": [ "r175", "r364", "r370", "r371", "r372", "r378", "r380", "r381", "r382", "r514" ] }, "us-gaap_LesseeFinanceLeaseRenewalTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeFinanceLeaseRenewalTerm1", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r705" ] }, "us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredCompensationLiabilityClassifiedNoncurrent", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_LiabilitiesNoncurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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_FinanceLeaseWeightedAverageRemainingLeaseTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinanceLeaseWeightedAverageRemainingLeaseTerm1", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r436", "r622" ] }, "ppih_DecreaseInOperatingLeaseExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "DecreaseInOperatingLeaseExpense", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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_EarnedRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "EarnedRevenue", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/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_LiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesCurrentAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Current liabilities" } } }, "auth_ref": [] }, "ppih_DecreaseInOperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "DecreaseInOperatingLeaseLiabilityNoncurrent", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r151", "r244", "r252" ] }, "ppih_DecreaseInOperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "DecreaseInOperatingLeaseLiabilityCurrent", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_EquityComponentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityComponentDomain", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r16", "r137", "r159", "r160", "r161", "r179", "r180", "r181", "r185", "r195", "r197", "r215", "r246", "r251", "r301", "r360", "r361", "r362", "r373", "r374", "r392", "r393", "r394", "r395", "r396", "r398", "r401", "r413", "r414", "r415", "r416", "r417", "r418", "r440", "r498", "r499", "r500", "r516", "r567" ] }, "us-gaap_LineOfCreditFacilityInterestRateAtPeriodEnd": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LineOfCreditFacilityInterestRateAtPeriodEnd", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r24" ] }, "ppih_DecreaseInOperatingLeaseRightofuseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "DecreaseInOperatingLeaseRightofuseAsset", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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_AccumulatedOtherComprehensiveIncomeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedOtherComprehensiveIncomeMember", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r2", "r15", "r35", "r393", "r396", "r440", "r498", "r499", "r658", "r659", "r660", "r667", "r668", "r669" ] }, "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LineOfCreditFacilityMaximumBorrowingCapacity", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r24" ] }, "us-gaap_ShareRepurchaseProgramAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareRepurchaseProgramAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-repurchases-of-common-stock-details" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program [Axis]", "documentation": "Information by share repurchase program." } } }, "auth_ref": [] }, "us-gaap_IncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited": { "parentTag": "us-gaap_ProfitLoss", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r129", "r133", "r196", "r197", "r224", "r368", "r379", "r490" ] }, "ppih_EIBORMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "EIBORMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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_EstimatedEarnings": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "EstimatedEarnings", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/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_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossBeforeTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossBeforeTax", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetGainLossBeforeTax", "negatedLabel": "Pension liability", "documentation": "Amount, before tax, of reclassification adjustment from accumulated other comprehensive income (loss) for gain (loss) of defined benefit plan." } } }, "auth_ref": [ "r5", "r97", "r154", "r320" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r347" ] }, "us-gaap_ComprehensiveIncomeNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComprehensiveIncomeNetOfTax", "crdr": "credit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited" ], "lang": { "en-us": { "role": { "label": "us-gaap_ComprehensiveIncomeNetOfTax", "totalLabel": "Total comprehensive (loss) income 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": [ "r36", "r156", "r158", "r164", "r469", "r488" ] }, "us-gaap_RestrictedCashCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RestrictedCashCurrent", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r656", "r664" ] }, "ppih_FinanceLeaseObligationsMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "FinanceLeaseObligationsMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details" ], "lang": { "en-us": { "role": { "label": "Finance Lease Obligations [Member]", "documentation": "Represents finance lease obligation." } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInIncomeTaxesPayableNetOfIncomeTaxesReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInIncomeTaxesPayableNetOfIncomeTaxesReceivable", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r662" ] }, "ppih_FinanceAndOperatingLeaseLiabilityMaturityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "FinanceAndOperatingLeaseLiabilityMaturityTableTextBlock", "presentation": [ "http://investors.permapipe.com/20231031/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_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r66", "r67", "r326" ] }, "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LineOfCreditFacilityRemainingBorrowingCapacity", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r24" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "crdr": "debit", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r62" ] }, "us-gaap_ConcentrationRiskByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskByTypeAxis", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/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": [ "r48", "r50", "r75", "r76", "r241", "r582", "r650" ] }, "ppih_FinanceLeasesAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "FinanceLeasesAssetsMember", "presentation": [ "http://investors.permapipe.com/20231031/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_DisclosureTextBlockAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DisclosureTextBlockAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-1-basis-of-presentation", "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash", "http://investors.permapipe.com/20231031/role/statement-note-12-fair-value-", "http://investors.permapipe.com/20231031/role/statement-note-13-recent-accounting-pronouncements-", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-16-contingencies-", "http://investors.permapipe.com/20231031/role/statement-note-2-business-segment-reporting", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share", "http://investors.permapipe.com/20231031/role/statement-note-9-debt" ], "lang": { "en-us": { "role": { "label": "us-gaap_DisclosureTextBlockAbstract", "terseLabel": "Notes to Financial Statements" } } }, "auth_ref": [] }, "us-gaap_MiddleEastMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "MiddleEastMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-details-textual" ], "lang": { "en-us": { "role": { "label": "Middle East [Member]", "documentation": "Region of Middle East." } } }, "auth_ref": [ "r727", "r728", "r729", "r730" ] }, "ppih_ForeignRevolvingLinesMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "ForeignRevolvingLinesMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/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_GoodwillForeignCurrencyTranslationGainLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillForeignCurrencyTranslationGainLoss", "crdr": "credit", "presentation": [ "http://investors.permapipe.com/20231031/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) an asset representing future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized." } } }, "auth_ref": [ "r258" ] }, "us-gaap_StatementLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementLineItems", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited-parentheticals", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-comprehensive-income-loss-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-operations-unaudited", "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-stockholders-equity-unaudited", "http://investors.permapipe.com/20231031/role/statement-note-1-basis-of-presentation", "http://investors.permapipe.com/20231031/role/statement-note-10-leases", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-lease-costs-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-maturities-of-lease-liabilities-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-balance-sheet-information-related-to-leases-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-supplemental-cash-flow-information-related-to-leases-details", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-tables", "http://investors.permapipe.com/20231031/role/statement-note-10-leases-weightedaverage-lease-terms-and-discount-rates-details", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash-summary-of-cash-cash-equivalents-and-restricted-cash-details", "http://investors.permapipe.com/20231031/role/statement-note-11-restricted-cash-tables", "http://investors.permapipe.com/20231031/role/statement-note-12-fair-value-", "http://investors.permapipe.com/20231031/role/statement-note-13-recent-accounting-pronouncements-", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-repurchases-of-common-stock-details", "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-tables", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-16-contingencies-", "http://investors.permapipe.com/20231031/role/statement-note-2-business-segment-reporting", "http://investors.permapipe.com/20231031/role/statement-note-2-business-segment-reporting-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable", "http://investors.permapipe.com/20231031/role/statement-note-3-accounts-receivable-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-reconciliation-of-the-cost-in-excess-of-billings-details", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-revenues-by-revenue-class-details", "http://investors.permapipe.com/20231031/role/statement-note-4-revenue-recognition-tables", "http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes", "http://investors.permapipe.com/20231031/role/statement-note-5-income-taxes-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-goodwill-details", "http://investors.permapipe.com/20231031/role/statement-note-6-impairment-of-longlived-assets-tables", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-details-textual", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-restricted-stock-activity-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stock-option-activity-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-stockbased-compensation-expense-details", "http://investors.permapipe.com/20231031/role/statement-note-7-stockbased-compensation-tables", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-summary-of-earnings-per-share-details", "http://investors.permapipe.com/20231031/role/statement-note-8-earnings-loss-per-share-tables", "http://investors.permapipe.com/20231031/role/statement-note-9-debt", "http://investors.permapipe.com/20231031/role/statement-note-9-debt-details-textual", "http://investors.permapipe.com/20231031/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": [ "r179", "r180", "r181", "r215", "r449", "r512", "r517", "r523", "r524", "r525", "r526", "r527", "r528", "r529", "r532", "r533", "r534", "r535", "r536", "r538", "r539", "r540", "r541", "r543", "r544", "r545", "r546", "r547", "r549", "r551", "r552", "r553", "r554", "r555", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r567", "r629" ] }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashAndCashEquivalentsAtCarryingValue", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/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/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited", "http://investors.permapipe.com/20231031/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": [ "r41", "r143", "r598" ] }, "ppih_GulfInsulationGroupMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "GulfInsulationGroupMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Gulf Insulation Group [Member]", "documentation": "Represents Gulf Insulation Group." } } }, "auth_ref": [] }, "dei_EntityFilerCategory": { "xbrltype": "filerCategoryItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityFilerCategory", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r638" ] }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r436", "r622" ] }, "us-gaap_PolicyTextBlockAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PolicyTextBlockAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-significant-accounting-policies-policies" ], "lang": { "en-us": { "role": { "label": "us-gaap_PolicyTextBlockAbstract", "terseLabel": "Accounting Policies" } } }, "auth_ref": [] }, "us-gaap_StockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityAbstract", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-consolidated-balance-sheets-current-period-unaudited" ], "lang": { "en-us": { "role": { "label": "Stockholders' equity" } } }, "auth_ref": [] }, "us-gaap_ShareRepurchaseProgramDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareRepurchaseProgramDomain", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-14-treasury-stock-repurchases-of-common-stock-details" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program [Domain]", "documentation": "Name of the share repurchase program." } } }, "auth_ref": [] }, "ppih_IncreaseDecreaseInCustomerDeposits1": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "IncreaseDecreaseInCustomerDeposits1", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "ppih_IncreaseDecreaseInContractWithCustomerAssetAndLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "IncreaseDecreaseInContractWithCustomerAssetAndLiability", "crdr": "debit", "calculation": { "http://investors.permapipe.com/20231031/role/statement-consolidated-statements-of-cash-flows-unaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://investors.permapipe.com/20231031/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": [] }, "us-gaap_ProductMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProductMember", "presentation": [ "http://investors.permapipe.com/20231031/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": [ "r612" ] }, "ppih_JointVentureMember": { "xbrltype": "domainItemType", "nsuri": "http://investors.permapipe.com/20231031", "localname": "JointVentureMember", "presentation": [ "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-", "http://investors.permapipe.com/20231031/role/statement-note-15-noncontrolling-interests-details-textual" ], "lang": { "en-us": { "role": { "label": "Joint Venture [Member]", "documentation": "Relating to the Joint Venture." } } }, "auth_ref": [] } } } }, "std_ref": { "r0": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "1", "SubTopic": "20", "Topic": "940", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481913/940-20-25-1" }, "r1": { "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/2147481877/830-230-45-1" }, "r2": { "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" }, "r3": { "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" }, "r4": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(i-k)", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A" }, "r5": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-15" }, "r6": { "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" }, "r7": { "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" }, "r8": { "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" }, "r9": { "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" }, "r10": { "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" }, "r11": { "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" }, "r12": { "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/2147481141/942-740-50-1" }, "r13": { "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/2147480135/944-740-50-1" }, "r14": { "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" }, "r15": { "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" }, "r16": { "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" }, "r17": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r18": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r19": { "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" }, "r20": { "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" }, "r21": { "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" }, "r22": { "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" }, "r23": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r24": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19(b),22(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r25": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.20)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r26": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.21)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r27": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "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" }, "r28": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.22)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r29": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.24)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r30": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.29)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r31": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.29-31)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r32": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.3,4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r33": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.30)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r34": { "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" }, "r35": { "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" }, "r36": { "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" }, "r37": { "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" }, "r38": { "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" }, "r39": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15" }, "r40": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "15", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15" }, "r41": { "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" }, "r42": { "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" }, "r43": { "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" }, "r44": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-3" }, "r45": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-4" }, "r46": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-5" }, "r47": { "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" }, "r48": { "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" }, "r49": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r50": { "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" }, "r51": { "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" }, "r52": { "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" }, "r53": { "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" }, "r54": { "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" }, "r55": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "480", "SubTopic": "10", "Subparagraph": "14", "Paragraph": "3A", "Section": "S99", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480244/480-10-S99-3A" }, "r56": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "480", "SubTopic": "10", "Subparagraph": "15", "Paragraph": "3A", "Section": "S99", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480244/480-10-S99-3A" }, "r57": { "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" }, "r58": { "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" }, "r59": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "30", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481520/505-30-50-2" }, "r60": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "30", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481520/505-30-50-3" }, "r61": { "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" }, "r62": { "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" }, "r63": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r64": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)-(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r65": { "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" }, "r66": { "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" }, "r67": { "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" }, "r68": { "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" }, "r69": { "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" }, "r70": { "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" }, "r71": { "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" }, "r72": { "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" }, "r73": { "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" }, "r74": { "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" }, "r75": { "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" }, "r76": { "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" }, "r77": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "835", "SubTopic": "30", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-2" }, "r78": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "835", "SubTopic": "30", "Section": "45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-3" }, "r79": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "944", "SubTopic": "40", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-6" }, "r80": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "944", "SubTopic": "40", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-7" }, "r81": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "944", "SubTopic": "40", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-8" }, "r82": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "944", "SubTopic": "80", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480109/944-80-50-1" }, "r83": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "205", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//205/tableOfContent" }, "r84": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 201.5-02(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r85": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 201.5-02(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r86": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 201.5-02(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r87": { "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" }, "r88": { "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" }, "r89": { "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" }, "r90": { "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" }, "r91": { "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" }, "r92": { "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" }, "r93": { "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" }, "r94": { "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" }, "r95": { "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" }, "r96": { "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" }, "r97": { "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" }, "r98": { "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" }, "r99": { "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" }, "r100": { "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,2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r101": { "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" }, "r102": { "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" }, "r103": { "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" }, "r104": { "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" }, "r105": { "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" }, "r106": { "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" }, "r107": { "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" }, "r108": { "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" }, "r109": { "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" }, "r110": { "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" }, "r111": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "440", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//440/tableOfContent" }, "r112": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "470", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//470/tableOfContent" }, "r113": { "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" }, "r114": { "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" }, "r115": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "810", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//810/tableOfContent" }, "r116": { "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" }, "r117": { "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" }, "r118": { "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/2147479853/942-210-S99-1" }, "r119": { "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/2147479853/942-210-S99-1" }, "r120": { "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/2147479853/942-210-S99-1" }, "r121": { "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/2147479853/942-210-S99-1" }, "r122": { "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/2147479853/942-210-S99-1" }, "r123": { "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/2147479853/942-210-S99-1" }, "r124": { "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,16)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r125": { "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/2147483589/942-220-S99-1" }, "r126": { "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/2147483589/942-220-S99-1" }, "r127": { "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.10)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r128": { "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" }, "r129": { "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" }, "r130": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "SubTopic": "10", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-7A" }, "r131": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(1)", "SubTopic": "20", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481925/310-20-65-2" }, "r132": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(d)(2)", "SubTopic": "20", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481925/310-20-65-2" }, "r133": { "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" }, "r134": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.22(a)(2))", "SubTopic": "10", "Topic": "210", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r135": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org//250/tableOfContent" }, "r136": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org//606/tableOfContent" }, "r137": { "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" }, "r138": { "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" }, "r139": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6" }, "r140": { "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" }, "r141": { "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" }, "r142": { "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" }, "r143": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r144": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(13))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r145": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r146": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r147": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r148": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r149": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r150": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r151": { "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" }, "r152": { "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" }, "r153": { "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" }, "r154": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-17A" }, "r155": { "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" }, "r156": { "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" }, "r157": { "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" }, "r158": { "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" }, "r159": { "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" }, "r160": { "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" }, "r161": { "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" }, "r162": { "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" }, "r163": { "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" }, "r164": { "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" }, "r165": { "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" }, "r166": { "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" }, "r167": { "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" }, "r168": { "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" }, "r169": { "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" }, "r170": { "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" }, "r171": { "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" }, "r172": { "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" }, "r173": { "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" }, "r174": { "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" }, "r175": { "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" }, "r176": { "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" }, "r177": { "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" }, "r178": { "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" }, "r179": { "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" }, "r180": { "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" }, "r181": { "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" }, "r182": { "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" }, "r183": { "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" }, "r184": { "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" }, "r185": { "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" }, "r186": { "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" }, "r187": { "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" }, "r188": { "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" }, "r189": { "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" }, "r190": { "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" }, "r191": { "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" }, "r192": { "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" }, "r193": { "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" }, "r194": { "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" }, "r195": { "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" }, "r196": { "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" }, "r197": { "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" }, "r198": { "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" }, "r199": { "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" }, "r200": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//260/tableOfContent" }, "r201": { "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" }, "r202": { "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" }, "r203": { "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" }, "r204": { "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" }, "r205": { "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" }, "r206": { "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" }, "r207": { "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" }, "r208": { "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" }, "r209": { "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" }, "r210": { "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" }, "r211": { "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" }, "r212": { "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" }, "r213": { "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" }, "r214": { "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" }, "r215": { "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" }, "r216": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//280/tableOfContent" }, "r217": { "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" }, "r218": { "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" }, "r219": { "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" }, "r220": { "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" }, "r221": { "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" }, "r222": { "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" }, "r223": { "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" }, "r224": { "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" }, "r225": { "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" }, "r226": { "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" }, "r227": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r228": { "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" }, "r229": { "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" }, "r230": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "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" }, "r231": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "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" }, "r232": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "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" }, "r233": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "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" }, "r234": { "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" }, "r235": { "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" }, "r236": { "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" }, "r237": { "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" }, "r238": { "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" }, "r239": { "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" }, "r240": { "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" }, "r241": { "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" }, "r242": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "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" }, "r243": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-9" }, "r244": { "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" }, "r245": { "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" }, "r246": { "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" }, "r247": { "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" }, "r248": { "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" }, "r249": { "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" }, "r250": { "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" }, "r251": { "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" }, "r252": { "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" }, "r253": { "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" }, "r254": { "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" }, "r255": { "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" }, "r256": { "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" }, "r257": { "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" }, "r258": { "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" }, "r259": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4" }, "r260": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4" }, "r261": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4" }, "r262": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9" }, "r263": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r264": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r265": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "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" }, "r266": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r267": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r268": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r269": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r270": { "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" }, "r271": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r272": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r273": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r274": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r275": { "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" }, "r276": { "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" }, "r277": { "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" }, "r278": { "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" }, "r279": { "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" }, "r280": { "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" }, "r281": { "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" }, "r282": { "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" }, "r283": { "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" }, "r284": { "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" }, "r285": { "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" }, "r286": { "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" }, "r287": { "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" }, "r288": { "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" }, "r289": { "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" }, "r290": { "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" }, "r291": { "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" }, "r292": { "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" }, "r293": { "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" }, "r294": { "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" }, "r295": { "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" }, "r296": { "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" }, "r297": { "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" }, "r298": { "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" }, "r299": { "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" }, "r300": { "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" }, "r301": { "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" }, "r302": { "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" }, "r303": { "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" }, "r304": { "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" }, "r305": { "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" }, "r306": { "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" }, "r307": { "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" }, "r308": { "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" }, "r309": { "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" }, "r310": { "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" }, "r311": { "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" }, "r312": { "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" }, "r313": { "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" }, "r314": { "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" }, "r315": { "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" }, "r316": { "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" }, "r317": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480535/715-20-45-3A" }, "r318": { "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" }, "r319": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r320": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r321": { "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" }, "r322": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-6" }, "r323": { "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" }, "r324": { "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" }, "r325": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//718/tableOfContent" }, "r326": { "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" }, "r327": { "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" }, "r328": { "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" }, "r329": { "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" }, "r330": { "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" }, "r331": { "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" }, "r332": { "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" }, "r333": { "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" }, "r334": { "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" }, "r335": { "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" }, "r336": { "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" }, "r337": { "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" }, "r338": { "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" }, "r339": { "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" }, "r340": { "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" }, "r341": { "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" }, "r342": { "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" }, "r343": { "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" }, "r344": { "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" }, "r345": { "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" }, "r346": { "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" }, "r347": { "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" }, "r348": { "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" }, "r349": { "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" }, "r350": { "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" }, "r351": { "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" }, "r352": { "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" }, "r353": { "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" }, "r354": { "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" }, "r355": { "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" }, "r356": { "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" }, "r357": { "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" }, "r358": { "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" }, "r359": { "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" }, "r360": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r361": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r362": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r363": { "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" }, "r364": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//740/tableOfContent" }, "r365": { "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" }, "r366": { "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" }, "r367": { "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" }, "r368": { "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" }, "r369": { "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" }, "r370": { "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" }, "r371": { "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" }, "r372": { "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" }, "r373": { "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" }, "r374": { "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" }, "r375": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8" }, "r376": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8" }, "r377": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8" }, "r378": { "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" }, "r379": { "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" }, "r380": { "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" }, "r381": { "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/2147482526/740-270-50-1" }, "r382": { "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" }, "r383": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "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" }, "r384": { "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" }, "r385": { "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" }, "r386": { "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" }, "r387": { "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" }, "r388": { "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" }, "r389": { "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" }, "r390": { "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" }, "r391": { "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" }, "r392": { "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" }, "r393": { "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" }, "r394": { "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" }, "r395": { "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" }, "r396": { "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" }, "r397": { "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" }, "r398": { "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" }, "r399": { "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" }, "r400": { "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" }, "r401": { "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" }, "r402": { "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" }, "r403": { "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" }, "r404": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2" }, "r405": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2" }, "r406": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2" }, "r407": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2" }, "r408": { "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" }, "r409": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6" }, "r410": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6" }, "r411": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6" }, "r412": { "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/2147481877/830-230-45-1" }, "r413": { "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" }, "r414": { "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" }, "r415": { "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" }, "r416": { "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" }, "r417": { "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" }, "r418": { "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" }, "r419": { "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" }, "r420": { "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" }, "r421": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5" }, "r422": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(f)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5" }, "r423": { "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" }, "r424": { "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" }, "r425": { "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" }, "r426": { "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" }, "r427": { "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" }, "r428": { "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" }, "r429": { "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" }, "r430": { "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" }, "r431": { "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" }, "r432": { "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" }, "r433": { "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" }, "r434": { "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" }, "r435": { "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" }, "r436": { "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" }, "r437": { "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" }, "r438": { "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" }, "r439": { "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" }, "r440": { "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" }, "r441": { "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" }, "r442": { "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" }, "r443": { "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" }, "r444": { "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" }, "r445": { "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" }, "r446": { "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" }, "r447": { "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" }, "r448": { "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" }, "r449": { "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" }, "r450": { "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" }, "r451": { "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" }, "r452": { "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" }, "r453": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-15" }, "r454": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-15" }, "r455": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-20" }, "r456": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-20" }, "r457": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-28" }, "r458": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-28" }, "r459": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "33", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-33" }, "r460": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "33", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-33" }, "r461": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "35A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-35A" }, "r462": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "35A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-35A" }, "r463": { "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/2147482274/932-235-50-8" }, "r464": { "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/2147482274/932-235-50-8" }, "r465": { "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/2147479853/942-210-S99-1" }, "r466": { "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(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r467": { "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/2147483589/942-220-S99-1" }, "r468": { "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/2147483589/942-220-S99-1" }, "r469": { "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/2147483589/942-220-S99-1" }, "r470": { "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/2147483589/942-220-S99-1" }, "r471": { "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/2147479557/942-235-S99-1" }, "r472": { "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/2147480842/942-360-50-1" }, "r473": { "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/2147479440/944-210-S99-1" }, "r474": { "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/2147479440/944-210-S99-1" }, "r475": { "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/2147479440/944-210-S99-1" }, "r476": { "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/2147479440/944-210-S99-1" }, "r477": { "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/2147479440/944-210-S99-1" }, "r478": { "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/2147479440/944-210-S99-1" }, "r479": { "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/2147479440/944-210-S99-1" }, "r480": { "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/2147479440/944-210-S99-1" }, "r481": { "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/2147479440/944-210-S99-1" }, "r482": { "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/2147483586/944-220-S99-1" }, "r483": { "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/2147483586/944-220-S99-1" }, "r484": { "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/2147483586/944-220-S99-1" }, "r485": { "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/2147483586/944-220-S99-1" }, "r486": { "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/2147483586/944-220-S99-1" }, "r487": { "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/2147483586/944-220-S99-1" }, "r488": { "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/2147483586/944-220-S99-1" }, "r489": { "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/2147483586/944-220-S99-1" }, "r490": { "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/2147483586/944-220-S99-1" }, "r491": { "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/2147480149/944-235-S99-2" }, "r492": { "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/2147480149/944-235-S99-2" }, "r493": { "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/2147480149/944-235-S99-2" }, "r494": { "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/2147480149/944-235-S99-2" }, "r495": { "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/2147480149/944-235-S99-2" }, "r496": { "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/2147480149/944-235-S99-2" }, "r497": { "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" }, "r498": { "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" }, "r499": { "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" }, "r500": { "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" }, "r501": { "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" }, "r502": { "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" }, "r503": { "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" }, "r504": { "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" }, "r505": { "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" }, "r506": { "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" }, "r507": { "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" }, "r508": { "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/2147479383/944-825-50-1B" }, "r509": { "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" }, "r510": { "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" }, "r511": { "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" }, "r512": { "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" }, "r513": { "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" }, "r514": { "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" }, "r515": { "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/2147480767/946-205-45-3" }, "r516": { "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/2147480767/946-205-45-4" }, "r517": { "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/2147480555/946-210-45-4" }, "r518": { "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/2147480524/946-210-50-1" }, "r519": { "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/2147480524/946-210-50-2" }, "r520": { "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/2147480524/946-210-50-6" }, "r521": { "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/2147480524/946-210-50-6" }, "r522": { "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/2147480524/946-210-50-6" }, "r523": { "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/2147479617/946-210-S99-1" }, "r524": { "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/2147479617/946-210-S99-1" }, "r525": { "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/2147479617/946-210-S99-1" }, "r526": { "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/2147479617/946-210-S99-1" }, "r527": { "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/2147479617/946-210-S99-1" }, "r528": { "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/2147479617/946-210-S99-1" }, "r529": { "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/2147479617/946-210-S99-1" }, "r530": { "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/2147479617/946-210-S99-1" }, "r531": { "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/2147479617/946-210-S99-1" }, "r532": { "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/2147479617/946-210-S99-1" }, "r533": { "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/2147479617/946-210-S99-1" }, "r534": { "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/2147479617/946-210-S99-1" }, "r535": { "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/2147479617/946-210-S99-1" }, "r536": { "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/2147479617/946-210-S99-1" }, "r537": { "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/2147479617/946-210-S99-1" }, "r538": { "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/2147479617/946-210-S99-1" }, "r539": { "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/2147479617/946-210-S99-1" }, "r540": { "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/2147479617/946-210-S99-1" }, "r541": { "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/2147479617/946-210-S99-1" }, "r542": { "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/2147479617/946-210-S99-1" }, "r543": { "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/2147479617/946-210-S99-1" }, "r544": { "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/2147479617/946-210-S99-1" }, "r545": { "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/2147479617/946-210-S99-1" }, "r546": { "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/2147479617/946-210-S99-1" }, "r547": { "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/2147479617/946-210-S99-2" }, "r548": { "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/2147479617/946-210-S99-2" }, "r549": { "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/2147483581/946-220-45-3" }, "r550": { "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/2147483581/946-220-45-7" }, "r551": { "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/2147483575/946-220-S99-1" }, "r552": { "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/2147483575/946-220-S99-1" }, "r553": { "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/2147483575/946-220-S99-1" }, "r554": { "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/2147483575/946-220-S99-1" }, "r555": { "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/2147483575/946-220-S99-1" }, "r556": { "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/2147483575/946-220-S99-1" }, "r557": { "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/2147483575/946-220-S99-1" }, "r558": { "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/2147483575/946-220-S99-1" }, "r559": { "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/2147483575/946-220-S99-1" }, "r560": { "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/2147483575/946-220-S99-1" }, "r561": { "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/2147483575/946-220-S99-1" }, "r562": { "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/2147483575/946-220-S99-1" }, "r563": { "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/2147483575/946-220-S99-1" }, "r564": { "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/2147483575/946-220-S99-1" }, "r565": { "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/2147483575/946-220-S99-1" }, "r566": { "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/2147483575/946-220-S99-3" }, "r567": { "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/2147483575/946-220-S99-3" }, "r568": { "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/2147483575/946-220-S99-3" }, "r569": { "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/2147483575/946-220-S99-3" }, "r570": { "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/2147480833/946-310-45-1" }, "r571": { "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/2147480032/946-320-S99-1" }, "r572": { "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/2147480032/946-320-S99-1" }, "r573": { "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/2147480032/946-320-S99-2" }, "r574": { "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/2147480032/946-320-S99-2" }, "r575": { "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/2147480032/946-320-S99-3" }, "r576": { "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/2147480032/946-320-S99-3" }, "r577": { "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/2147480032/946-320-S99-3" }, "r578": { "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/2147480032/946-320-S99-6" }, "r579": { "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/2147480032/946-320-S99-6" }, "r580": { "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(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479851/948-310-S99-1" }, "r581": { "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/2147481058/954-310-45-1" }, "r582": { "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/2147481027/954-310-50-2" }, "r583": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "440", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480327/954-440-50-1" }, "r584": { "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/2147479438/970-360-S99-1" }, "r585": { "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/2147479438/970-360-S99-1" }, "r586": { "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/2147479438/970-360-S99-1" }, "r587": { "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/2147479438/970-360-S99-1" }, "r588": { "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/2147479438/970-360-S99-1" }, "r589": { "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/2147479438/970-360-S99-1" }, "r590": { "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/2147479438/970-360-S99-1" }, "r591": { "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/2147479438/970-360-S99-1" }, "r592": { "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(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r593": { "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(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r594": { "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/2147482856/976-310-50-1" }, "r595": { "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/2147482707/978-310-50-1" }, "r596": { "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" }, "r597": { "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" }, "r598": { "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" }, "r599": { "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" }, "r600": { "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" }, "r601": { "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" }, "r602": { "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" }, "r603": { "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" }, "r604": { "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" }, "r605": { "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" }, "r606": { "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" }, "r607": { "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" }, "r608": { "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" }, "r609": { "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" }, "r610": { "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" }, "r611": { "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" }, "r612": { "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" }, "r613": { "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" }, "r614": { "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" }, "r615": { "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" }, "r616": { "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" }, "r617": { "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" }, "r618": { "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" }, "r619": { "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" }, "r620": { "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" }, "r621": { "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" }, "r622": { "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" }, "r623": { "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" }, "r624": { "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" }, "r625": { "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" }, "r626": { "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/2147480524/946-210-50-1" }, "r627": { "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/2147480524/946-210-50-6" }, "r628": { "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/2147480493/946-210-55-1" }, "r629": { "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/2147480833/946-310-45-1" }, "r630": { "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/2147480032/946-320-S99-1" }, "r631": { "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/2147480032/946-320-S99-2" }, "r632": { "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/2147480032/946-320-S99-3" }, "r633": { "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/2147480032/946-320-S99-6" }, "r634": { "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/2147480167/946-830-55-10" }, "r635": { "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/2147480167/946-830-55-11" }, "r636": { "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/2147480167/946-830-55-12" }, "r637": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r638": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r639": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r640": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 10-Q", "Number": "240", "Section": "308", "Subsection": "a" }, "r641": { "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" }, "r642": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-T", "Number": "232", "Section": "405" }, "r643": { "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" }, "r644": { "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" }, "r645": { "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" }, "r646": { "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" }, "r647": { "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" }, "r648": { "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" }, "r649": { "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" }, "r650": { "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/2147479383/944-825-50-1B" }, "r651": { "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" }, "r652": { "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" }, "r653": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4H", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-4H" }, "r654": { "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" }, "r655": { "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" }, "r656": { "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" }, "r657": { "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" }, "r658": { "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" }, "r659": { "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" }, "r660": { "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" }, "r661": { "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" }, "r662": { "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" }, "r663": { "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" }, "r664": { "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" }, "r665": { "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" }, "r666": { "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" }, "r667": { "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" }, "r668": { "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" }, "r669": { "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" }, "r670": { "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" }, "r671": { "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" }, "r672": { "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" }, "r673": { "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" }, "r674": { "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" }, "r675": { "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" }, "r676": { "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" }, "r677": { "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" }, "r678": { "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" }, "r679": { "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" }, "r680": { "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" }, "r681": { "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" }, "r682": { "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" }, "r683": { "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" }, "r684": { "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" }, "r685": { "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" }, "r686": { "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" }, "r687": { "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" }, "r688": { "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" }, "r689": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//450/tableOfContent" }, "r690": { "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" }, "r691": { "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" }, "r692": { "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" }, "r693": { "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" }, "r694": { "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" }, "r695": { "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" }, "r696": { "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" }, "r697": { "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" }, "r698": { "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" }, "r699": { "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" }, "r700": { "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" }, "r701": { "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" }, "r702": { "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" }, "r703": { "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" }, "r704": { "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" }, "r705": { "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" }, "r706": { "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" }, "r707": { "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" }, "r708": { "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" }, "r709": { "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" }, "r710": { "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" }, "r711": { "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" }, "r712": { "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" }, "r713": { "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" }, "r714": { "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" }, "r715": { "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" }, "r716": { "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" }, "r717": { "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" }, "r718": { "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/2147479440/944-210-S99-1" }, "r719": { "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/2147479440/944-210-S99-1" }, "r720": { "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/2147479440/944-210-S99-1" }, "r721": { "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" }, "r722": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "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" }, "r723": { "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/2147480767/946-205-45-4" }, "r724": { "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/2147479617/946-210-S99-1" }, "r725": { "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/2147483575/946-220-S99-3" }, "r726": { "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/2147483575/946-220-S99-3" }, "r727": { "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/2147480032/946-320-S99-1" }, "r728": { "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/2147480032/946-320-S99-2" }, "r729": { "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/2147480032/946-320-S99-3" }, "r730": { "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/2147480032/946-320-S99-6" } } } ZIP 74 0001437749-23-033936-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001437749-23-033936-xbrl.zip M4$L#!!0 ( .](B%>5-C)*3@< %LP - 97A?-3U; M[W/;N!']G/P5J#M-G1G*BNRZR=BR9GRU+TW;7-74_=P!R:6(!@08 )2L_O5] M"U(_;"D]I_5=Y)R^1":P !;DOGUO0698ADJ/AB7)?/3\V3"HH&E$M_\\?3T8 M')\3[PE0TX&RD4Z%S=E8W)R5[8B,;8N2"UZ8G#KW1L*(@159*YRE<'#2AZ+TYZ%J-K.CBH+"NDJ&74Z L M*&L.1&9-( /K0)KJTAJZ,/9@]'S8;UT>IC:?"Q_F.@XWH5?(2NGYF7CQJ;'A M_$95Y,4/-!,?;"5-VYB(V)P(3TX5YR*.\^K?="8&K^IP+BKI)LKTG)J4(;;= M+MLT%NC,AFV#/V:GZ)_+D3,2+0+>A)[6:H"'ZAD6'/.2QE\6TZ>CZ MME2I"N)D<#08]M/1L,]F^*E'S]>VNNX4WYQNML?>_$^VTQB(Q<4,56#3#6)U#H M_^+@%2!*6M?M3.6AY"E?_:;S5B%WF,#^WS)ZGCU_A@3D M%O93WGHF]6)3P=;1BHWR>Y.>_#[Z&3M__MLS.(JWAA?OAWSAXD.]^5?C^1$_ M:C")4DY).)HJFB%3AU)Y\:F1+I#3<[37R-7"&O$]\BT&]?XF;"'&A.3;&ZN: MQ#LD760X)4>#0;3F .5\AIJ!=$F9BJ4V*"O(7!X=9ZWAFLV MQS813ZVN6KL->[@]0;B=/!FXD2B404 S-E8!G !K,$>W6^M7IM7G8 7\G>DF MQYP R5JT)@"88HZI$>,,3X:MUBO\=:'O[RT-B.>*)T[8HM$P .ALS:4&6GWT M)Y.^%(6V,[] I*.)\L%)+"2YL?4;7B9KP/(+9S:\W6/K"6+K=[N&K9L[@?CB MUV^.!Z_/?8>>3L!SZK=%H7 90_2=D(XB&!#M?,GF;%:!]ICZ M^#I7/M/6-QC'A.BL;E%1.YM1CF8O#@&"G("J-M*O;U%KFPF)2W#-AT;#8G B M>X/30WH9APY.\_:JO52MZM.+^043TAI(6]"P+P]>J+BS4(&%>)_WH0L+%JQG MCPC'>R'_BP3HPL\52G8*R'+7@'Q%'E,CI*.<^W&\):PT,]GXAP]AR9<2L-.M MU(I(V^ Q-V"KJ?*1 V%%)L[#A?^*/=<9V)&6$8R=BEP!*NG8F3L5F!2^>*M5 M'D_M?)-ZE2OI%&] M5HW:@+#,S6>]6?,73Z*U;QC:Z6Y#^\%$MX'PAU/D@X&.Y#!5 M.>-7>FMBR$D/['.5R:"6+E\ #)!7,E5:A3DKX&W+90CZZ$"L5R?QS%\#[>BAFM,(FZ 6;Q&-=*-JL/X>T]\P MIK-=P_3U5.HFE::Q-X]O2Q7N6+T)E=\K3'F1O(3J98Z"G)<]]%L%=18LA@"&B,FG5 ML>>--Q5N)W8<-],IBZUOI/8<^(UC;^?.E"XA< L'NDF !(H,"2S%]_T=Z))6 M)2HSM7I*+!6-G'2?+;B.5*FJM9T3>F>E;9E4WH$T(/@H"GKC]NVIZBE*QBO$ MUH;J^!(D/+I#D'95BIA[DPC^ZG?W<_#/O_RP&?5]?\L7GL-^\_6^.=WFSE=R M9>P@1AB@D>?_4"HJQ/4M90V?IXF_MM7&5_/N<-P><2.=;CCU^RLW55&1: M>G]Q\)?+O]_TQI=OKWO??;B^_#-_E[[6.W[[_VUET7-VMMG(R56,W_[P MC_>KU6#!7]]O^8$7??X:'P$=_U/!?P!02P,$% @ [TB(5Y-6HY!]!P M� T !E>%\U-S$Q,C0N:'1M[5OO<]LV$OV<_!4XWUS.F:&LR$Z:C"UK MQJV=7*9-3Y?Z[NL-2"Y%G$&" 4#)NK^^;T'JAVVY55JEEE-],4UP 3R0^W;? M@E0_]X4>]'.2Z>#ID[Y77M. KO_[ZG6O=_CR %?[W:815__2Z8AW5)*5GE(1 M3\5E7IVEK*@T[W,V$+Z3DJ>$J],N2<24WHJ8>U)4Y6;DDY+LS=X MVN\VD/NQ2:?"^:D.W4O?R62A]/18//M4&W]RJ0IRXD>:B(^FD&73&(G0' E' M5F4G(O1SZO]T+'HO*G\B"FE'JNQ8-MVG*YDU);9VQQT+6WIPPJ.H+ M(3D6X<33M>](K49H"-@P:9^[;'I:#!L/+JYS%2LOCGH'A_UN/.AWV0R':O!T M::G+H/CFM*-M>O%?;*7/RMA5)_1^*#]#Y'OXL#\0--5'*E M(I&0]2J;"I]+?_Q@X&:W*$SO9:Q)Q,:"^*=[+T!1TKJ2::K*T?S<53*9G;=H M)RKU.0_YXF\M6H7847K&?\WL>?+T"0*0G=F/>>F)U+-%>5,%*S9*;PUZ]$W M&2[^\;>G=Q!N#4_>]>D,XKIH_E<[?L0;=2:1RS$)2V-%$T1JGRLG/M72>K)Z MBO8*L5J84KQ%O$6GSK^$R<20$'P[0U61>(^@:TO)(1@A_1]&\\/%C._+Y.#D M]F)QM/ST<&37V+GH%KKHX;:YZ+?2P3'A@L547)5FHBD=4=1X:NN?J<' I?%! M TA5"EE.15UZ6Q,00X(4>#3LN!*) OZJX*J93-!DA2F0N+QI[.X8E)20<]). MV:205X1YE\9T:$L!!E-JSK(\!QLDRB9U ;,2W450/F*2JR07KN8_B_X3LM0. MP@LHE--0*_ V,5$^QP)=!8'#L_.X%:"9%,N$/S6Z:NDV[.CV".EV]&CH1B)3 M)1R:N;%PX A<@SDNVZ7KJFST.;("_D]TG6),D&3)6R,03'&.J>#C3$^FK=8+ M_K6N[VY-#8JGB@>.V*+6, #I3,6E!EI=P)-(EXM,FXF;,=+22#EO)2:2W-C@ M!LIHB5AN!N8.VAVW'B&W7FX;MRYO..*SO[XY[+T^<2U[6@'/H=]DF<)I<-'W M0EH*9(!S*W[$<%I!CA^WIC\]3Y1)M7(U^G!"MT0TK*FL22M'L MQ#Y(D!)8U7CZQ35J[7)$X@RYYF.M8=$[DIW>JWUZ'KKV7J7-67.J&M6G9^,+ M3DA+)&U(PUC6GBB[,5&&B7B=MZD+"Q:LQQNDXRV7_U,2=(9SP9*M(K+<-B*? MD\/0<.D@YWZ=;Q$KS436;OTN+/EB G?:F1H1:6H\YAK9:JQ&9H[59)=L=:2$SV6%4 L="QZ-*IX6,!KA1E7(^CM.?\6<3K:-TQ=CJ>N0T]CA*,@<+HB/SJFL(T-K6_'\$Z*D+.K8FK[NS7-X5$/*OG M0U2BYDX SPD/OF/AU\O"=-M8>-XX^%VB\&YM6Q:&*RO9^!GYE(6P29+:,AV6 M5.>*40OC/-H3WH#*@ \#M6\_Q/[-+G_G+%A;Y+A;=BWD!#P+6\R\^US6 2_+"PVO:QMV=;;_'<[#Q>%W@=F+%83&MG%OY&O!/+3QV 6\7\.[?[/RJ AY*N'J)#>-9I0W MXBCBWD9JQ3O/8R?*=C%JJT+&.6ASIW3X,E'C')57$8,H;R+!'^4_)D[\\0^F M7P^ZKKOB4^Q^MWZXC\-7P7D@*/]!V2^&%BJ6'W\0B-_EBC+Q=AZ'_]GL#3P8 MQ/UA\T(*4!:@&.C9XIU5B_'Y=GQ2GZJQ2+1T[G3OA[.?+CO#LW<7G6\_7IQ] MSS\J6;HZ?/?V\N.MMCSK6#.YV\CY0@S?_?CO#XO98,$_G5EQ (HN_Y0&3AY^ M$?0S4$L#!!0 ( .](B%>I]V3 $@4 "L9 - 97A?-3U9;6_;-A#^W/R*FX85"6#9DERWCM^ +$W2;DWC)NF^#I1TLKA*I$I2L;U? MOZ,L.\Y+BZ1PZ@[;)T&\$_GP^-P;-4A-GHT&*;)XM/-L8+C)<(2S/SNO?#_H M-$DZ:"T&2?J3Z\()"E3,8 SA'"[34L2H7LL<82R581FXX >M5ZW "]K@^[V@ MV_/V87P*KCL:Y&@81"E3&LW0*4WB=IUZ5+ HX;W.(5S MF3.Q&&Q -=P C8HG?:B^T_QO[('O%:8/.5,3+ES%)ZFIQF:KL0R3U5!4*BU5 M#UAI9-^"*IX(20^J%X,SX[*,3VB@PD:+#NPGFUZ6I@U'1[.4A]Q .QBTPM&@ M997H48QVUC:Z#LF:IIYKTUM_LGT^%Z$N^E_8W!>-'Q$E46UNKY6]#U$9GO"( M6>:#3&"LN(AX04YU-,.H-/P*X2PA#51Z<23;A#LF\I>,SL1(\+OPL7G1/&R" MW^YXV\>V>[&('[#OO;26-"G"!5,A$ZC=LUF&RNB)NS:@WK^8 -"IBE)E06Q@('"*TXV MJ:GPH62*4&1S.,>"TA:0SC&E'K*&^X&LHRJM@HPE8T R2UR?$(.8&>::,,MD M-'0";^8[JZ%%"@OVNQWO>O!JZ'1>.,#CH4.X*N$QY4:OV_;\EY[?\7S?]U[Y M'6=T%AD9DKG:?@-L]ART6$V,&O6U01JW#&7W4+WX_;W>@VFTV7!]B\6&A1D= MCE3$J:%#!HDPRPH6V]->O6M+K?J]1COEL4GME-XO-5I.]A?&XI_9'/MLYQF5 M*6JI?V4Y$;%LN2DCBTK+*L6W)^W>P&GBK^M5PN]OQEU_K[*A77T-XT/A/%%P MJ!TE*3/RFDCF168CPI2;M.*FPL\E5YC326GK9&FW:53WP=D2E#&QB]N LE:JW2GCMH9N]RNMSMXC47VW4+\U MEI\R0R%A"D=->(=3'GWB6V7Y?7"V!.4/(@S<1_4[7%8>N^_.]:_@FJJP-8W#6 M5)P6)2^H2AU.704U"08%@:("RK84R_:BNG->O]I)J6,(D50+)2G5+A0>>ME@ MG6[*J4X+;?]25W:/_#XIE> ZI0_KZXBU'L?*5WW.H 4YE'NTN2 MQ?V$W1[JNK+[S]Y!W4 0\RN(,J;UT'EW<''IC@].CMQ?SX\.?K?W[&O2\';2]%XQ/WG\\O5Z--.S?A'L>A*)E_RY09JU^DOP#4$L#!!0 M ( .](B%=2:UM 4!H &D; 4 <&5R;6%P:7!E;&]G;S$P<2YJ<&>= M5WD\5-_[OZ)L(;*+J6Q%]BU+)"'$?!!"3!^R#H:R9KE%(=M\$(I0V9*89!E; M9$\2LHPE9HR0?9!Q,M[G><[[/ ]]@DX M3IB;F)D 3$Q,P&W&!=#G "?CC:(7_5A M^BLVR2O5[0(VPR0I-;>[L>P<@D+"(J+2,K+GSLNI:VAJ7=36,;IJ;&)ZS7MX^OO>"0T+#PB/NQSUZ')^0^"0I(_-I5G;.L^>YKXN* M2TK+WI2__5!36U>/;6ALZNCLZN[I_=SWY?O(Z-@X;F)R:HXX_W-A<>G7\LK6 M]L[O7?(>M'_P!Q<3P,STG_(_XN)EX#K"\ $+ZQ]<3$?"_G3@93EZ1N48GZ$U MZ]]!)\^J/F3COY+^JKJ=75+-AB3@=G>80U!*?4YZZP^T?R'[WP&+_7\A^R]@ M_XUK"CC.",PCO,R\@ % K:)BVI";1V(Z$4="4(F%O!JHM8^L%EU!W7S[.??S M^[V^U-4GG^Y3?W1*\3*@5G-6LHEVE#;=1KH+=H-3[HX--20Z$-\J >W$6.A[SE [$OG.67=\_]$8@PA?W[!&Q M(+M2E9[:')K'!VO@T;"57Y$%>K'$HH*9$% )1Q81*>=*0NW%PD1#[ASJKRE4>W6Y\1K^ L9NFH> M_+'"F,G;@?SOP^%5.+3:3JAK.B&7&3L14P_'+H81KXP GKV@P^G%K.BRY$LX=$M0F]\[S]) MQ83PEDDAW KFANT\&KPE;D1H5FV>N<@,1#I:^<0.^+X[)I,_FEFW&^2#F,E> MO?I[&JDPJ*3:8=_>N1H>X=B#JQ^XI.$,PC]3ZTE>:'4P\;XSPOM^5D&YI]X' MV;HLCR?CU]P+-!UL[++F07(2!YDINF-5TL\UP+CJ ME>'BRH'&ZBU-C+\?L!NMOSC"2HN8[M !Y'/H0%R928C20X/==2)BJ1A7^#1P M1J#KQO8/IZ72_8)UEW-]947P$/RK4O<7H[3/!6K<^YZ52\@^Q2:_ :H\C=NK M87A77!\N&,4\_ML%]M>9HJ9ZW-+Q?XI;[G4E75K=N$8'4" ;-$@6 MV!+J!9F7ND4E$EXBD&<[S/1[ SUJG\Q::#]Q4/XLPI%9EW FYWZ6[")Z>GI^ MKR-?B\8VB)JC R>1!:?&- :\VD5#ZA^72/^PQ6L6*[S:EDE3MD#+7-?5!^SL M67;B=O 4OKW.@YY\.L"B2WT;PEF2>TGH1BU.S,J!Y0)&(BU]4.Y^N<<-*9#_ M@DZ<:YJD='_018V4DH3@6[X]@HN9MI;%Z]&VN#*O;6+1<_=S1%?1$CN;WS\P M=UXX.8Q/15-IM,=T@+",4-J,XK0[@'!TH$%^%05)#U($E,%V\PN4,"W*:3PI MG@YT\/F9'*NCEI ':Y/CZ(#>V4GL9SJ U#UT+WS01HAO(UF#C]K>TX%.'MAR M&Y^>8721*W+JX\>9E$ ?H;".F]^Y4LSBM3CCYX\;8L;0DPCR-'3O$!6N>VM< M_Q12R.E;X:L?U/AML]^KR9*G2E5.,WE>5=A^KPTDI2GV*X=+VZ?!E)[:^(Y% ME,X/KVV*AZ31@2>W#-*ZW%QTLJI]+6=_[[L5NE8@+J$'\T_2N'W'6X(T\5RT M;P?9F'H572D)F8P(&[44-2E[+NP;D3Z13=?E0S:P/2**^? VY48U2;%M[J/% MW[A-1+I4 C,TAO/4%V/_^A91?9KV8;Y]HA<"4<+.<5@<=( 6@>C$L44Q0 MWWR^4:^K"JDMSD^I10G)57LP6W[T49CJA;FD,UE/=9F^#6J;+->2^+A9M.MJQ:/W]=+C4[95I4N*#O!L MK;H]>QP-MDD591!("=ANBZ.QEVL]F*<#C_BA<;A8JO$#VB1M0-!M9*UQZ7-. MS&8=S\:\5]36+P3)JG :#6>,BJ5]XPW?'C1F#+F[(6Z^9#ZJCJFG8M?4NMJ? M1K3>BL1V2JE&=_<^3PMJH##3 58Q,YX4T!<_N=>Q)Q(NE48P?[!K4;%Z$;YX M1I)4@2>AO%("6EECQF 2^LPKF;H#I2[]D7[/]P6C]=??*4[3N7Z9UQ/0;WEA8RWEQW6MK/] MTQ-D)9^L3T47K,'>O6[4QGJ/X MVI\!4XV]AHB'8%U,B>QZYI8\^1FTL$@M,AO:7=>R^OX3=B[C_ :MSY,03 ?0 MNGPW@[^^W)4T^ C&?NC#D$:.TC*]MO8]E.L--@"F)$Z8*,)I:IQ]UC)8M9Y,%ZS4+UDRV1QYM/AOYD/[W/ MRI=$*7Y M(K*V)]#P[Q2.WVA(LXS\:B3JY*LH2RB,&(V #\T[)Z-X)Q1V.RZ7FB)J7*H6 M3WM$55BQ[CW#F2 [&LP=E2X)&[RS3=6VG&DNQUNX3OE$*N249[->ZH*K+E0H M_1CXIF*/\)S"1T?A;7>);09M*#RD&%Q8;;"N6QZE6@W9:J4HJ1]&FADO4:1@ M[CNS1(UT:S=GQYOI#=R-LB\Q#&?.@>$\M 04&R,BB'@ZD(SI*9S&=4]9,=:/ M%8!@]C5CZJN5Y_7L",NB9+&G&3-V,K6SUQ^L,P7>O=M,BG<\4U?G_ROWV&_-J)Y2(,T;N)=&[UIVP++VPLX@*W&3KR!/>H>W>T'<.+' PG)M^D M==*!&EA"C*R/SE%,EX)2UU1ER>/<:5_B-Y%7#?4%SD0^I6(IV9;@MC>LGM>#=[L)SI;2/[D&B%OE;TQ:H\GZ_8@D3 MA=DS:9_<4QR&;.8H6/[W-S\/!6=.Y??LM^D M%FPX^\?^["I:W-[SZI\/50[*W/J(I9R:K%RQSQ$:+ZP9&.O)<5,+N0=+*L[0 MC5';:5I>L$V!/YPLW[>T#.T*FHE>TY)[OKY@5.^=E2_PA&W%\>X#U>S]07(1 M(XEX,KB&.[P*C7R2)9#&3>-V'8,'L86"T7GKD2H[^Z![]/-!RP&TTSZ:QAY) M?;XE3^-LC,9$J==X1[$>*R=:VFO4/6A'"69):?%>)>KQ* H61+JE_]-L]'I= M+% UH1<\3OL*D@+AB92(>?GE6OSQ\+#N@Q'$K6ZDPDB7S(ABY7Q7D+RNIV,1 M[-S%;W @][4\>]0_$C!"^O\ M8N6?E^Z,.$6.,[(PA2;8#=HW U)0$VW(0$P==HQ!F@4NLH?^98@ZANI,1LM^ MP6:#C62-F4)YU*SP3$%0K,,(OF:3(L#87DKKAEMQIB18+,6NW-=5!M>R6>UL M\1(Q55QPG0\NVO[VN1Y_J9Y$01V;;YLQA$A&Q M?JU^H8+=BNW=FR4.+J/NI$G2EOI]>W MF=4_./5J-PBO;;>LF*U*J9+;]8\RIHVG/E5JB9BK0#QQXGJ7XW"?*\\1&=C5 M_&+RR+<<@/NUC(\6*<;T1V!U+H3J*JPS36KS4)J>MH?*YE(_.(?C EK]EMS) M+FX=>WS]?E]UNW7ZN7?[TI#VAY]4L7$N.-ODJP:1-;A)UQW^-K,V LWD<$4S B99830I:'[W2-TW@@:\+' M*WLWMJ0IBIB*%3[A(@M_+4L&T[]K:C@6*-)Z[9&GR7$AGQZHGX'#9VNI!WWD M)B)F4 O/F7DK]X=Q.63;X^<79>BO+;M4G>W\[-VF$$K7*."OEUENW2=WDLD) MD.,A/&84<<+A%O01160KQG&1\"5<), MAG_W4DX4=>DDK(LP;+NRE8.V-4,;#_U&'/N8FEWH%S;MG9U$ML\-+:A\F"Y> M6?U7UY'%8^[]HBL@83EGNP[Q8)TZC>*#X:YA," A#:RVSSP4CQGX7OGA!QY9 M<"%;GHIP:JR-5"O7*>?M1;&\K9$N-GQFXLDNE;)CMM#SX;0&2*@H))DW8Z#S MCWL?%&.W?DJP,Y(5&04K33YO+]M#U+1^WXC0B;5),H*,1:VGW9?L$A;>NJ%R M-ZKV?!G+VFP27]*PS%[H%'EVZAD=N.-6\D\_=XZ&8YU,%?8N/%JP?Z1Z#O%A MDR*&(5ET%3"1P!0]PRK*Y?$VK'J%@OV2N1:9G'VW=D@*+::N+'6HI0(4O_T$ M\NKAQ@WJ]SJC60D,5N';(2[%1RD53_S2APW'P'S)X_:"06QS6$,/E4_,C5(9 M<*D,,ZE,UP%2SJ<0WR4.N[*?HMN\=1R_$_C!Z,J-M7,0I'B]G?U5$C=,!;T%/(FOR5Y4-R\,PKX"% M;RKIXZUPWB[A=ZXZ^=<]O,Z9^%2L941.1D3J^.L.I.IH4^N/@;,Z + M0AH[3K4VU5'1V$=:4J:$22&#[%<(6[!=B;$1,@_0E).8[ACU44RK%,\I3/(% M_W??E=8F38!-UQ!-DVMAB8)- M)=W9R7/]D=-J[C'D#"/Y+R?J'3:#AI0E)W!O8SIH,HP%)&2#),=+M@0,>:Q[ M*3;*K-)T[K"X<]5W(!UH&BXN^=?_/L?4MO"4-,PDCD>DIS!44XB MB$*)=?WHQ'J:ADODM02+$Z9S.Z5YH.+EPSVQYUBO4F7]CV\+US<959I',[6* M41CEPXAT(%Y?VAEB=OI>^8[S"DU<)R<_PDO7C.O;5@@W-_Z\)F&+37N)>:(W M*(!9Z+E;X&X%@M,F/VLTU_9#C3G."5]*]LI[/$>QA[&:U,F%8MAG)BL:9F:T M(B\IX)!%BPA(P1HE +9[T &O&9Y-DR'(7S/NL]KJ'@<>6E$(9"1ZM@J1UG^2 M2K#]=HOQ_+J@]LN$7GW!YM%U0?R"]:7%O'NWS2Z1\4;B_=PM:&M$*&T41C++ MVYPRI7&($%!IJ5L_>DKJV_JO[@17 M%D)R, I?WI\ZXJE!7%5>#U^XK"TIR?4*UGI9'B1_KM++K'Z8K:JI?KJ\[W"S M5[M*#_OD[HH2^Y7:38M)''RL]/QN^)//:OXBF SXB1G:5 MM9NEZ$KT@V#XY,NHQ8-1LSZ/%WWR]LHB1HJM;T($C MF#(#7YX)U][YMC7.>R28T;A01Y/O\GW7S+]!Z9QIXQ>::LYF$FY\ILWR?D*; M55I>+VY##!MBU:!81H%5!7HE(Y)#ZTDSX3F' 7N.##+Z.^G'-+O>E@\9K",9 M=W3+T %E=*98Q.>%\L+;:LHEB^9J1S14#=A=:N\G[7@T9+CU*JI;-UADJ.R\2VS>32##H/ ^%-W>) MO$HM"F8G3?J-U5U0T7[4;TXH$ M.[TC-BE&3"1W6L)@$FQOSY(._#2'>,@OJ0]:I$E:-(XG<_@'!R:51'DT)])I M_&')0'2$=+,O6V[:MP'L)%&C-0OU>E54YFVP(&D_?U'T M7L>B02VUY,I^@;W:@GASDZ;V-G0O3<4:8[T8GM#?I^A<<3CE[+':FA :U,DO M?B[:/&EQT6%\=@,[<\ />M$!2 LDP-H10DZK3C7A9426>M4+0Q-0[")S:8+M M/P,L)WJD)2KQK^QU/:S.27X)#YWO71 P8&2N! M.X>0# H:$99&ZGYI%$7*9(?PGD[C3&S!7+ 45%M:"IU/;6C_9AJ7M<7EV_CQ MN*N7XQ?E[(V-_LH,1,:EZZ%P*Y'H6_K'6"%OB7$V*YRW;XP\H55 M@X.P)DRN 2&]D'0-P02V7XTY'I[<7:"X)9NB[ES)W(4J*M91FSIK<:*N_IF* MFN$9GB9/D5.WN=4R0 L*(XUCP3!C0'#)<6%.S:*9:K4\GS/9<[#O@V7V;+<::>I 5X%0G;V[]X7YW7=7;?JNT MP<_;=."]ES-O_,& ;@?_4X_0V@QG[PV:DWC96M A"T6-^JCE3$@)Q6!H:GS^ MQKFI[(H(E<;1$,W+5_8_%,[=RI"\7%WN><;04W9;EU&IL45I;>W0N,_B]&#S M7#)X%])X'9$:A'HG>T&R@7?9(5/&_)\8Q[.I#9=N.&Q4QKC_H4D4=\GA5=KW M&'7H,6HK=]J000%8^SQ;"R7HZNS<6M>S?;WA^WG5JW7W"K*62*41Y@);=FJG MC!Z]'0FR];7QA5_]W3P24C^E'N(UZ6)F\^JXN/2YD=P '6F/$1>-U=:EB4)6 MD) +.]+&B*(GHJADBCAIWG@HRJQHO\V]+=9QZIK>YP*A3SYL^T7IN/3A5 &2 M+,6("P,.MRO1^/CHP'9/T@L3EZ=NTH.) [=F<5ERJ=/UF*]O+W[M2(GPNI]RHW[EQ[)NB6M'\+*^#T^,ZOOI[-5YO$][]71GQ?PT>W(ML@+:19 MW@UW6+>_63#QAY'B0[$![-!G&<["Z,+'T9R'"F#[V1@N6K_.0E6C3_$MJ*)K MW$\:.Z8Q;A%?&Q0K*IS.)W7;Q(XL(E0S;!SJUI"GUF5+MD/J1C@BQOL0BW>M M^P)O> QR^-+"P/S!LE^ODTB#?YU[G03\;QM]\M\ 4$L#!!0 ( .](B%?C M67#\CA, )/E 1 <'!I:"TR,#(S,3 S,2YX'A(45]_L?+-'">J) LY&>=[MOCCD.Y%_J,C\\ZWQ[=WN/% MS4W'D8IPGP0AIV<='G;^\>O__.7S_[KN%\JI((KZSG#N#"81]ZFX#*?4^=?Y MPZWC.MWNI^[Q_9WS;7#AG!R?G+K=$_?X%]?]]?.+]#]);T*GQ $.N/P$-\XZ M$Z5FGXZ.GI^?WSZ?O@W%^.CD^+A[]*^[VT==MI,4]L*(*S%?5'@9BN"MI-[; M1IKHI/F;DT/,@75,)5\QF5.?YU%90 'A_A8ZQS M[!YWW9-N6I-ZOID$/,B1H"_>I*0D/,D5#1C_P\P(J/+T"!\/B:1I<4Z8)\U- MZT>YMFZ0O?X="&D9)ZY?7B0:UT*M2@X M(G*HF8:;Q4(%96>+QH_R%=1,E-"')[FBD73'A,Q66TX>% N7\)$^R15'RK[* M,Y(8Y?U1_#!;E*TQ(>/8&[V%"5]63)[TG>['CQ^/]-..0Y02;!@I>AV*Z24= MD2@ ;B+^9T0"-F+4AWX?T"GE*E<@\U@1,:;J*YE2.2,>K8\#\!6.HSL\F\Y" MH1R^TL8Z(6,O<1MZ1&D?55H%?[EI/1=OH;LY[;X%TIVC&ER4HM_$@BRO$%^Z M>-F,=MZ#U:*>K9+^V(*#C%NI17Y17E]M07CI7&O138OCQ694#1YF+<65\D;2+EU@+6G3XGC14-J"S@:07LV>\;JGOI M\>OI.RVOKYKCJX'*5U'60-\E ]@61L<[F_%0'0N5L5-54_^6#3UL/N*KYV*S M=1:_MG&RBRBOGH]-BN/%%C: [O/Q2(0!/>)TC+%[O1X8")&KA=WP(PZPW0]% M/@CGH=)-Z7OI78@>^2A,;L%-#$P^I?'H QTY.E3Y1(2'=-8'-$"3<6!*EX4:*NT5"B?CC85"JHPSEHLTTS0366"*A+"\$:6P@8& M4,!A,+&$0%CIB-[U0R_2%S")=^$O4W,7^R*$ZTBEXV"];P\WM6/ZF-/Z!!9L MIHPN#1=/8NK,6'\]/CYV7.7,+?/WM *D5DPY)H!,Q M=3,.&\N8FZ<>\V-,PS]U;G2'!T&M:HXA## MN48^#AA!D_%04;<+0X=DVDY94ML#8FWKMJS_"\ZGF?0@S(X$A1]?@:J#\ZMS MI(M6O\_0W7-;G[C#2#).84HBZ5C?%Q2SKXR/+1E\+0E;5O^[T>HX)SI/B#N/ M,7'G(26^YZ8_=8FG%U@EV,.C[(D, VK)YN:V;1G[H]'8.(/I)53!R"G5/;?R M.S# $^4114.$XYA%2U8VMVW)RMUCHY5Q6O$04T4CIU3WW,KOT^22(B_4PD32 MU*@MNW:-=L40/\E$#9#() F4L*4V9*)*\G8 M,OJ)T>@8J=\L&,#0[!88<#4'3D]SL.8:,:?9U.IES:C,;+V[=E^5.C MY7_1^#.1^"T?6MIK3O%NS"[$4JP3Q,4V)BTI8I5QNV9=.2'%=7SXU2DCJY MN>_&/7%'$%VZ3R2 6:HMP^8;M654\GR@BTKUR%ER_;FC):.G1\T$VEF"YAP[G-,[#LBWKE*P#@6B7D\ ME;%E_I5V+=GZQ)S7TD'S(*$83XWVW;+OX2_W0JZ@5("]CW%%<4BUU\?7D;!E M;W.^2X?57W/$G9N4^+Y;_@.N':.OH]QCU)ZY5]JU96-S>DO'WA=9BOMK6,G& MG(V81PH#:A@P;8KT8GM3UZ9DR_@K&:[')0>Y<3LA[+Q)K_9]IX%Q ;MTZR $)%0L6=I%02<86$LS9N[7+(PD\ PY^8/-2U)LEDU>UKPEBY_63N0=#%Z]$]CUJ2(L M ],7U1$@N^P^7B%I"U@F#-^ZS)B3 MA27;EP^XJ)70>1U%\\=P+" P'B15?%2G5 MU&UA9[,,Y.*NQ/-.TQ(7R-D"5P<\F2WJA=QC 8MS1.'(51.P:2B5R[A+7SR, M-.#ND.DEO>\%LX9,V4*?.=FY#GU9AC$-"@P[%\"PP[ASI1G&N^<)PP=0&E_) M>*51KX*(+="8$Z+%]T .X]RF"QFO XJ-R=J"B3E;6FLAY8"G5,_.;CC3/XBGV!.>3?1=459*W1:V MS(GF.MAR^IHUIY>P=@!4I4DSZX>Q=;\[J*HYL 4L+(LNG=@&V+1>V0&;.=Z_?!P, C'G$L'U1++-/YH"TS#O KQ29 MES1N"Q?F7';ZPO$AY"[=O/0ZUBYOWY;!S>GCW"ZI@\U+;"*CV2S^WA4)\D>^ M9@^NA] AT,W _&X+OF;+Q!)1$GJ@@8YJX"@70D?IC+CZ8 ?=6N?B9U]>#74,V; &N M9!-R#G"_)RRZ"8^)5QL@CP[PJ!M 'IT'Y/& M14C0[>,!,-O)^GE+&WB@)$A M"^*;KP6NNG0MH>E]R0;G')KN%CSIA30-I=LE3P?TE+^ D,FVZ-_Z/SQ#_XD$ M^G@1=!C%2I:Q99DK6\@K.3/!]#)%+B.$=_XOOG^U9%E[M967, [ +'E-XI72 M")5T;(&GY# &TWL9A[1"A8T$G47"F^CA)_Z@U72QNF79%36B;0LSYERT"3/H M@19\)5_3 KX*B-I[)*TY6>>5_,L&%&VAQIRI7GNTSU[YG,]'Q0_F)G?R'];5 MG]6E\238(4,8IXFGSCI*1+2CP87?(OUW;QA=3B"PO(717,>9=W0ZI**COQ-\ MUBE_S(( WZ1)&Y014& J0O)?1!C-SCIH8?:) 9PZ3OQ=4E^)^$/5G_QP2AB_ M@6)R\9?T1K$9:/X>XS93P=72^/[VA@D>.Q?/_3\_T1288USHA6+L['^ M*$5-_%FL@KQ;-/ C-;+4@-YI-Q"$RQ$5@OJ#L.=!T"9HON^D,BP$W[Q>$WGC M.^#9H;N*>5':)+%]UO& :8:*R'=X3X(+\&;I2*NW'U% 7PZ-///.'A8KC9" M]07AQ&>$WX5"CWR3[@5+3J8NUUMF6\IUGD>6*G*ED-Y5O6)^N+ MC)'LAE+GJNR:X ^X)!6.8%*IH_LJH5>+MZT#E[K?R]"+L$2/^U<%GX69;.\X5L#'% M:"K=\[H0P/"@K4)<,XZM *Q+?%@29\SU<4F8'SL/](GNL:C-JV^'/Y6V9+WC M)!)I*?K#@(UU$S+?E:H*M7+2G&5:QAF;4X$?O2'C M19RV<:WM9)W%3:T3MD[ L\KUUPAMT1_%KU_*07CUHBCWR\4LK]"\5^+"Z)@* M.](M8C$ 86Y07XG?-BC_@P.V,A$SP+LG\VEF>EZG8'M3,!BH]$<7NI%KXL59 M%#)CB@0Z@P2WP6_*= L5 G$A>*.J;9VA&*59KG0L=W[45D6-RKNE#)@I0T6] M6_CJ_&9PV7M ?-TQSJ;1]!OW!7GFO2?"@D*@9:VUMJ5Z+.L+)A'7[(E"%"JI M!U(]T4LRK\"8-1H[I=M+.B)1H)8;(=(5_X?,4GJ3BNV('0R,7[,7ZE],B!A3 M-#KNWM>6?J!Z_X._3N@:=9M;'SP;W7ZP-7#])2("-$6IWYOB.PGK)#24;2^> M,ZMH*XML5R]>$&$P_S44:M*#V1A^2RJ75ECH8?MVVJ:CTIE1=LO((_@M:/Q\ MOISE$!Z-H%J$*>X4$OFITC8-M'*NF+/K;4CX/1%H^+S8E:5:*INB@S">(3 2 M/*:[/9/MDX-T\V@J8\W2K5L\0M2!4E"9W^*%F?NQ;AU)2=O>') M.(=I6OCG#\A+*MR6;;QZ*-C(E/>X+?Z>S:C>34EN56%O\)KG[3"L"#T(TR0: M(\F/2)B3Z&ERDNBZ>@'=,;!#C_OZ(.#D)>A!N'R1*]Y>^!O\7H:^K]/TSF3 M[Z-AP+Q@WN/Q)\)C09:I!U#/6)!I 2X;5FIEO/! .7TF@>[H<7P;SP[T(AQN M03V?/Q+HX3T!DV#"'X%IYC.P3%X7VS?34NV427,UGL_40@P("T^*"FE0<]=U MT%@%NZJ!.^;[ ;TBX.\$SPK4K:N*&BW\+#JIW4-JM+!C.JGG0G]*SZGER,ZE M2Z0N+]=*^1Y7-^\]MF;S7CG7#)I-(/L84+KX05Y"H=O%6Q,:A%ZE)*-A_<:=^^BA>X\.X,J>*S>NV;?UKJ8O, MR8#)V:3Z:-+,VR"+S%6RAP29 MPQ!ZZAZWNM[P 9O2;U*?@S"+U!V%7E#($F]M(*X_R>/_Q3.Q&]*0OBD?10 M37VFIMDU-:_>5K^T/*)ILV.C8WTTKMVZ-?$:DM0^4[2V;NJWN(OZVO[<^]J* MM$!JYS6\\7'>S;2[.9E=U*Q"CC?1T:+"+DK;]&3NVMII3&"'M&G[]. JY5JG MM].ZKMMAU]3<(?F;'0);I9N&K>ZRWNK"IKSB[DC_#NRI-]C!7R\-ZFN. M.ZGC@1S,K"9QO X#O$OUZ6EX=YB+YUY Y/8JK6YW MUW57LY]65-X=+33X$'R%:IJT^!/IJR: ZK>S.[K9ZGNY%?K:KNV?08<5'[%N MK+^J=G\:W=7YX/QV6JQ%X6?09TTG5Z.!W='&UA]LKE#6]NW_#+JLB:P:#>R$ M-B2#V'&$+V,J\+TZ-86?JYB% ?,P,9]>K%/(!FU\-YW$WW:0WH1."?S\?U!+ M P04 " #O2(A7/!V.X=H/ !Z\0 %0 '!P:6@M,C R,S$P,S%?8V%L M+GAM;.U=;7/;-A+^?C/W'W2^SXRLI'=M,DD[BNUT/.-$'K^TO4\=BH0L7"E" M!Y"RU5]_ $G)LD2 "[Z *T]G,I%% > ^B\7N8K$ /O[TM(@&*\(%9?&GD]&; MTY,!B0,6TOCAT\G]K3>^/;N\/!F(Q(]#/V(Q^702LY.??OS[WS[^P_-^)C'A M?D+"P70]N)NG<4CX.5N0P6^?;ZX&WF T^C ZO?XZN+\[&[P]??O.&[WU3K_W MO!\_1C3^XX/Z;^H+,I!$Q"+[^NEDGB3+#\/AX^/CFZWKZ;K@I M?5(45[^&R;;";N%_#?,?MT4/FGY\EY4=O7__?IC]NBTJ:%E!V>AH^-O7J]M@ M3A:^1V/%D4#1(N@'D3V\8H&?9&RLA##0EE#?O$TQ3SU2/'LW>O,DPA/)]<$@ M9QUG$;DALX'ZO+^YW+Z3QBLB$L;%FR7A"W])E^1-P!9#Q?W1Z;O14%482N(3 MLB!QXL4L(=YW'B;)>2E$5=+&,R,EP MAW&!'P5IE+5Z);\7Q157,/(PAT&>$B*'5B$ &R01"RHXK9[\?B9?)B[C(.6< MA)/X7HYNQ10Y:,]8G' _2+9OB_PIB?*&;*KE1$9*_!DOF&U)Y(7/8Q+>Y!PL M(Z>T0!LO%@E=* VF7J!ZH/3END(F G8$;-2-WXZD?KUD="'>5(HV[P= MGP!)NRJ5.(-EPSQY*->_+<9\_K*<[:[?O7#TVI!2F 16!8N,* MS'PQS20O%=Z#[R\S^H8D2L3F2<;:C*W%@]^_T%A9]2M%U%5!T_K:7RL2;0B7Z5JF.^K]Z;-H,+: ML#-1]V-&'$MY$VP[U=%ANY/O:M)Q+^KC0_?(FF![KHT'V8V<\5$UWYW,OE A MS::BM Y(8T-.\5[)R0@ADZ6:TDO?T-8*VE9'B0UB%1NUA1(UT$HV;0XE]I8Z M^RCZN<**UFT&+5:35:W=#EZT6BM;LQ5\2&VL;O,&<85W:MM9UI8VPQ >_7@,_])X"E W_?DUL MV'%"IYH)S-V]WOQS=)0Y'B]5GDH!Q'*J/BV>Q_WMW)<.R2_R^[,\[(+J\#7'XQ-<$TY9>-B_092J70X73\'< MCQ_(C41],9N1(.G"B:A-A%,^GY,942FUERJAEF3BD(O%F7Q(M5X'M)IK+#0F MX6<2RS^2Z\B/;_*\_#])^(TD/\LI_143:IYWQVY)DD2YNMU7#FTUYQC[DI,@ MWW,@_XY(YL'$X7C!>$+_S)YK<<*K.L64#XO);'>H3.(N9@L=OJFW]+5K3N. M+OUH8P8 F6K:.DY1;$;6)#ZG(K/$4@(GL\R%T*$ U7&*XE#SCX. IS'8>U^C1.HWVSH>5U..,VW1N29V>462J;KL, M?29GUHD?2=Z#(54UT#>^-,FV6RO:YB3X0^1&67X=!PE=V8U-F\9ZQGW-R=*G MX68V*QD1($5[H_[6C^3XL!9'^Q9<(YS11,V^]0#V"KBF;T75:3=2 M3YVS=)K,TF@S.=-37%G%\>KPLE!*DQED#%26[XWZS!L[)U,(Y0=EG5*=+8)\ MEB8ME!9-.9.F**JY,,[5]QI^":N[>(9IJ;T>[N;1D!I)LM[1,,%^^H4I<;9M M;M0/%=5(K#T>(=&&EFJDTQX/ZJI(,*:TVJZPEX;UH<"_1PN\O108*"]^P#\" MVEDYAS+D/5KAL/$-P?[1*?[^MUB,!P,#Q^_7V>>(8=K]6V-]Z>7P;A0EKQ'Y<*X% MH*RHN3"":7=P>\)@%8NO,1Z<2X%I05FSB[(B8_ (HGY T&WD61S!,*C@AIL] M!C4"@UC'BNT2^3%$_X#0@4M0F#;2-^QKV+ISC6C?,72Q9JT.DQ_8TWX>ULCY M0&='^^=BY]LU,!GJ_ME=-_T0T_H>6BY6)@'BVI/- ,"&U7_G5.<8R;K=Q93>%12I*%"YH3.7@DMQ;D2(S0$,WL)9;))P)D4=Y M=50?EG"=6L\61(6@E?.I5A]IG$JE,MF*[&I(,BT M.<9-$.@G3-%$K'7?,:LS4;L9[[,Q3_OI.%OW7:4ER'\J3JD! MTJ EMPG+)-,>9DDJ+]0H0;F[\%297\5 3BZFB$D%BL;BA2G&IK<*#":#F#H. M!,9JQH*RJTH,(@/,;5 M; /!5#@MF+K'Q0R+U?,P,(U1UVRJ\B(QQ8X=\P8V MM<0TQDI<5-9#C .5)H7PI"+R@2W9Q6P3&D[+,2G#2JS5N:H85AG4Y=ZGH:A/Q: M:A4+)[9ST6N5]RO56R><:?(6]Z&\$B"'&Z#$./ROG,^K<;Q!60KNVN?Z@R"Z M?AT*WF7NEG2JZ$-\EG))7K"^XQ*1'Q0YY]FWPKH>H+3D7#LO.^:P:X_96!TI M@#9WYKP.-KB0_AK3WNY<_AYYVJXN1C61@GALK"/7YTA&K"4?FCLZ/1^S88/"<IW&XA%?1RF6_P]2-OZD=J MQZ/4SH0D'HUGC!>LY/F^-B]AFXHU;UEL_<7N+UCL"((CNS<.@G219A1!=KO; M'N+9=O.]W2NBNPP,5+9_JO.)KJZ7(%7Z26\$\;ZB- ;*S?R'5<* 0TW.ZD Y MK.EBN5[(L'WU$$5 )!PY]XCND"M(T2!#IK&MC@\E1M>6(C0AC2E Q6].J MJ\U+]28F>%4&JRSQ"J9/,0EKH,!9E8>-,#\O/ MJ$5GH\M[]T_:+H2C])+;JK(MW&Q[Q>*'1/)-G?U0-/_53U*>[66^>"HBW-^D MN9F/)24T4,>!KEBT4E).X_U]"JVVZ=0GV3OJUNSIF@OW0O?S"7YJKSJ(>E,5 MUQAX^N)@ODH YO)]4+]S<#R(>GWY/JA7QZ$)=; 1%>H45! "\):_ND+BR\KT0&5E MX$)7S&T.8GXDR]Y!+./DS.=\+8W\+WZD/_K"IJ[KS,K-L6]& )IBCFG5'&%? MZ1Q8U.P=$3 N:5/5*:;-B<2[!\L_$Q;YTJS.* DK!WWM=GI!NW7;"EVEC?E5 M5^B7_AT/S@)$>2VG2/17'ID'$KA>_RM%E6,&6,OM446,A8\TTCES^S\[/J@F MO_QG;3JDG5C5H FLSN!ZB TWIC6?=4VRC[Z@J.8=T\L-LN>L:QCJA-? M[9&Z*#8^O,A6F=' <*DUM*+;8]>@LP0D\X([=7QURM<9.7FLT12-K"KNE/;[ M6!J!B(0[MXV9Q;ZZ LX]">5&X66.%W )%E,J3"4L@)K"=,)2)1Y]1 /3\?B5 M,*##" KJ.PR@K-TQ*#H7=]54HJNQ# ;%Y^+"PFI\MLM,F!(?M1,Q2,YJ_J\J0QF3RVX&UD%B/Q3\][V#AR\!0S']@ 93O3U+9G3O>T=GL7T&J;=B]GZK M%\B1NBLV4[#6M@DZ=E< BA2E\4,SBJK#JG? AMYIH0:I/Z*95C'E*B* MU'&!(:R9)HW)4!@6(W>]4,CNGQJ&HKNS$F"X8(N:F*P#L+^:[#_#9"]@<,T[ M93!9!Q@>VPP'3 H%G /-0%S![(*"\;45EG#L?M;!=V1.*!AB\V2P9P[T=9AA M]N$%3"3-SRV%VEO!W#TS"H &4-OM M[@%%E+HR5$/[P>\]9J0;R-07=)OU.)?=F060*NC5%W1+;SJ-\C&FG& =K:6% M<&8('K)3$T4!CT-4WI8)795(U7"KNIN0FI$8! Z5YP05-J,)PS0A,R*JTK$ MEZ[X0?TWE6W()_\'4$L#!!0 ( .](B%?6J"DU@DL Q !@ 5 <'!I M:"TR,#(S,3 S,5]D968N>&UL[7U;<]NXMN;[5,U_R/0\L]/IZ^Y=>Y]3\B4I MSSB1QW:ZY\S++DB$).ZF"#5!VE'_^@%(ZF*+ !=($%Q44)6*;0D UP?'X+)P^7-S3=O>$:2D,0L MH?_\)F'?_.=__/?_]H__$00?:$)3DM'PS6S[YG&5)R%-K]B:OOF_%_>W;X(W M[][]_=UW=Q_??'Z\?//]=]__$+S[/OCNER#XCW_$4?+'W^5_,\+I&T%$PHL_ M__G-*LLV?W_[]OGY^=LOLS3^EJ7+M]]_]]T/;W>MOZF:RV_#;-_AN/%/;\LO M]TU/AG[^H6C[[M=??WU;?+MORJ.ZAF+0=V__[\?;A_F*KDD0)7)&YI(6'OV= M%Q_>LCG)BFELA/!&V4+^%>R:!?(C.6<_O/OV"P^_$;/^YDTY=22=IRRF]W3Q MIOKU\_W-Z5Q$2?8VC-9OJS9O21P+DHL15BE=*$G=3:"DX"?Y[/]YU#/;;@0; M\&B]B>DW;[L3%;(UB9)@3=$?M:U*CY(GRC*7\6S$):[*)-O3; M.5N_E1O:N^]^>/>VH%OL!QD5C\R"A&4T>/=S,&=))K91L9U&E O5@<,9G1^)_?J+XNJ8GE%LS2:E[< M4U//:[U0=4N7)"Z?/?D2\1K"%"U:T[0@?%:LMYP'2T(V)6$TSOCNDP.%U0?_ MNF3K=91);N*3)+P\9J2KB,]CQO.4/@HFNA"/_N,5B&Z#.,590\=DQK.4S#,% M*$ /IP@>=LM>[![T1OSZFJ6:&PY#[R.9Q;2)UA>-='0>=M%).G_#4B'0_O,; M(127Q\O?Y2NCX3^_R=)\/UQU%TO^8L!-F @HG?67\W+$ZK5NZD_YKHBJCX4V[M@ZNNXF%=> [ ?,SGEZP/Z/MS5B9V_B] ]!2N?R3S*?L[R@ M.-BD+!&_SXMVYA*VP9#.A6YCVKP<[N7PLY9//]'GR7XMW+U8"G(36Q&QA?&; MY+A-)+8TL6!YDWYA^#!8G2X(G$ M.366V6L[.Y?.-51X.=S+X6\G9 M2\XV)6>#PVT3"8$[XR%8N5 S@7C1LH\>*Q%X]UX2*"8:0Z M*WY<_YE'0L&2"JY!I(AI?R_\>['9B\U>;/9BLQ>;O=C\(DBDW5$ZD C]MX"2 M-(F2)0\$>3P070.^(NE^)H&2=.,XK@5J($%>KO9R]5E+GM?5*KBCZ8-D_R9- MH+&]EYN]W.SE9B\W>[G9R\TVY6;@P>->3@[9/"]^(4D8T(+A@BA9,-$W.\D, MU0G*P($<2LI&%/4B*D_$XT-)PON8+&N$P-KO>Q1++^5&DU)RR<+7Q[?JZSZI MR=-48A55Q4?ELL7XC%KX7G]4)]8UMG=$I MYPA&Y4E+!S3>'%:A2O2%-G=+;9W@"VGJ@,J2V]1+2-O. 7W_)R=I1M-X>T\W M+'VM8 ):.J#Q,25"8I-OKY%(55,75(I'Z"@[^KIWP\LD#%/*>?5#KLYW2BN, MIJTK.N4)-TT?V;/:5J1LZ8K&.R9$F/C_11O%*=W]2]A2556^T MM"J:]T[MI5@4*8EOA'CWY7_3K9),1;O^Z6/K-4L>,J$-%+H!G^9945E)* QJ M8@&=^J>\%,O*'5 \6+[A6I$#TAR'D1@7-0Y-UN5CK] MVOIFO5/WL*)QW+2XZQKU3]F:Q/%%SH5PR-4'26VKWFE[)%]N0FE'6D1E2;^& MS:>A_5FY'P$T,6D26;%$O6>KFO1(U0.=YZF8A'??SQZCK%:W5S5Q0-7UEWF1 MPJ?80W3->J1.J+Y2RGS8KFD"HOL%+;I3@S\0TM_00M*Z@(#H?D6+3N."@Q[:_0>ZM.9&K6,, MB@^K5*(R*$)Q895(#&Q\4*CX)!0#LPP4)#Z1!>AKA0+$)[2 W+10>/AD%KC+ M%(H1G^0"=6%#$>(39-2A=%!,^,07O7D6JI+CDUST!EXH+GP2B\8."P6%3UQI MMGE#L6&53R!1$E",6,43B'<6BA&KA*)Q\4.A895.-/Y7*#2L0@D@I 4*$9]4 MTN38AR+#)YN8!L4=D+I*M)FSA+,X"N6]B,&,Q/*>P("O*,UX,"_W/YG&';$P MR!.2AY%LMR'R\Q7-A*H:[T$W)^-8?)C#A!WK5/O\]X&""<>1_SZ)8_8LF>P] M2Z]8/LL6>5R52N;W=$ZC)^E5K8\TZS2&V^I9ATWQCJ33M+ IA$7MNUTVH@*; M0<^A$)7;_"3/5BR-_A(KO1&)JL>P"&XXS^'4OVP]+.7J8'63+K[N@ONZ"];I M?$PIX7FZ+5YU]=:+%ZX@N;&]#QKS515\N-C@517Z-VV:0>H@KE-""^_NV?'?'527) ;/W;/3MB QA?!HXG,P,(%%?0XZT\WLISUE4.I^F2)-%?!>M?[FVDZG^K*7ZAY+_]W%^<$'= MH*>7O;WL[65O+WM[V=O+WC9E;^,C:"!Q^H> 5(Y!(6?N/(.&/5W?R (!C\]L-S974Z!NU5WRXVEV M)/6)OPYO1_SQKX_DWRS=/[SF!>D;]4Z?S&2:+EX04,O@H+;CH-;:VFP5_7L2 M,5++MM#F3FF_*(/C'V1LO$S++,2&4XZ&-A^<]EK6@7<8*_V#\O\E$T3)&EM% MK8Z(_W%!D_EJ3=(_M&B@W5:2Y8'N8A?_YF3^)%]2*E07=/'%4E^ M_>Z*;/D=X=E5KA>S.H\W./JRNE=%FV:',^J+"Y5VUS#L?7[(!MT;;QE)^">6 M42[+?]!)$DZS%4V/*(;[F3J-Y39"3M+U26SL9X^<]?M[CAPY(@W&1&=GU, $#VYB8N44'(TZ(8LI::($C MP5IO2] !UMJ',*(V$\Q91\EW=&$)'?07=%YOTS?6 +^%HHHJAL/5"N@G^&.P ME0!SKZ!C?L IS%HH3"@YVHYTTHEO+>646^1;,U8X2?D6MTA&.@)HZ,L7!S2QVJ$P];J@YA@8N] M.)"%5%_,V>]1MMI)LTT!/J;=?6R)CRWQL27H@,!. 69T)(_.+6UP%*)1H6#O M@T$/'51:O1VFQ&!2\P89;Y Y8X-,.R%P(!O,3T&4B$8TR,B70^%EH/&EOK-K MJXN."F]N^?K,+5^5 M@>3AGP,AMY(H+3YABR!FR3*.GF@8D") UU!"A@[G6F8VH\M+T>U^N2+JDO$DJ!O9R6QFI*NT]F?^9 M1[S:0>L#U%&G*1RF;^V57Z\X>L71*X[])94W[#^L]2$R M.C79:$M&IW?!WPXSDM%0V0;ZX%KO /5&'F_DZ=7(8Z1*#63G^27@\M;9&1$3 M%XC6&\&^;>YW;1S'M64'2) WZ9RS2:>[#>69I&%#1=G:-@-IL-/%Y1&KW]-8 M7N=^R7C&BQNE+^1JN"-;N4P:+4&61O6ZO!&":[%!LBVEQ67@TXV<<&VX>&-[ MQW'C8NJBN6"/@AXMY=JV;NT1>RX^YO-)FI)D6=[J>+$]X?1BV1_6?A+>Q221 MN:%:(UZ?C_)S!G_4H+92;Z_#(,U[>]UX['7U,A9SN:^.UK"GD4_1:=B]OD9F M+#6A,AX-NA8PF L1\0] =O6F5&]*]:942Z94J[:(@4RMOPH>G.W1 >VJ+SNY M-J+6/;V#Q;0H]91N2Y6C^N.@;50?_&MR_4K#./T"A[44%S7G9KM5A.--PK#@ MLBP7BKF\NIO=J M0FJ^MO#0]RRET5(<-T\L?HJ2I3R(-;?1 II;(.J6)*&05B_R* [%0_A-:]V7:UP*YQRS[0.?B+ \OMH?'D21?B-,_3P4Y[\D\BL7>H::_ M\V 6 'T2-*PF:[$MS$DBRX_=D32+='P!ZV&!M'N:T&<23Q=[%KP4,Q05 B3_ MS.5D/9 \C"8IF8G=Y"&?\4AL*ZEFQBT-:06/3Q1@H@NJ&/!?(> M]%))S=?-,GP4C14:#4$F77MO3#=1_(E6N?K6H*5W_=/ ME5"JM535?=\[5??2F*DHVG?RG1MJE#-4\RT>BMR77YS31&SU['/"-W0>+2(: MJHM&-K4=![7NY]B7$?W:RHA"J=TQ:1.E=>UZI_)W*L]A&D[$D4PT^Y>VG=N4 M/\+55B%](Z=TEB+KS@R@B>14-QR07FUHE*[IF&@>-!SKBLXR>-F@AM;.*;]) M>);FA1];S=GJA@/2VQCXU]1\C+0/R^FC#X\6]&P8)_&'E.4;?I/,XUS:KR69 M+,FB)![U(FB,BV,NQ)@KG^,X\V!38I!3QR()%7:=6'0\WP0^6#X MX8/AK=/YF]!@Y<.E\J59PJIF@]&J969UP['0:[+6A@[&]@D2Z!,DZFW^K,'X MC@W!N"^9@*6PF,A*K(- @A&[QOS 3-5]C/@TAD-F8JS#B$TI(##XL8P1EV.% MCEFV.F":TF;G"3/R:8XVU:[)@8 N#4.[);%6832HLH2Z;] 8$M\LW4/' MGYJ#Y;C8F<;'B)(=VYVIG5CQ>S2LJ E30L-_*NV)-<9]H>(WJ':(89/K\#;4 ML8%H(, VM/:AF4"@/Z#:!0 !-ZAVA&;Q=?<.+266H=M,NDGYG;:9']&PKJU$ M^?Z95FG'9"T2DE QH\OT_Y_0<-Z0SF@T3&W+C,(ZI4*B6@VCM6EU6I<_HUN7 M36%V^-90D\F=V8M$<=#L?P)FA+,>%;A,# M@#$J"T:Q,LFSN,E7Y? M**03@N*\N61)04%.8AERIUD%3H*=_NC,C8#WPDS,&ZB"1.PR*H9@$9\[YW/G MSB]W#D]BJ9E% \UZ,9 F6'N+,*JU95?8ZK0"\61$^OM7C1%Y3W7/GNH./IVA M_-8_!EDJZ,K3;<"S(ZJ@_FM5?^=^;#TAWI]]SOYL;\#WQM>>Z'RL-I7BXOJF MRP[TC;W1V!N-O53LI>*O32HVV1V'$H-_$C\3R0/B6S'\,HBJ:C,\,)6( 4,Y M%X[!-'DY^9SE9$4$XX<\7MPD/(\+*U%1DT(=7MG8V )!_XL)_OQ-L*_86M24 MJ%OU'MIVR1+.XB@4JRPL7DE$ZVY#@30=A-9:[H&QJZ,'O\//H*=31/%F'3WZ&H M;C@6>@?E_6-RM+>7JAL.1N]C2A(NEIPLI'6Q/?Y&$]YJ/H"W]?E 2V\S0P=$ M+7K6$@/JZZA,TZ8[!X:X M-D3^ P3%FH&&*E10 BYZSNSK?#Z3:$2XI1<-LP(E MQ3%OIW:$9N]VQL&P+=W.QM9+]SYH'BV3:"$OE<@",B^*TDHG[4;PXURPX?Z7 M'9W-KFC3$1UZI-N1YAW3Y^R8[FQBG.P9Z:YBGP;O3','I_1_HL]'%*4L$;_. MB_7""_JVY?]-GIJVPSC%^HJ&AA?5T-H;WL\@R%86ML#]?T3"/Z70QX3Q?;PKWP7N6RI(,5WEYY^&N* V_V(IM M/,SG\HZM#SE)B1 3&K'W\ 2O9IZ!F@E:..8K9!2*HPZ6UQ>]ONCUQ;/7%Q5; M .LD-*!3FII1]B8>#*1._1P(U89$:?$)6P2QP!%'3S0,".,W!:P[GJSF #\*!9.1? MRJ* ,R+F*1"M-X);27NW W0XUU*Q&5U>'/;B,$@1.>L^<--'OUY!=5L*:E\6$R MSZ(G\:I!8J:]@8>N?5.Z_>>?7N:U#O>A7-1NU,LB.- :? 4O)V'U/0HY@UD/'@;P$E:1(E2QZ( MR>:!Z!IP";6=\0 ZG&OC@1E=WGC@C027-*VE?A9+6_I <2,1^]UT0%]>CM1.I5=V=7[2@I<.+ MS.F35=8>-J&R-:1G>)>&K]S%[/B6C#;!VHUF ]#N-EBOQ M&/(D.&99WD$I[_GFQ7' BP33>T$' $_'H9PJ"]75YCP#:0T-K;WZZ-5'KSYZ M]=&KCUY]/#_UL0[KBM2*I T#]B 6U%.QS* M_/,N2/<^X6 N6+6E':AI'.<&(1A!WC)TSI8AB\[40^2$W,_%6I<_KO_,HR<2 M"Z8SB+$V'LEKP5X+]EJPUX*]%NRUX//3@JT=D$-)T#\&62K$_3S=ECF +07H MAF&KSX[,5GD/C\6/%2$79\L;V,"3<0F4&]O9CLQ60O)GLQV8O)7DS^ M&L1D@T-Q(-'X^V"6<_%N. ^JEQ^D=,/2XMJID&8DBGD@>20G^U<,%)?;#.U: MA&Y/HQ>KO5BMN[,JESN(5)0E-\DMXZ'D+Y40VMS!"\_NA6!4>3%XB^GOH97](UZI^\36=-7#%*[UD!MQT&MM6VBPU7%_'Z_ MP]>R+;3YP+1_H@TW+->W'9[J3RR9YVEZ)$A"Z#_MY19)'+-G&>7YG@E6SF?9 M(H]/Z50!,NKL%-=QR/EM53JJ9J>$-A^<]MHM"=YAK/0/NJ]>BJ5)Y:TM16A[ MQ/^XH,E\M2;I'UHTT&[G@ 79^]GNR=.L=6BWH;$\BN>;P7C=8U@$=S25'Y E M?0>%4--E6 QR1LT6R&F/\2(8=G57 O8)?5KA%MC+*9(RCR9*E@>9B%__F9/X MD7U(*4FFGJ%-,T6]'TH$M.BBOKM+L(H(=;9R01K%+= M#RGT8BWMVK;>Y>M=OB7!R%R^>B -1EMF9"_%! QL8V'F%@V,."&*&6NA08P$ M:[TNK0.LM8]@1&TFEK*.$_R,7*,C' ,U,8*/A9M;ZE"=>-A2*2X+/ P)Z4+#MC!#!8/% M\J'BSXY&&@QB;4_G)BRJ# U4,Q9M"O8$POH)S7;B4T>,=T>?.M)OZ@@@NM.M M'F4-F;G3T*V(W>\K5 6XNA7![&%L$?/J]GCH#!6 ME27UF%S1\XQ/Q(/GT884G\4QG4M>*ET,KVBU.63O:4I5'NT'RI8IV:RB.8F5 M:4J-;<=!K?T@L2:J=[O2,2V*_+K&MD[#>CY&81C3:\+U<5.J9CYDZ@Q*S'U. M9I'8G,(CS^JE-A^MN8,/^>H]Y*MY'V%&F_KHHD4,-E-4!N[F]\&@&R\J8YL= MIL1@Z?9V4F\G/1\[J7UM9:3F5*C8,I#QYJ<@DB^%!AGY0GE'JPUL,-?F&A.J MO)WFG.TTG966Z\5";E!/]*;@J$?R15ZC)O>R*,FC9%G=/,82E9)H/H!7=L]" MV0TC>9O&+!?'W#5)$_&J^70ACD0:+9.'?,:C,")I1%7S;3Z 5X:]/.[E<2^/ MOX+4]@ :K?3=;M\<2!K_.1!2,8G2XA.V"&*6+&/QLL* %/D)'>7SML.[EMB[ MT>EE^'.6X16^UCO)77>"NRY)0D)RFX7J8IA-;=V6'ZLN)YC,_\PC7NZG\M>4 MZDM7@/N=!YI!2W#44:>ISJ=O/0CEEVP]BY+B8'_(Z.:(-'FC7[:]$?*6O*CY M9C_M0CZ(\U B8;=@K;?\ MT:G+1ALH&N^J^=MA1G((*AM!'USKG:_>V..-/7U8/UP+80-937XIKT:>$3'E M@?0P"\8G%H+0C<=U;2=I2: WD)RS@:1[D?UGDH8-Y9QKVS@N';Q>R^U,\/^E M6"X9B1]6))7%,#A-GXIPD_=YEJ?TAO-<9D ID+0>QZWC66PI;$OI@Z IDK5< M!(D7[+O)6_Z.LD V?/.X_9 M*^.4!(O<'Q*!5.7#AR%BF'F6JVFZD81H _P;VSNE7JSX+(WF8O(+>K24:]NZ MM?#4\M$D34FR+$2%B^VAR1W9RH\*YBKGFPN^6=!(;G!\DH377S91Y?^[J4]# MQ221!2ZT3H(^'^7G#/ZH M07TQ!;&SYG4S4ZR;_0F[2QDOQ3W=]/7WM%'-W&_NIDWW*._O\?Z>$?M[ZC5G MYO*4&ZUC2&-U0.<.ZO4U,F,="I7S8="U@,'=A(A_ )JL=\5Y5YP98N^*>PVI MHYEYI.'7O1LY@/."K?1<__H1<&*PU:MS;%4$SA*64G=.K1+ N<%6+L^1YPHX M.[]\+;,#<$(-%!WRJQ"89EG'4!#](*[C/B#4= CR*,J#IMO2WE3]<3 U51_\ M:W+]RKQT^@6. ]MB@;CKFXOIO9J0FJ\M/+3*Z[RG3RQ^BI*E/ OK[Y6% M-K= U"U)0B&,7N11+",JA2AZ*R2SA F^361T)M6\+].^-L@MABUO/J.WL@+X M)$G$\7(O6&=7&UR9_M-AA%Y(WPFXE>#[R*Z+8Q%&=4-G&P0+AILN+E,J]K?W M9![%8B.NS -"=Q'/*E69G8TN.BTLTG68OD FU"LH$%Z O ^^B+T.Z'I M+:F<\E3LN<4\W],BUK]^,^PP3D\P/N1$6@.I4$O74M. DJWJ9X-,EBS%:UQ? M"6VL*NKVD8BM5KQCRJ^_5"D4GX0,N)JLA5@Z)R]EC5H(EL:T .]8>'T0"TY, MZ\7V('B0)%^0N20M6>XF6RW)=![, J 7LW;+2')'4CFM:JIA/2R0)F0C^DSB MZ6+_,DLN+D32SUQ.U@,1KWZ2BKV0'"J7:&;2X#,OW.CQM M1W$+P0H"AP .U7YI^J(DSKLV2*"C#0.I%7M!1^L5DOGJQ[+HBTXF>/D.S?4*&>HYEL\%+F_8V4N5-0T8I\3 MOJ'S:!'14'TS3%/;<5#K?H[]74']4XWKKB HM3LF;:*TKEWO5/Y.Y3E,PTEI M"U'N7]IV;JN!2=NIRC^D;^0VM_N% 4>3AJYN.""]VGPL7=,QT3QH#IBTC4V2 ML')Q%+Z:Z2R.EMK2Z[!.SG'<)#Q+\R)"2\WGZH8#TBLVBH@_;%)*PFGRF]A^ M9;"NW#E4&?"FW0?$=FR>WY=,;BQZV&H,)"B+LS3L %$UP(#X*L/Y]NK44P/O M,"#]C=F]3EZ*6_-PJK/U30.@XW'':NIY8W+Z1NHWU] MR ?=88X#C&ZC*K#A$RLO25->?@KLY19)&3VWNU7AGFY()J2X3%E4JKF#4_K+ M&S#V-H0+$LLI?EA1*O6$0ZB&9*>8<1E!=;$U8CF-1._VX4[G]320KB P3^HB M9LPZ#8RC\JC+TUZEX\ Z#8RC#)C>7<$(AZ+HYQA-)G0.OHORF>89ST@BET%M M6)!I-[=8ZJ+BRAW]@J4I>Y;N6[(1WYR$%7898G",QVKCI K8OSZ)RNTPPN ( M*^]GE[?8-,3@&.^I%*8$95U0-@\R.,[/22X3Y"JR9$!R5&2?O*?-%J'.XSE' MO]\B+[4"J:ZI4YKO4C:G-.3O4[;>YW $!_56TAS&,FGZ#H7D@ ML:!(?")$TFPK*Y%(T596'-^LU8S58@37".NIN=@VU$PVZ(D#D:1*JW\;]#P? M1(-:#Z3.7*3S<\@>T=#:5]([@ZN%CSUGFLU'U6PP6K7+4-UP+/2:[!*^NF)G M(/61E*PAI!$;@N;(*V84!H<)7QLIB'40-3!BUX1Q,%4K'$4\8?@TX5A,U6HL MV)0'*(,?6QAQ.79$'/.Y#;\EIBEM#DEE1I'BHZW3VQ26B:Y8KW9+8JV2DU"5 M&.V^06.HFFN10_7J$#K^U!PLQ]?]:2*W4;)CNS.U$RM:JI!J@14UR5]H^$^E M/;'&;#I4_ ;5#C%LACKC$@T$V(;6/N'5;3U@2[L ((T)U8[0++[NWJ&E MPGWH-I-N4GZG;<92Q69$5?;[9UJE'9.U*/."BAE=WAU@J0JV12E^B"!*-$QM MRXRR6P/M2DVB6@VCM6EU6I>6*K!;7)=-Z8KXUE"3R9W9K6*&>@=I"BVYM?6YF %0'U*VE:"#@75ZYN_NZ M+""'E^-TJP_:16^Q%#&ZG0_@S%!>=X)N$P. ,;I$!MUF!7$]=7Q;_;->@RL0 M4'+.K69N[V+T*0@&YJ%9PY15R4(W>X/@W7;.ET9W6G0 MYCU"*]>ADU;;O]T6.CL7::$[5=N"-KMVRZWQLS_89E<< 5'_BAUU M/Q=Q0:42=QX19]/3;B*PR&L^!P4)A99;-<* M6A(3:O_ )4QUN <:"AB7T-3N"FDH5G3"DD&M2RA&=&*305U2*$9LDI)1<6$H M2"S"40^7ZD*G (N$U/)J9"A,;')1VRLJH'CQB4HFI6VA*+%)2M"RC5"7"A9) M2:>N0HNC0C%C$9;J5ZKZ\A4H/FP"DF&-3BA,;#)2AVN/H)"QB4R@FU0.X/[Q M]A4V,?@?Y3?%%Y*X>[IX(W]^OK_9 XF2)S&3+.7?;H3T0C;1AGX[9^NWNYN% MWQ:H^([D(&$9#=Y]%\12E.-!2#,2Q3R0 0Q"[]I1I[JBV'2<$B6/UIN8[H#6 MX*Q:OWA#_0 K":*%BB4T:'AQ0$[GWR[9T]N01F5=0/'+H1R@*GVT*@*HKY+7 MHE2A56JLE2MMIDJ1B'I$F#9=N-/-VI-9?K42JHO,8"D4&?5-V@U-+1!SHF), M%\<:B)HTHXX6"+VBI17F)JDLPT+=D7\7SF[^NNJI29<>B=NKJ/45REOU=4&N M\I*?MMU[)/I>Q@^R1<[IA/.3^\3:=+5 ;&F+>?FTTJ)X5QK"Z\@$=^I>6;;I M;OJZ^BS'=].KZ[?T255=#9]CJM0U?OJ^$5YQZ[.B:!*&^^GQ431HM?+CQ/M; M^4@IU:MK5#.O65>* =G>*!J$R@M@-2O=\> M072?M!Z0C6,3,A1"W."U6 M6(+)B(Y?8[-_"/!>F(FA&1JY:)U/=<63[# JALHTOE"W+]1]?H6Z\52Q-[/= MH5DO!M($:^^;0[6V[ I;G58@GO+KMFI8GU^U9U\6P_IF \X@ 'LKW1X7=B"V M<\V[W5D<(>T88X\E**Y]. 0**I< J, &"! +)D";2WN0)C8,@5 UFT@-FQ9 M 0:6;R!";!D!<#1SO MI'7OI.V!3CT#E*_]G1* 46^GR!ZK/;2@\6%%BBIQV7'-L%=@FCMX][FW#WK[ MH+!X7CM^BK* Z=[6QL06"_A<3J^TWL1CS5)/@JV[5>UZ6K*O(XBB4=68*CHHH M5Z2Q-34=A-;:Q0MK/!9Z[>= -- ]?4YHRE?11L$(M=^[HTHYA8H6^"@;-*OE M8Y2P]*B6[IZV0\F3B^W+G;ILHK +=!X/'_H[HDG6:S&"4X2?:%9>)WW+.)]D M61K-\DPJDX\,=(9W'LAI2NY>/K)TZ6^977-J3I M]J0&VBLL789RC#DN2M>15"%@-S<<"[V#[N;'Y-0*F,T-!Z.W4!%(>3W'Q?;X M&TVFKOD WA'CL^7V)BM,YO[F;+EZ29L!Q%UL2!J51V:FMF'"UV%K8O"#<'2N MJ 95$4UJA6XM,:"%!I57S73GP)"3=-5OD@8"PY-=9\I4 46-+NNONC' ?$#8_.BJ#_<<\8(LR MF63%8C'7/* %[4&>D#R,CFZW:PX,Z_H$AP%B=DB%!8JI*L\?[NV6%X[0\+,8 M*BW^EK=@RCLJIHLRI%"&2[YGZ2/Y\GN4K21M@JM>6:RMCFDA_N=%9.1O),YI M=;;5IILTM^Z_3C/=\\$D_'?.L^*B&V7=YN;63BE6U-^N;^&2,F5DB+(-3NH& M]75.YO-\G1=:^#1;T52L\TU*5U*+>J+E^:MU@1KW=XMN?TOY'8G"F^12[-\9 MB?6(('T[GU/ MYVQ9GGK%AJB<"#>/=3J71^>8E@N4[9Q26TE[8FI9HMI30&W'1?6@.^(+O4-! M=6T;MW60%9NM)*BZ3[JL@C _-LM.DK#XJS3:'19X(;T)@4T!M]^'H9DWL4'% MA/-H$_[HAR'+.4"3IHN+OTO"'.2M?8;6Q/H>(<7:^J(%G9;IA(I%?; M;%TZ@E$?'_]U+HGXI39_E:>"1TLYK63=XO^+UY*=$DSKD=PCKBPP)7OK -4V M'*Z@0"F2:C?*QO;#45\EK\I+4C_2;,5";4RV2==S+O'0+_TOS&&'Z84@:>@Z M5!RKQ>@3@W,0C0\?I@LRL)H[6$2H+N0$]F)8*QT3G7,;_"8-S%;H/-I@D!!% M )WW&HP.>'JC;2=L7AT4;.-#A(T!X;>75(#1>N10G5W"@&!8JNE;VZ2! +%5E(?DS<2*MM@*]K?X/Z# MPL(FLYD7I=3CPR:\=?9CN0^^+@I2_ABD](DF.14_]\)5\7LRC^*H(%1&((L5 M&V95@M%>/UK2P\&@IEO";Y+I@S^EB]YQ/]+6[%=C:'DG%36?A-/DL)0JQ MLC.YF9:72;U^.Z;=+! IW0JRI'2Q#]214]O QH-Y%JV+3-/*L5'[<%4CQP&T MY;Q+'>U2R'Y",$R+=,-3[C+I,CB&DXN_ " 4EX7YL"B785&^+-:X2L&<7^44 M[T)PK*ZU$PU&YE" G/DC\R@TR5 CL_TW"O'C--C#M(&1F>+-9=&1VN,-Y-2! MC%4_!]%Z0Z*T^(0M@I@ERSAZHF% BK(EP9*Q\%GP74M[5.OQ79N<.A+JK4KG M;%7JK&Y]J)A'H6B]_GH0VNH\XU5!L!F9"M[UM!E(P/ZEK#15A.,%\R-?=76W.]L4?\@0M"=9@ZJ=F-WQ*:Z%;2OD M>I';B]RZ0CW/) T?Q1,UZ?6U;=R69Q%+CFTI+8)=I@7;:Y.*&]N[+\!P$H4S M2<5>O"QCS+:')G=D6V1)R#DO*>?77X2T%7'*;Y(RN.>1922^2;(T$C++7%<0 MR>6C1S6GXEQX\ G27C]91.EQ0A[H#U-*/BYYS6;OPLA9)71[\) 4TP0\$J=)[) M3RHR.0GW+- MD>/Z\;CFEJO0'62'))0QU)_(FFJKJ_7Y*#]G\$<-6M"N/2"5W-+' =0+$>[G M^20'[G33FK7>M%Y!OJ>2M\3G.Y]?3N)'H1&_T[T#5 0B>#]E;/\DSU8LC?XZ MSD\K41>Y*B^8ZUY.UQ'H:G9T_'A!EU$B)^*"B.'FU.P-#4NB=YRR#N*G)12J+BBY^3]FX+,\F)'&3/66P0=^$EX MHN@,2?:1=.<<2:UA.D MK]65#^*)FXVG%&05P6##$C'&"43&S%VIM/$*=.K2 M_?YD*IH5H*H%2,/=\@MW2Z]V[NP/[^.2:ZZ$>S&1#3?":=KBBJY1"F&BI:^,WD[GUBAFU"$+\:1XO[ MOHH/@[BJJRT_;!<"V'I\UX%_'0GUX7[G'.[7V7S]/DIDHM"M9*:FBYBT;8>G MNMHD^972.0WMA@K+9)'1]+\H2=]'3VV!U8Z!"N4GL4\]/M/XB7YD2;92.7W: M#H,*:\>7B?H]%L2Q7!6J8-H=';9'\:PN+^Y%?WSHGED7;(?>>)"5N9Q"_I\N MWD=\3F)):1N0VH&&Q_LY"055\BIT&I97"+V\&!T"M6D,IRAOQ>,IG0I)66A& MR=+TK#?MCA(;Y.SO-!9*U$!9H.MP*+%;>MFC>,\-LD+;8=!BUI)];><7NTHY3'E*9**.I1B6&=T8Y5^M+X'J#0QR9[ M68 \5LFK'=JQR5SM4(Y*VH+99J'01R%RV86,3>X"6:RA!I!1B%+Y>DW0K WF+OXO_Z)]Y]$1BN<$$) E/.K6,=.[GZ<[CH/N$X:.D M?92TQEMU*1AGDH3RQ_6!O2;9)4G3K=A.=16QC/HZ1_6*K$,63D7VRP^.6FK0 M=AYSH.*']6]* 13:S7N!O1=X+ZIX+[#W GLO<)]*0(O3=J0.7[,#:*3N78OB MQ%"ZWX]!E@J5-!=Z2GD]0THW>3I?%2F=4G-AZ[78LLKO6FIX79[A7(_K3JS7 MULY96U-4FK_+9W$TC[>3)&%Y,J=EW8#[/>_,9WOMC'P8K M\*$_4JMC.QEMI-;'/D1Q]V9(L=@YBZ.0E#?$5A_S?=3$(F;//,@3DH>RUB+< M]MAR8(<&QTX4>BOC5VAE/ XBFPKQ<5G>H:VV*H(Z6"#L)IG+K9=>T?+G37(I M#O&4S+/?HVQUF8MEL:;IA'.:39)0E;IN8ZA^P%1/O:(;QJ.,OP,2KNIF@G^/<6K/F2EEAIR_OD#E]66NEH9U.Q?AO\4Z M*EZE?$?BU)Q',?U$,['@Q.JZ95Q\+IVKXN4_1>)(O-A^YK)T]3Z>>%)>.1\) M,6C&BZU$-3\]/FH\P7,";)S+C>$JXF+C(O&'E.4;T>-*!I^+.2Z+BY\>&17LZR]".D^6]%[L3->+!55R[#!$.)WG*[J@:2I7F5R# MQ99=;MV7XL-(&0()[>8:BU#IP@N:B%\R>1F5W&66B53,Q#;S08BRZ!95II 3N0-6\,YQKY)Z3PJ5JSX/::%?BTDD35+L^BOXG,E3GA7IYC*93%= M'"^5:=)'Z'*/3QJL/.A=&HD#=D/BG:BFP [JXQ3%;F5-D_* *NP"TT6AE:A0 M@/HX17&T-=Z12.X8"M+5#5W3^^JDV@FT@LV+BR:.1%@U%/,QD* 4+*\)/0#W M0X+F,,_&@$Z[#HSI>KV)V9;22I?<624B S9L'F)@C"\V@8*AQ#XP71Q]W.*- MMAET\'EX$N<.2TU>;DV?@5'L-=9+LHDR$C=HQN8##(U/;N6O:=2><(8##(WO MZ, MRM3@)K&LMI7;4KPL60HJUE=TEC58'W5-!Z59&S^K;SPVN@>-^!4\6F<\A>]< MY@,@Q==PVK8?" />F\(/WN%]:@9 BJ_=^P0,A %OC7/##*=F *3XVKU/;%Z@ M3RR1@233](ZD6?5'$155VI[>1U]H6 HYNU@IE:&YPTA.$1_Y? \Q3M/%99&T M5WB!%0#A'0?!\\BJ>14L)Y@LVTI;OXQ_D.;_(% )Q2EZQ?)8M\GAGDE=# M:NSBN*#2($E)7):I,%Y"3L;']8-07MD-I=0%0?M+6 M?3;YA;32DODUCJM^]C]GR3+%BZ+MYU@U)L MV-LILL_)3.QW-+RG3S3):7W$/*RQSXIVDA5M(J^R#D(A1NS6PK19.Q$&XYQH MG4>LR>TQ)#Z+F?%VX_?1Y<\#>929;=6HTJR'6^)GDE7?VIZ!CMM-CBK6*7,+ MY0KH[X#OQ.F64MHMGETUOJN1EKLI?]D771\T"ODHZDUS[=#MU.XFRJ3-%-T2\W5 M-$&\!^CJ,#GD(0MIO,#I[DMCT!RMP[=(=Q.^3VJF:A6_I]K87:A&ATYZ=M]- ,8W2G MI-UUH2_*!@3O[CYH^]MAVXQKX-2XNT3:]M28IX,"I\3=Y=)][9B-Q3& ,^'N MSFG;,P'+!X=*4V.1)]MF=*$[3#M9CL&)>NBTB0Z CC7LEEE$Z'0+2]/1,=D( MG>)A?UJ,DGO0Z1UVYJ-M=C,Z^;O3W@E.6A_+W@D!I%@5M^I$A;%LE8;H@6D: M8]D1#=$;%"X5ZM%9 M:^SP3ML20.@L-7:FH_>RP.CL.G;F; 2.K;?5]F7QW.6A#F8.FYH/2?D%X M- <2_J+MH%1?17%^>J$;L+53RC_01.R)L0R%#]=B)Y:O7HC&M H54" ]G*+ M)&6*?.B=O*E [.") \R@H+-BM"K 7(M>V7J0^N"MV2LT,$VA"YTR?)N./#;H MHFE;3%.#:P==A*P1Q([%[=S%KQJAZNA=P1=IVAX]\@T:)N/V8>)!)Q!;!MEB M^FH,A.AD:>>S!#,7HY,'8 L+%I6%;JDTDJV!. 8F[X*O-LX+56RPZ+9)Z4K: M5)]H$!5'52!FU':HL,%S<$0.&Q/L XE](+$VD/B(GTJ1L"A:I0X0 /3 @J!# M\)6E4;',Q-[Y<"?+3(LCJY>9Z?(4]V%)-4!.RP7S0QW9'S=SW MXU#,76$J8JF0D)/+/!7DS;>/J4 D9)*RQ'GQ5UPF.9V@-)PY.P]#,V_[=UV; M_MH4HVAM8!]2YP.W?$"+#VCQ 2T^H*6[X1];G(KM]5!\@2:NY["W.7,8O>)ZSH8VJ"5SF;R1JC" M7+R[$DKY.2T=QD)(RT@4[\_.9L.ZW>VZ=?$H/V?P1UG;-[W)TYL\AP.B MW_D;;R^UN>^,SA(,.#71F9YZ?8W,Z&Q&92D?/SC+31 MQP8R!_TMH%7T9QDF*+H&7%(=\'R])NE61A7NFQR^;6<,LO0TUZ8@JV1[0Y W M!.D,)N+QH0S CI[H YWG:5']_?J+=%G0L$RV6V_RC)07B9_$>:_EK9$J0XO- ML7VYU3,NMUIX/*HBY.7E,$7RRDNOSZG >22/*D#:&]B7EO0&FB&+3ZFRN@ZN M>06@CJ,-C]R743/#V;Z,FCAN"MR%\E3:$_C.NL05@6CD7T45F=7K;5C/' ML94=ZT$;!I\NC.*FY>-+V'EY\6!M9!VLL5LK_'R>K_."M:_H)J7SJ&!W\7M,J_P5 M(7^D6?17\?E=*BO^95OI8,_$=_)ZU8W&!&1[>*=S<^8BS\XLX,S$UC#3$K!^_VTACSN!&F9$&F,%]+R.-&P-XQD8:"F;@ M(1AI:)B)8VJD,6*&#BL@2G<7QG5"J<(V4"3<K/"WVG88[W;T;D>ET6GD+BEO M$/0&062:39?#=Z0&PFXGTT@-@5V$R9&:!KM)6^ZU^1=7OK[(QN)!94R1=<Z>G'ITT[TC0>A M^Y[.:?0DJ?E$,QCUNBZN,0AQ(2RK SR2+Y0W M"W'X+ZHQ 6$/7J]D-0_T!B M00=;KR,NU4(0 GV?H1)Z(?<^J7&U&<4MTC LI"X2WY%(+(%+(5AE)%8ATK=V M2WD1BJHB],67 ]#5P/%U;8:CLN%.:&W; :ANS'U4-1N45M DJYL[I?V2\)60 M'.4/&>?S)'9F<ZIFYI9LGRL3(K-S.,MO$@=-\RDNPLQ@U4US7%4,3(%V/RQ9CLE#$"&H:T M;=U3;7)D-7=P7$"&;D@45I?3":GK:&KUR]J@)XZ2..=70LJ77O*EEWI =D]# M2M>% UAL3M)FQV(Q_O(FR6A*>58J8SL[L/;NN2Y#.<9<6%+N2*H(HVEN.!9Z M!^:M SG:\H3JAH/1^Y@*\5NH9A%+^,7V^!O-H6(^@&-\N[NSI:-'?^)KVSJF M.A.,3,/=?00O,OP7T3Q20X!V]%DG9W"%']CRB,36>$I&@PFIN8-3^A]3H4WF MZ;8@J_2_ZCRT3I#NQL*^& MZ).???*SJE1@A>(Q@LP%B%+EL=# Z>JH4N.1V,41W$ MAB[['(S)V&>*KD0E&"K4.H*N5"5\.S4-T$=7LQ*^WW3F4&PE/V!I.DC/>@W9 M?5;Z=7W*PV#:+QKK^L"'X80F82 ]\6$@ZR/KD1[X0/YLCE5#>LK#\%F!YOIX M-X&&?'G!SCMHD#^Z$P] >(UBI*O @>ZT,X-HF/N%[LPS?J'0FA+H5J89TMO& MA ITQR ,8 _%?] =F 8S 2LVA>[<-&/F'NXY<*<6M]JA+.W#[FYS,$-IGKH/ M!.SN8H=6K[6IF!14F, J,%EB6W=GCK&X.SH;#XSV8[" I$;,0B\,I5&= ,Q2 MKYFYIV4I$![IMRAAN/]T/D.R)600& MODUK( >1@&$@NV>SH5NVT$@?6)H!.ED*0/@+)4=7,0Z="&4&#E3S$YW<9(81 MEE""3C8R VF:PX9.-C+DVR[5=Q'NMR;8F]+2T$E(9O#,ZGT=P#J]3?/'(*5/ M-,FI^#EGR_*!N\]X,-ONOY]+K:SE)9H=GU+.D+N[,ZV0Z^_E: X8/[M[.:JK M=::+^Y)!WHO]H\ZX+';VTB!9@/6SDM?)QMKV+-N(A#ULN M96D9;UVYMH+;CH';08BD55=HZ*;5M'!?CZ+J16QC)E^LX@W(=8A^6F_!B MMT=/%S(>5+BNJY(0M-LPK),O"-(KD$8!B1G))IB@ MM=GH6*>]Q"UZ"^GD,/$8C8L"QH@,).DY=DWH$^4[K\(SJ]!A+)N@8=%VNP=K M=RJBXF$7VRT&-K>Q/[6V8J&!VIK/.UO#T/E;>YB")J.:VSGP=6M\W9KSJUO3 MV7*&;B/2X[;L^AG(M?SNNR"6T9X\X/EF4ZX*$@=SPE?!(F;/090LF!BM.Y#^J]'_HK]$,?IQ-,9W&T+%B&JQV'H Y.#97'%.U" M4._(5BZ)Z2%70&&P-.L\&*Z[-$KFT48&+1:TJ1P H#Y.41QGO+XN65ISOY>J MZ: T:RWY^L9CHWM0E\/+Y(\&5M!^C:/Y.1O->[%-5V7O#0S2KWH, MAN#5MC59LS2+_BIT%P :0&^WUE))U*58VBH#Z>OO![2%:LA4-W1K4UJ)UUD4 MLFF@5]W0V^S.('GE(9_%Y=XE2Q*HZ*QMY&V+WJCAC1K>J*%1^<$RQ!F9-VJE MO[.P:9P>_B.U9S3)-",U4^B.:2 DES5W0!5QFUZ0RI)2?2[_FXDAQ"?_'U!+ M P04 " #O2(A7VVFP+"IL RT04 %0 '!P:6@M,C R,S$P,S%?;&%B M+GAM;.6]:W/D.)(@^/W,[C_@:N=LLLQ"7955_9CJFYFUT"M-LYDIG:3LWKZR MLS:*1"C8Q2"B^) 4_>L7#I ,1@1!@DX\F+5FW969$@AW.-P=#H<__OV_OVT2 M\D*S/&;I?WSS_G???T-H&K(H3I__XYLO#V?+AXN;FV](7@1I%"0LI?_Q3__^7_^'__^?YV=?: IS8*"1N1I1Q[791K1[))M*/F?Y_S]S^,_Y^*''UD8 M%(*,@TL@RA'PK[-ZV!G\"&CVX_O?O>71-YSJA$C292RA]W1%X,\O]S=*F#]] M!R.^2^DS;-/'X(DF'&/]'P.._=!:'&*I"9V"8SZR/]6#80)>Y2J@%>I\-;$]*V@ M_#RJM&8S-PL/%K'=QNLS.)K>?R^5['^#G_S]DH7EAJ;%,N7*HHB+W4VZ8ME& MZ/<:C$!3SJ U7J*5P"G!LFK!!TL>.>]9TJ:F%I%.R9_1G)59* ]5#AJ.?9J> M?7GXYC]KV(0#)Q(Z:8'_]^_VV)ZN99G5= ZR< "W:L1W(>,GZK8X7-_8T MLDG,..4ML'+*)>KL]V<9?:%I2?F?(>.8"75=!$^)/@]K3V2*>0+*N_)WV\.I+0MICTCV?<9@WB3/R$K1\Z/'P78&3&?DMZ#S-9/1&O,]9X;SWF1Q2$XD\,@7Z.X;&@6L^RF@N:&[]Z+ MZU4-GUQP^'-BP,&M&.9$/?KJLB2L-:^?95=!_B166^9GST&P_0YX]3N:%'G] M$\&]@G.K'_S]8QP\Q0F_W='\,R=+F67@S7WB& 9A<<2GH[X9R95:<]OF07$) M*FBV(#:?\-X[$#$4W:^KN]V=%QK5LF>VD:8K2=@.3F%5V"F!N=!VXDAXK M\/+J,B=5-[0/PYI.B[AN79S5S_*SIUWS^S#AE_ZS2+XH&/!^:L-PX!@=Q,6G MSW3_TQP"F^H1%X ?>5<]\7P[(YF8NM](I^O(371F.MRD(=O0Q^#M,LY#?HU;2Z7L D'3O;0R<\ GP@$_G\O1H06M1F&A*ZU M-BR66S?2O<569\6:BP#+B[,X/:-O(>6RP'_*#:!$.!1,*O-IH)WH>!R*WE5_ M&VUX@N!HDPN.-HE35VA_52?"1*9!'Q0F.,';>]XS8]$K1PTEONC9 MW;[Q'6,QE]<^/N)#A=HL!0V_O=,? _OWS/VSH.KG] W^3E'B8PR:HX=%3:R\ MOSSV_>I*XCI+>3/'#Q/>,5&;[$D>S]A6_",(B_@E+G8VI' (ADO94^$R&XDC MMP)!LJP0_!K%;'##IPJ7WBZZ%ZG6$XG$TY)8:<-Q)%J#^,Q!O%KOBX<>^HX'37_BJ"6TSM1IR/Y_:P[]0).KU+$+D]I'J M86].[Y/'7-']*-E)*O=!:7FYV039#NYYS9#];S&'BR%8CD+:M'#R'_$&!Y#$ M%+P5S;#][^=XTICBA FAMN42LY2IAK^Y.'21(%R?.2-1\GS80"$RN.;J_G9,&RQS84V;2CMN7U5<:/Z\Y M)L$+S8)G6JD/",;-SX(T.HOB7*1-GT$EK*E2.@V8)?G$(>5!,O]:(7I685J= M;8^ *>&8BB HP)3< Z8S%\J)O#!"'$ULL'U!Y(JAS(3/1KR&"QQ;[J:)DC=R M=DNBIHF%!]GZU& FXC2$8+7<:#.7I;&[.T)X4%OF,+.KY7H1_Q;_H;^6\4N0 M\.^DA!]_A)(E.[!M9Y%-P=%;[MFA'Q)^LI _O]HC+DZ\X^]F*::6& >3\V:. M&]QE,V5TR_EG+;01X,TVF^8='27(4R!8SH/2P,17DI20T@8[(9<"N^JWLY2\ M23N-R+0:O7W.WIUOBS7-(* @HVN:YO$+E5D'EW05IS0ZIRG_2W''.2%?1O\H M\P*6^9D6MZO'X.V.97!I719<+3R5(IWLD=T%/:_7ML$AW\!MH>7J)=T6_ICW M^!G0LJ?\\R!)/\5IO"DW!$)&P*=5V[0[$C38+DA*1=QV$;QY>>ZW+D;,]7X: M*$>:=U6F[#0!AD=CRXYVS^KB:,X5M48]% S1("\;23-K[*$HK3#R*[/LXJJ\ M0B_;D)]K--PF2XZE_# G3:NZ,-G"$@$R(A*Q';>YS#*^%0+!\]U^R%VP@Q\M M7X,L@CLM%'#FV(N:SKG0Q(_K()6AU/GR^3D31]Q-RM4K5\WA7X*DI+=ED4/C MBCA]5EAA=SC1B+[^O:DT+1X*!G8UKP%B2H<2)QC11Y :R\ M6(*S$&4V#WQ\*?AP3:,RH;",+BWS-Z&N3623M ]51OGH]7& M!SY%D=^DLHM0_52^E$^^XI>77*=W/"#L^H#0V+C/ ; M,$$^L_2%KY[.T/H8C]KL# _])3CUWWA>*]J/\]7MT;:W/:BN5\>@F?C;(VYW MYU@/I/WJ+'"$?G5B?&-YQGM<"B0F7[.,8YW*%/9P]\AQSJ&, R=-&HE_)9)0 M)\_1(Z-2S S'),R#2G;9V"%6548(=R18H]-*X)B5E$3AK99(V;"Y-[]!@SC M0Q> 9]?;; W<0S2_?B/V<#WSLJ6FTAKQN%AY*H4])&P@QZ&RWN3,@Y?Q:PL! MJ1;Q%V&J04_OMRT%%\HC@Q^UK.PC,^Z>;H(8RHULK$:+A'N\B&BE\^YO-,@\JIA9[([1T 7+O#-_0T^; )_+ MS1/-3!MZ2/"N#;V1:,[>T!NY'J>&GG5:F_$ZRG*ON;[M]W62:9K_<#21YF8@ M8_63"0-YT@Y_-2?/U1O-PCBGC:$OJG,>!@I:.G7&@/9TXNB@:/NTJ7&(9AE MZVK_#4KT^$UU6,LXI?GMZB*C45P,53-6#T77,SZ=TC9WW],7EKS =8N/AVJI MGUE6K,ERPW)[.+"5>3OTJOZVC:GBO#9Y/FAOXE?E@I95<1;T=YQ:[ .75+WJ(TNS3 MX7IP=YKF9I2&B".]'?EZT#NDA3MT_.V,D(4%U&DT^8+(12R(7 88"G(A\[B= MVQ(ZXU[B/B[X:E1B$T3D1"L.0/.D&!58?2VZ48&^#_5HC)*>-62SCM^@DAR2 M08-Z4HL=G*G*^H7NKW&QOBCS@O&;?5T&=-?OXACS*5*)Z8"PK9&:OM")-'POXXVH#EYW0B%OU3[Z: T:IO8%-I_-;Z(:Y:M M:%R4?-?ERT&HX.ET*6D97$LS-[ MEE8X_8:"^(URED$/BD%VF;_*X<>]7/9I1)_M\!$$:-<*9 2*LP\;&;$6I[$0 M5FEL(ES$6Y2( \I,B1"9QZW*E>8Q<<"@-]1#V84/C$6O_&ZA7S5!^<7DH@!CL^70+U]3TQG#[M M&9J@KI69S$%_!)IJ*3/U^&G*['1>VXPF(4IV N8" ]JG'NNA[*D>&R*72S:" M=HCYG23@( _U#,8S4,>DMKGG,0LB"D>A@.V;?_JHRL:1REU$. O@11T MW%JXD3URY&??;H-IV\>,[LE\7 U3GX)\O;;._45U]J\AN@OQD19J@;J>8[-: M*Q*JLK4FB%N1J_*=C6N2[%,ZH75'!/Q6LG'U59O+)WU?X6TB<^HZ"$74TO(M M5@7QJ@=B0]=.)K2MLB5$4H,D/P-0/[90#S69/HF<</M1GTI1,R Y*L1D&PS7(T*@9#(+KG;"A\9'5DC M@SEPK*X5<6(?+A@P@O76."V(P&HA#^ :,7Z!@?QE+V*(X4IF@/R>U/LE@[)# M6@K^<*@1%2^G=*[D)=@YJ/DCFBH5?1>AW*EZEL3AKKDV*[ID:H[&JO#N65U= MZ13@40K:U$H0RKCR T*$(^PD>1R_7@"FCWG5O\FSJ$OM-8#2O\W MTQY1NN>VKE<;@/("O0G2H+J"QYP%.)^]S..%98#TIZ\L.O1TIW[EU3%_9,N0 MVPX9'6UHCYX JZ2U 3G3V]H8H52YC?5.\=)=[4^=/ZVH*(6HFIL8*<+3$; >!BLZ;]6> M1SAWLGU;KES\\C4NUD=1>SEX+I^A_C.)H(1+]4,.F+V28DV;8+]-D/U"B_KW MOAV;!OF!V=MDEW)71S_.#IQQX7 MJJC)]$GDL.3<<:C5P)5U^ -T^3G5Q-:Y1X+S'JNI05HVGE[.6.DH&/FP_$ K M/^8R3DH^;!]D<%/033[ =F8G1[*H&21LL_-?CV/R0W%N56I+,K^*72?L M]29=L6PCPWSZ3;N17V,C)O6@6/?(M- @(5Q;5^!5B?>8^ D*&[D';")AW2I$ ME0?Q\)=3U)NSNH42&L8!C\6S@/"2<:YU$9%" @U4;6K63G=>%Q68?LN%VWQW9!EAL(V/":]6I/TCJR M92UON+N6Y5L*T=SI\T=^H:;0:"G-564_>L=B&X9WS>E*E70"QZ@!0ZM B' # MF0C0"Z*U"DN2V,\@;!2]OG[#0"9'7+.L^A&,4_6R]8/$W$R(3F2_>KNB 8AQZPIP2.$?FNKW1T=0U"^[/: MDSE+USV BDKRQ.(])=:/ ST34*L@$4\^ML[M9WJT<<;*EW1%LZQ5/46Z3-3Q M0\,?(%ES+4"$!,D98[R_XZ<&*KQL"+)&AP#!M//G<2T@0. MW*[:AU15O0K.JOPD(G#P$<[0K%A9FP;=^K-)OXWF_RW/U.XQ2UOBH0"QEN&W M3 2K\K_=KHY-.[%"_?+%EN!-+GYL&"_/HM9X=R(13UYE4;0=L/.KLVR+,SJK M-%O=;J]]F\2YJ[8#=3XQV*>IGMJ5#=6' \8J-+LFA-^C1J"R;/\LW!K*GE,' MW:F>ZIY5L^]$=<* QVHNG=@/O7.E"6BQ7\>.9[+-(+4K\_!AO86++ )RGF9 M=#5*UL/+ #(!T'YK)5C=3B-%S'7WR)FPW3>YO(.=3]# M"L'0]*[.NR$\,&>>^;4ASKT]$B( SXNT:O,0PQ+/781=(];JZF>=8[#Q=NVY M7&IW?^7.NLG'M&CBC ^XT20]=!]9KN*#SC%(/CB8RS8?<&!U?NF[A,-#U;>< MB#$B$+.%=M!*6"8%:Y+"('G%"U-W\P+3(I>7RGTW:5YR*X=?Z6E1R(CG&_%J MR6]"R["(7T0NIH+S\1,9J..G!]!M.;^XQHED-&0O--N)9W-,<3\'U>U&;IFB MR!UF'SQ8PR*AK3>3K'?L9+NW-:=MGFS9@E7^H<\4LWZR=IJ"2EKY.?[> M(V)P_-3 S^-YO;^+263\GB##5.^*S.LGI3,6J_N;7K.,QL]5)<%P]\AIG"?" MS?@AB-.>Z^7X"9!,J _(-E?6F"S >@97)>U5F9/G M0W(S&JYMYJX0"Q(BGN461& %9@"_*5:HD8+C1G[ZG@!V!- C'#^_6GCZ1C+C MN^-5*F1@0X5=CY]XU+<&N?T$AG/.7CZ#.>O1QSR.] /\.4#/^?!B[POYR*]M M\:.;=VP51_I\TQZ[ 6.XTNO+,SR=9W1-TSQ^J:+]^3WP=@7!S7@/BJ%9T3%: MDZ"[\:X<(#G6S^(KJLG,KC)+6^52:#9Q(4),X/&;B=X,_$80CVF"BIL$+Q(C M@#EI02"QD:&[;7QFU>H4N4G,#.5=-L@H-Z4(YK^D7"#YZ0NW6O[WA(J@JC1: M;EA6Q/\4/Q_;RL#T]/BV&T;0<%9AR1"^J!I-[FDU):VRA2Z)6O@*]1*T$/75 MT,0L_S/;&^4RK*$;'W5TO\XG^% %Y=0.@A*JYGI;@'X8=K @*2T@WCU0,#JR MZ:#!U2*"@N[:(18-='(&B_45:#',6@Q#0>=/%P,/$X:>'5P]*F#8&X_C5ES/ M'XH@*\8QM$]TK]*19Z8>LI8?9/J>6^9V)'W(U ]^>A^9/I;$Y*X.IA,M_0S0 MYZ6G#ZFMHZD[2.BNY0E+GPN:;2[I4S$0M]XW%-OFI&-*Z[XO#O/LD0,E '7A M/9Z]EZQL#*V\,4WOPT'_8$.,X^99H)MU?#X*#!"WAWV,N?QS&O[NF;U\)QK$ M9CO)/]4_]JQ3_>#ORZLC-CG]Q4B6V$]@>_N_?+YYO+HDR_OE.;GZ='._?+QZ M<+KK';1B:@*XM%96<=$3BG0Z &^%5!,Y*GJT#T!%WF[1Z(YC37]X3DK$\66Y M'7,C&Z;%')Y#^;^2$IHVW8$WC:5VGD>G0#'_7(K!QET5#*-HXPIG>*8<0OX[ MWYUU,@G=/RI/D@6]1^;IV^0RNP72K+F*?(DC&IWOON10B:XC;6N@RPU^(GQ^ MRTB MG5( YH$#6Q?B1O8O6#F".R,AT4+XR"GEU3^"3BVVL_N0.R$:+9^O ^; M4O"SF4F1O#T-N*NS)GQW MS4;P7Z_,ZA%95SZWVW@MA.[]]S^^%X('/_G[AS)9036 *H\I8^6V,S5(;_!( M@>J?U/KC,@=,]I") *V9KV-W'1$+2]''$&;27L\]Q(/D(JJR+U-FGGIIQ56.PX@D4F=B87P@GY3C)=-?^+;!J11C=Y M7H+U+6/\CSJ!?^" BDNN\*Z#./M+D)3'1NW,L<3(]_Q68UNQ2+S$F10+S!;D MM<*)!!(ILLWBD))W<4HBEB1!QDU0?IKE0(A1)9U^,R3&Z;S'-3VE[8IC05X M#6X>0-3<,^!'(HX@4+D(8J@D"PD602IB[(K=F2 -"425-0C (TR8%R*G,Y#% MJ<@[EI$RC8MO"9,9]F(@% MZ7E;]5"MN(K M?6 =%.3EA/P]]X[_'2QZ_P:[T0/N$7S#9;83E=*$N;\,Q:6P\R0:'HTY,M2S MVB^2NN6_64/[3"XU^@:UY47@5(#D)Q)OMM#ZIKIOM]OR@U4_NX_[=R3ME\;A*8R]-:I!^7MM5.-DYKW1Y)H1H0++ M,,Q*T55J?V)([URP@^@P&40PDT='#5;L?7;4I;5+@95!"E6_OW.:TE7<$P70 M-QHOAEVSV@]4JV-4N 4H /MBLEZ:LI&$\JCKN2A#RD8=!:.MX!7?&=/J1_/[ M4^5'B)C1WY-7AU/: N;,8KM4C-2KDWOI-UN?V37+5C0N2KY)M]D]+>JW*_YS M$7(VL\=Q8^C.RP\W>5G6"SY*!+E])=\QX6X@7E5E:.;LW\@]$!AWX_SKX$-Y M\X(M'\N/75/[Y_&\_3Y>N:1.GL;SU@TV904W86@6QCG$0T"#G1)\7 6KZH(# M!@'?_KQ,FMLP"T-9:UN@$HBGZ3@5X7"$OHBZ.%TL\YOR:YG32O8]8(8E8>K! M!FRY=QG=98RS]F99%FN609/K_:]DNW#(FN@\<2;,@SH*$/#22D#HX(&71\* M>8K0,F/;X.RFV\2)5_=NE>M2.0YYDSV9S]7-]00PYJ9J 'M$#NXC?$)8#;MV M[?AQ(*H9@FG3R1F70P&5O?T!U6 4;*X>B.3STPE=,?HI9 RGF\ ?<6@"6+*' MNR"B@L^[O]$@\Y-OWL,83)]:)BQ3^4I\*5[SY$NQL+KSHY:*PO)NKLBU61W5 M)K728#4[/=J.-8.&._/6#+XX@\\YK:8$^FAX;=!1/SX9!V<4?VYB>:H(_$R^ MGD'@[TEK5]G+?=5/P#D\\]M0),SV)D_4S:W\R]KH^0C_O@?7!5OQ:X]H2].E M=T=^BM&IFB"2T5'Y48 MR.L]UV11:^W"&]NL/Q$_SMKK%WG8+2_R#&(-QXHCF[(IEK1.==\:HVV./C&I M9:JIO6J7*YTX"!=K,JQ-9K,NTZKC6&U4WHZ9!2;K2M.0DN@DN[OJ_S3ER"30 M]"/:Q&D,25M%_*)0(R._PO8*Z)_=>I4'"5YV@CE P*_?39?H#$E)2P=2'0ZX MDUV01]G!JF]-'E'',+R>5\H$Y9JSV] M--<53WJ%[]!,HFGLJ7;JNL'O-=17<7'ODUEM':7:*GU&$HHK&4/OZ7O=#Q?_Q]R8V7" R8ZR1X/I(K MY>]'BL[)/+:9IP%& )I3YE#3C T28@Z-4E2FR_ 7YAN8S* 9B>'&(@X#%,.# M5B&R1TC=,61VQQ;K'#-1* M$8#F7&-V4HP-D<%3X.JGH"@SCA3DOBC4Y? '1@)9VQ/["6AM8S ]L'7:>DP$ MN-88D.$%.0EQ[60=9:BKFG[.1.6@8$P=#E9TE#C2_P I*NJ)78F*&@.,J)A< M#T)4:O R"G(ARUCF"U+A@ T9-;JZ*1&QS?KJ=*B1R[*D#C3$@XVGHL.^9Z]5 M]0.($!L*Q2.#]DC1 XQ6A")#?FY M^M-W95GT9C%3.^#SM%-4]!OQA;GSSE5E/WGC3(^CZ/=5[V:H1;M*WHTFI3-& MDTC!"E4$E6PEW(32M[IA:4MS# NMSB=X[ZIR:NL^I997<4'8 M'K!WAM(B.,-0<6*XU#U]8,%1136C\-JJ V"9@ 9,)!NW>T:M&5C2&6IW>(\R"/\P\7)M=JXC5#X$,D0H0? #5*Y'X> MKQL:+*A\Z]"EM3N+[ _G4F,'+*]@'R<\[V833] MI#6[7A-G;8V1.%L71")%=-?LY+C5XD;E@:M/+9\0N=<*[TS&'\:.F MY?]TZ4#*[ %C9-46SI@&K_D>,WW,J772#-+>8S>:NXQN@SBZI"N:<;NV2MM8 MII&HK"[*#.GW(!LSF;&^-3I _36ST<'.3(<;PW0XC$-['"_Y%3Y-C1.1=2A[ M-M3)P8'&\IVUQ1G%O+V]..J&,K"?1*P?*/V0D MI\(IRE8D3J/X)8[*($F@^RS_E/^*7\"ZOO3A+!QD-C:*\I:>8"^KS9(/>[)V M[37_V;&YIC46\0BKG-.V_-2 ZV=8"9H(V,Y?88?3P]Q%0>RX:\/F,U"H0*Z.F3DY&3M4DSHVM=(D(ZYJ!)3FG:J4<4 MA'(8T\TRT9UB2(NH!Z*CNH\GM,TK N(9= !LJQ'R[KVOB&(E19D^F=R_SVF8< 79! ##Y68#VGM\T1-^NEX<^HCEC(U$"_7;UI2J! M?OM4!/S.$-VD5V_A&MI'7K/LFM\=. 4.JZXI&&WR?$A61,.US:P5T,JST13H MBSUY.:;O#S-.=,OFUUV=ZJ((J.T=-\'T.IC/F>%5W=Z\A='V4Y-IDVA6&E!1 M>7*"#AR8T:(65$!V[>/]*C3AT"Z-U(5:I)_'V\4]W7#\ZU^"P:N*(,=.8^/M MH@.<<[[VV H1O16Z3QB#]+5TE%^E!9>3ZSBALBU;QRFN&H(XP(^GLLU"$AX! M@$1"='YJ*ZG'=$AB==>O-C1[YBSW(6.OQ1K*O 7I\A[R8CTZ2-73Y8TR09.A2Z!N&YH#69 M*R8 D)X5?R<-F1YA'$95K^#2=4Y3_I?BCM/RGH;L.8W_2://M/C C=>/+,\O M2_K('FA1)+)\E#HY=MITZ%AK'%AW8=%'33]]+>-WR"+=@UK3/;L!TX M]C. )P*^VQ0Z&FF$<,:4?IA&@9\$OAW15\TH'L:S[ MH+(+?E \LTQM<':.FN2):F9SZ(S*2 W4HS_JE(PG+BD%;3SE\BW?8E6&CWJ@ MD:P\F-"ZWCC,/R,_ U _,1<]U%2FD9V2R*JVJ&H%W=<=^"!'NC, 4&@VA=>ZVU6= M1RLC+]0)0I,GPV00H8':9K\]8@0P(WO4B, -"FDUB=A5! XZ_\@A%:8G*&UI M5L@G82@A*8@3[(GS5!,'^M"*2-^J)VU<$\M;2]KI#,[,[I>SDZ1=&*WW#%$/ M1)X>IQ/:%MR#ZG9^SXL>:C)]$CGCDJK50GY/0QJ_ $J?J2H9H7X$CFJ<:F85B$(A-62R![T@P8K/1*#5Z*L(2N9ZO*F^QQP_+^HQ#QM%RXD6 MU ,-2TZ-VQ>:I1#W)&.7^=DFZEMQY:ZVET9^BK&.-$%83]N1:) &#](@(K7L M.\#E6[S]8VV=DPLT@N6BN7P/%LU8%F13Z.W%6NEQK:F&&;!47+C5CNP4?TXU M)1T5-HHAAYJ9XDNG)X2"6\9\:JRPTBD(?V643G$Q4S3)Q!H1QDZ-"'E7HP)] MC4F'#32#94ZN!-4L*]-SG3*!:PZ+3)A(MS'^2_[$G.J M("&=3Y ZI&]J5[JC#P=<)W23:T+HB@,$"&"P\%TK48N%&(:&[MP%C=LK?V1[ MC]A=$$#]E9GTHL;MK#S&MKF;,^9KXV<@0E=5U?8 ' MD8B0GVM4_'A@L+O##)'<:D#48_!V$W'$XE4Y22/Z]C^H.@I7,0X?1W@)M,FD56FN*?/,:@S&5ZEY(GN86B6.)S.$4?L@8HP.$_\H* DTR6/56[H MC&M1_1J]^VYB6*I=]Q*\HB09&Z*#.YEJ-3D^H,24I+.N4COR$GDM4[GJ![1B TR]%,]FMID^+. ,_7UY\HL6:1 H4NF;,ITB%HP/" ME3],!Q>,&\SP&J=XOR3TVHM05(B1'##SHEA'L1B;0E.K9MLRBCC5\^J/CW%Z M\NJJ-19MT'7,Z:&2!#XR6 [5K2.6"1>XX>P;) M_Q=O+UBD]L;U#9[** >3NN85"9QPZ 3 ^V67;O)V<4P/S?P$&T-?VQ->"_@K0,^-?U /_G=Q>7J->ROF+B3[?0;'7GF0A7Y M[$9J">M7&,(B.CZ_+0M^PTRC.'U66J,Z'^%CN'HF=Q70)9V1#_(V)+$@+31\ MQ7?ID)WA:.DN0#I(*->C+S0MH3I$;PA([UALL'/7G+;YJH)'SFD:KC=!YCG( MHY^N;!2Q/):[Z>6=H>'&BMXXJF]V:G+YY:%!^O;6A9G"28K2,/)D%3W&0/I1/>1S%0;93EXPQ-"6FE,Q$ MT/85FD /7NX:!!N;'U D@"-YVA&!):G0)'L\\=5GG)-F4L71X?LP#N$ ^[S1-+CB1"^7O$E?!@'MN<7@$C M$IKS2UXWS=@@(2;:354-[4]!46:BU^_MZB-+GZ$6+!1%5EM'HS[$V$!: .Q' MZLOJZ'LLP.@!/,Y$N5Q1]QIMRUA:(LYBNCIMW>9.*&P9;658" M\E*W09X+:Z:BS>: -DE#FX@OP8,1,XXQ&7XK?#[P-:Z$<:]\G9^9>^H[F-Z# M%[CE8)G5HU\WV?M?_GIHZ9'Q:J3&/3HH/C/&>(?3^V6\6;U!J C?RWI]U'3& M>K?9[DS5K\\W9U79]7356%_#+.PX3E948?Z5MQ MSI'[1<&JML @6=LT.K9%H8WO@AQ@+.+$VCB#<=!@3?9HDSW>Y&? G C4_4B0 M-7Y@KC;9F82"$^=V)1TZUT$8)W&QJ[LHB,JS52^%JU25U8&8 2E7(R"Y5 MY&[-4JJLY*,:@DF./IK*>G8TP","H*\*/4KJ,1V2>-76]W0C6P.=LRQCK^"> M#[;\=\5QR9YIDQC4V6I@/M6V&BM3FMODNDTJ[P8OTB!&]-;N4'MK<.B M*C/(1O[P5#KO\ZHUF89Q3E0F&GPA=;7 L0%>2 M/1XSC'1;7?^4+* &WH(PB0%Y%Z=5GL^WGBHMHIF3F:.X,Z'^P'4,1$S?IOR2 MMV5Y+"^!RSRGA+,AKQ_W8.P&:D'DSG+0SV BLH^G8@W MPI[\S J:DT>-@MNVTD6[-Y[I4<7KI>U3\!9ORLV4*]O0% 8O;"I0/J]K*IQ, M7=;,K=GD5:W":LX7M4&^'+BFZ1'>J_168093I'=H"H/2JP+E4WI5.)F27G-K M-BF]=1S2C*5WD"\'I%>/\%ZE]TL*0=LU8I!>%8N>,]>4[CL\C1#E4?,9E&LM MN#Z%7 M!4Q)OB1HFQ5^BV,C\@NRQ)!Q-W_W1IO/V@&Y ;)$S17%/$_ W 59 ML7O,@C0/0N%..M^U?],3IS=^ J0JT =D/X%(P","X,)[G0[$#K#I9/7"H;V! M>^J!!CC.37!>)V?YC,GKH:F"A[S&W?5[R^&_Y\<=]%!/2[TS67E;ZH1HFQVK MZ@&Q0&I!4BH*4E?%T\29#N52BN"-O,;%>LT2D8(R[X>7_JW3?GG1V ]G7"\J M>.417#G^6X_Y"[8P8^6KT$65>^3'Z!/3WZ32BGZD+%363?[)+2Z#;>? M(U-!/Z9'%(>.UN )G#PQA4:^PF8$.YAKFJM?R[ZG$;W/T&[3_NG=>4?[\< Y M04VOK6!%D(P[%Q[A$Y+L41$)0WD+F7\E5&.)UER:FNS%L'1UZ/XI@CBET560 M00QKSLW@P075=UW,NYX#=S4:_ 8% M"&LINRW6T/?RI&\[Q$)^IL7MZC%X4_$^;A9\V<(QT!Q4,ZS1(0SP@?Y/>X0X M2_HJ&XW<%6:(U,Z8&$J:Z"?)#XQ&,J5B5MO,)RKVS"GE?(BZ;"3)/-;)N]U2 MJ",A8G=B?K@LGZ"Y>*@R ,9/8*R"G@J0]=HA:_#5"!<6JU&H#EYQ_VG=AV92 MC&YP2WHKT^G1V9W>.Q6> 1[5^ *K_]0SNS)=>U# 6+%&5X1.*RA89YD1/[I= M@WL8@H#NRO#4\OL1Y+EV<.P&[W;:WV$+Y0S-;[WR3:.]$\"@4=R[_87*3P$; M;<(S-#7=/1.$:QJ5"84"PEP,XK" (,!\O4S%'^!5>PD2D.XA$W;"3-@'A_$0 M[3N[)"(BN9>E!/ 05H?X2PLC;A2+$O.^3>,IN\8,;H5O=3M.R=I1K=;+[TIO MU($RY5;PHF4GBU^B'L^-K0EAE>Q/"@%\01KP?E>"=1@RQ(BXEQ"?615\WDPW%A:\)7R69[K\F-'_#1I#DQ![[&P;',:"JG1 M-;[MKQK3PE%ZG%I8D4=&*KS((6)DQDN?W)NE6%,2;" J%.*R*T=VAQ#E::IF1G?%M#E]@7 \7-OT.%[Z=#OF:9<7LO ['-!\VQ3H) MZ:[>>>>E4/^A;/3WV KHNG"L/VF$;ORUL,JV=\:ST==,Q&E+G$R1G M]DUMFQDKV&C=Z&)%"%NM7M:Q]Z I"N%%IK1XB&'(Z%=R!E\V-+\R*3]37C5> M:/;$1M5W-/)S;-*/)AAG MR3^:^*"2@*RM%1^*+O3)MH(]]N7/5B+06-9C4VD\#Z'\DD;\C@N>41I=O85\ MZ%+X23$2.C27#7%5P9R%[*J0,R[(!J@PI= UX/;GVL&>U6[WMO?\:Y#R0?;5 M%7F]W?![ 1YS[;5QV?469[)JNX]042:&UH,^/U>=#C!?<1G]'#-TYYN!2-QE M<1K&VR"I3VH-T5!^8T!$3N9VXU 5K9[!O<_*8I6PUURV+# K+E/6-N6 JL'! MZ^^VQ@%B(\.2Q?!QMXCMRS MUU R;DW)CL,E-!4EX_XK2$OHWO[C^P7A&_ G,W&3#BA@]V;<(#8_J[*781&7 M2,4>3 PR^R_&+?6_4F[Z,ARP[(B_N<\KG4:+WK:1)[GF1F_F+C1M:=Q<69R^F) M:[4KV ?(S5JZN]D4(>(]^S$[.?],WXK'5YJ\T$\L+=:JEY"ITUF6]F.P\SG> M_^!6%4PGA%UM<(S?K!6"DID1.J%_8V:G%H3+^969>*[9S^+BL>:5S4?V_^CA MJ0:S?@N^&!@DBL5@0B0'YN?K3=S[CN*U@D^CKN3N2BAFMM(_STB&N'[JY M3D%NFOU SX.S)X M:CHWS7Y\%G(9T;!N3CWI1/EHS5+ZO6.Q249=9EN=]3:# :T>QV=1WG89" 53+%B.^=T*8]WPG8L6E?0,P- MV8C[FL+$_[U#$]\022Q:^YT8SM?P[V?NL7< C>UQG]9:-0#+!VIA#XZ?FLYZ M/*^[5%:OC=J&Z=J5W=E/+)?]4$13U7L:TO@%RL9^IL5P[Q^]K_#]3OIF=]89 MJ!\-5*,@TRO#%(^K<"![))H@BR1AKR(> ]I:RZ*'!/J=>*]%H,MP#$GKB6&V MGTL(@+Q=?0K^P;*+,B_8AF_,D?!HC,2$VW;/Z*3Z8C?HT7&WIE: Z3D@0$/Z MB !._"_"2$W$M%G61BPKK/&INX##H0DR_O[[_YOP/S8LHS :OLVW-(Q7L7 ! M<+E,BTSZ +(X_X4\T31<;X+LEP5Y7!,7HO3B M@N1!0G.2T1>:EJ!E:M63M50/+4(/$XJ>;]@AF&[A] M]5%XXH%]F]):FM5I,^B5S\^,J:,TG-QNI1&#X^G$XV M@;A%5B[X*ALSS0,O]W )TZ2@P]8+G*!A+,C(_YY0^,LRC=J) 0I3:,RGZ!8, MPR! MT"^Y*!V_+8M/M%BSJ.=D0!.N!8#461*)!*CS($@K>2TSP MDFEKC18E4DF08$\0#S(XDA_9A V8*'-W- -_*/0A% [-:[Z(VCOQU[A8U\;Q MC?")XZ<=V68L*L-B 4P70+];\?(WAE"VR^*DL1.=/:'O4RUG@2QLH*LQE&M;H"JI5 M:(?/L./NS6=:M'',Q?M8F(' P:'ADWC[=%K;;/YQ#N'I@S0]89DA0CD.0V@7 MM;FLRF+?!T5_&8FACR:%'Z@F=QMZH,("'W9@;ET30@Z."C75>)#AI5D-,QAD MJ),0 SUJ.A.FQXPC4F8[D7IUP38;EHHT)E6-AL'Q2!%2SFO_#B !DQP@DW?< ML,T%8#_1*\/T9:.)YE$S'X;0O-=6SHKOC.GGH_G]J>@C1,QHZHYQ<9 MIL-FO5J[E[H>9>V>IO0U2 ]?4'K^LB8E+4G]R=B;2S,R->T=9D3K@H/*62S M$JQ.MNJ5*C5-G8E4=8+"8?J7(%%VDU,-0XK-\72V!47"D^;.@OS+[[Y_3[9! M1EX ]H($9;%F6?Q/&I$_?+_X_OOO*VOH_R%_6OSTA_B)S/ M1W9/87&QR""Z24.VH9 4] ML0@*ZYJQ@))MN6KA#%[SK,::I!3/\D->P9:-,AX\2U1?33Y7CF=T>,*T#Q??=6H?:W2=! M/PG],=B-.(UUF>MPM"G&DK.Z9:K*"ID=0QU1N(^9NLCFC)' E\]5ZFUV%V1% M]8]E^&L9YS$\ %_';S227G_QTXQ&JAOEA)F0#(B :)LY!?VQ*JC)M) M(2Q\M8J3."AH3L[@!V> LA>&G;);S. 6^-"8'-?;[*& #@["L+^CF9#$8>TY M].5T3:J"X%:K-M= H5@CEB1!ED,PB%2RWG7LX#YTZUL]XDYCR3PK6NS(_[5G M1?Z/O]_3'."#E;M\BX_?5GI&C&2MCIELL] ]?>%BSYF(KN&10Q:F?"P['3.,#.9<_3I#PO?+"$3E/N:&+1CZ.J8M@ M&Q=!(HU$CA_-7FATS;+K$CK=@=4(+M/A0VO1APL'K$ M6T%UIC_(,[U"C$C,2(V:*+XBD2,U=G.Z3HWDWNZ#'[,ISLR QNW5&9BM.7JB M>7 TJZ\#8D'VF&B&6%LV'%3D[C B>FEHEYLX;;N;ZBI^B^&6_2S6,V\@=CTO MXI!KJT\BKH5*AO!F/710D V0Q7WQ3=FJ_:BE^]%!U3]X:MG-@TG=U=P4CRBL M+%8)>\VELV5HX[=_JKM]CMKH]C_6MEL \;G4GU=@@*:QN]5\I]'BET?*% MJY<>"Z%W'&+K.^>SS0(U4%)!]<<+_>1DVC2RRANWKRF_4:[CK=(%I1B!X(>C MF:Q;!C4X?Q:CBG9,@R!6M_U.)F#?9@\R_5KAA.X;AF" KNEL:)[J2"+Z!L185 KE0,@V/Q''(ZIQ1CW,=(3H0?$ MJV=B507N>_1+C-P*-HV^;JQ8A1[J_/T4"]:%/FK9KWXT4#?5CFU7CYJHJ\". M"#/Z3(O^DA@COD2_A Y"L!_,DQ>RF!J7SW@#\2Z$!AF4<8'R+H2^<7LAA\<7 M+K")^"E+20EAUE#M4S9/#W_Z6\2FT!Y9_RZUY5QQ)%1\*9B%)(/CV:S MSG-PU,453++E0+VPCHJ&3),P5D^KA_JM\ -ESUFP78/)J3BY!L&JZG/FYX_20C^G1Q"H+? XV]*B#I?)6,S@6 MP1#*.=WQA:\;S3 YV2@:.7>=R2(05:_R81^::OA$9]KQM*ZR6%3P,6>P@;7\ M)->2TF?P+8\[:FOPA$K(7MV$2C;I\!?VT\N90'Q)P6E/HWTW\8$JX,,?((5" M/;%ML:@A=_5QQHB$R94@K,]F.2WX"Z)5]MR2?&CP#!M//G=5+6AAIB(6?B)L M38O1 -U%,WBN0S5A+Y@Y COCX>89XF.3N@B JN*N0*8 M1 !U:R1K4)/ID\A==< D8:\0DW/-N)U>/A6K,EE6A^)>'0^T"<',@:WG-P:6 M]4)]-3(B"3JJT&F,"C_5]E";P8Q0V!W7GN S&+BC\PF6)WNFME]T/HAHEQF[ M( G$Z 0'+!IF-(H+DC#PX,'[Q[_\X4^_5Y9<_9<_OO]A-A57M?:/83;%G559 MPF,&='K;LDRTMZN>?U4G\_ '6"M1.;$KAX0: \S]R^1Z,-Y_ 1[D:8\ T5N/ M+5MWF'/8>/)-?8F&L,(;V?LGNDV_[.,%Z^>&8T$8^QGJ17IX>C?QEG&% S*6 MTM72<._2FDOD!U@BPDT+=M1#M!K,87IXSA[!@0Q+>X<%P2-17#%(((+Q)JV* MVZCLIO[1Z++*!CUO(_L M\K0O8,\(C C:YKF\0N5+_^=\=;H[_&^2CTX MUDWQVXL;LBR*+'XJI<.$J^V[(/-6N1&_$VPR>:=J^CI+\ZI*TNS4]JI!*(U_ M/)EM=KDZ240=KT2GXXQ3I*>XS]-447,(TR.AP[=M%OZR9DE$L_SJUS(N=@-Q M&,,?H-^Z51/;?_/>0_Y70@5L3R_>@[1EXPGFKOXIZ.G/+&U*?A[$Z2GX2>\C M;#W4WLFMQ^L =*_!E9K$93B*.6.LNPS0*79WG+S%,HV V[=P>ISO'CD.'1D, MB"^1+*8!P;KK@:7/9Q]C*"'_R'\>@PDHJBWX2'[ 4)Y-(*>[DU(^Y,F7/2X8 MEW$>)@Q*5#W2M^*L>CDW(XY;3/7'BCQUC6PGYAL%(4F^DP^!FG$F?*\C!/(:,7*(&:E16Q")'/0HE>@1B9^G.^X$WF0F-\1=.6VXH_/_ M THO_+HDTJ[:%WA^\+0U]=>GF?$2:THW3V0'WQ7_ MI,?^H*R;0K..G\!LA;\.0,YJN6ACA*KM8G&]2$TBE,6V0@@JVJ]J9&9:X["/ M"X=K&PZ2VIF42A5QNVJKC=O4AOO1(B2DW%O R'K2ED!99)!62(N&)$3^730- MG/GI:Y,-F,.]G1A;<4]?6/+"-<#'.*7Y9Y85Z^6&G^QAH ZOT/T&$V$Q-+?] M6,H*/A$(+(A @50XX",MS*]K8=WS_:L#(X/W+R/K-77_>E=R MG/@!]&TM=[.]B?7Q(ZK*_+SD%;I8YE/DM6<"L_+: C:QWBKQ6 M(LK_5R$R4PGMX\!A"1TDL\-<2PHU+JL<>'Y5%$GR!W'X"M$<\24ZUW(0@FUA MK%"H"QU(EP,3M0]"_WD58[: 3:"KN]=/EA=08+JK&%WO&.S;87LN%Z5#P MZ^6GHY? MH\H-[Z>Q'K,"H/#B, E3B_P/:6Y7FQC";W*9.$O.@?=O5]P$@L[1_!<^"KMW M\ <;(N740B$LH_%S>OCTWU,F9'@XJDB(>EKK50XD:'(4Q3*A0(C)M5@4@E6U M\'WD2M40LU+IW/+R44-$@\'86$I/NZWD6=&ZJ?!_[6\I_!]@J^4LB2-1"3PM M9+?KTW*V.D-'BD[?E/:]O'NXI ;LHUBM%EW9&&(YYY;.6I]Z@PUQC)N*G@J> M\5'-4Y.Z/7PSI6:GXBQN6Z_P M?O>PO]CL2S8>8$=J]/!V@$-:.+PJ'MP)NZ^"LZGO.%T$F-F]=.8U_4@+*"YT MN[H0)MUM6>1%D$9#E:1T/T/Z3H>F=^4^'<(#XT$UOS9$=:@*"7".2C1("X^% MSSI0VIS%L"1U)EM?. JY[-2U;_USNZHN(P_E4QY'<9"I@_W&3X"4-WU KB1/ M'R.,#-I<+T(:#] A5\W+Q(K4/@?]!5L22P0KLNGT=A?U%^S +,HY1MS8X=NT MAEJCJPNVV;!4]%Y2B*C^A]B8OT$ KD1R&!.,*!I=W^&KXC@AW$.O&LIQ^"0? M7I:M4$9]QF)X:EKU8#R$-.5"S;ZD^9:&\2JFD=*!,3@6X;]0SFF]/4X%V)_' M8IB<;!2-'%:[A2OE_I#H#2+K'XRN6-LUJ?W46 EU?_I[#2X;H"P;1RYGW/,( M95+*;"@'K' M88[#KOG<'85^'GSZB-'A4F[K?<,'!QO0DFUY[7-,35@(B OB(3M]S@< M)K)*Y:@IYXRC!![[V\!=QIZS8'-/-])W_[D$W&Y70@WFR[)8LRS^)XT>V3G= M?Q4IV,_LY$A>-8.$]>-VN\W8FP@_K4Y6\B)Z9D *E$"-%.N@()M@1W:T($_\ M3*YQ(V4:\4,8PI&V?-*58 M$A<-QF'CJ>?.%(*#XN0\Z>V@K/,)UFSIF=KZO4Q<\EL^[PJZWY;)6L1F& HZ M3$-K7.V])[UR'#K=[&@^^S%ZXEXF(/H]P]6D9-KT\7P;V]NN,F+A_:CKEO)K MH_>I$RBNCG1-=##GN[65(@Y[*4FG*GE!]OCXC,P9RWN#][@!,KL3R7!-HS*A MMZL#U\WY[B()\L&NGB._QHJD'A3K2A^@@W4=^@;:R>N:UGZPJ89 _4Q_/<."HS M%.G/5)].FGP Z/>*"E-$SF03^41W4D"EA" VQ9O5*6LNSU1VE\@:V,KY[9-F<)T&0/FTC@?MU5 M.I1F"/*Y9:ZJ+FJK]-

]^@(-^USIL"#-4M*R$MWK2)QRV*=GY4'T"LD]+C; M>9*4N9T'T"LD]#RL%-K2 ^@5$GJ<;3VZ9JFG#;U'O%+4OHF?5+SSH@H>'E88 M^$5-;GKKW'K!;#Z X'E!\#3;;[M%\MA_"-TBH?>2QN94F[SPK),?6!O/ -BI M OND64Y/SS<%%;( RLL%I;!!$@#*RP4E_R"RZK&@O @$<1 >56[U@0*"WX^4 M([&S5 Z&U^.BY@5*15+DEH321PF>*,V_D Y_2./('), Z1B0YI/EZE(A?IM/1,:_"$OY2Y3^ M"S'Q,VC0:(0$SM8Y(^4BD" *G?@8$T R476Y4Y&W5:FV*[6._V/ WM\-UK&B M8MV?N$ML\H9NL(4/)2WJ;B8V!G4/'TV:$.>F'YX0A][;_#YVT$V8* "HG(,@ M4(&D!5#'>^$<0"5!XQL4+^+;E^K>(=@]%;7DQF"^*-E>88T55G'(UG]:W<[Q MD\HR'CH/B4VSL'%LRLD$CR8U>5D[*H>\E(*\!,(606J^R=PH\I9GX33G@_*F\[PW92<;M6@DKTZ1=^X99>F56Y&,\NS?T9YMR.U/'8M)F5QLZ M>%0;LR'.V(I%QSA9H=T":<21RE;?LH@MN.LE?AKHT*$5A8JN\0=4S)B*J:2\ M#)6I8WM.3$_XW*O42-)4\2M0AG3B>_$Z?&/E#N;F]\4X-5FKF/IO8=>E-5D^47;5U7]>-%14! M2O"S8HNO\/%YYOI1HTQS)RQ[3*AB,K1VMFW0)+$ M,J85WQ;U/\J+C^[),]8&3G\=LGU=:;.A;JTTQR/IE.?VSM<4C;P*4:\.1N<1 M.'2,H706%$N9LC<@IOIR;6+2RS";:NU_X[7L:XW04Q MX;.Q:^,/:K?)\W9TA9$/A\N6&SI40U,5-AZ'D51B10L*T0C)6#-L%(D%0J&7 M(1L:UX#&*0>@QZ5Q+?TT#T#CLSF4=7B0!/A8E(,D2?E8?;TRB3LB9D B3=7_ M>#"T_7EG/_IDF,^?:]5J_;-);W]FSY40-F4S^F'OB<\S:KQ49H9AZX9-2L@V M'LC,^J4TZ\R41KO>;%:P4I]5&IVG6@4W&J32JDO5ZDPA-6DFE=#,-!;N#V2I MVFS6ZHU6$VT_MG8?V[N/'0JQSP?#VURQC)4I$XN.GWV?$ZPXY%+4EQ[Z"T)? MV ?Z%Z'_^>D55W]VKNW?_;)$EKUF0U]@\UG5KU!U:?^,9G1B*S.\4+7U%?J? M/U>&_?.4@LQ"(_(#/1@+K+L7R\BY7$86)4G? MF?K+OF T-\GLE])/MB&7-B_CU_Z4I:-!Q@RQLSP4_M:7S[@7.38&SPK6U&=Z M0::_(":?\=;<\3[UOH^&T\$M>ISVIX/'+Y^??;CZA6K79Z.;?O=6F)Y\]WK[P]5L>=, M*E3_YO57U9G29B-X/>CM03\#Q9;]9"A4D=KFY@4OQ+15&6N;>;"-99)FE8,. MU_]V?"LH!IDT,CN4XW'Z]Q[2_G=%#05B:NL'LC1,F^I/PUQ@^Y>22E]-C:BK M)\/0GK"F&70"7V-BD@*@UI)J/[_%)87$E\^V$C!OW;98$_?4^]_O_8?IX.'^ MW^AA,!D_3-'D^\/C]_YHBJ9C1(7PE$I:)-71^ %)S0_*1S2^0]-?!\@GG[>R MN7\S9;>E;KVQ94YW(C[;)K,M/'A^=MCE!,:-,30>8C#&:^X,$]ES@O[<( RY MEB6B!B=1WI>!$^?I@6N=[N'RBIG=E05]XYS]K*+@=65-L%DA>DR CF7;8%9] M72HC=CT0J)G1@(N(/%T@YB/[WM>%S)^I,K.^MW[1_7V]G.V;)O>:RAP;HS%0K68PP'=J50ZC(Q/ MX2+3W3QBS]%[S&,2CP>J[+A%K M.[KSH]7RA$%L\(:U0X+MF@EW3,FO%L2-4_/_UG^4PUARF' MW?K,Q(CKN(CQ(I=ZNU\(:^:?KM6:K&N'JX4GP[:-13H6ZPE0?T=$4)@;)E6B M#@,\VM2,NC%6NFVN;PR%O%6L%GMB:1HOK)W8QM4MT? /;))0J1*B8\]HGJ?X M=>AYF-WS=4?)Y7JK4N_6:MU6]YTI='7_I6+]@P-@1,T$@YU71/]9F:JEJ,[. M-Y.MJA_LSF/F,];5_SK?/YX3&C\,/SU\>OR$!HNE9JSI5.R#CQD/A^.]8.CX M#(^BT_[-4"Z8K.]+Y;ZBF,2RO#\L+ZX44R+7&MUJ%4U4^P]JF#T86"FCQY5* MA4^]^D9&E]^ST[WWW]"/8W-J_(BK5Q^7)C6>DK[.$99C[$X-.G_;_JTO7D(HU=>UVO=,"#1^EU[S99=J<@5]6EW351EZ)O++5 M%[: HBJ.6.>ERRF($$-1L,8^Q=%SL+Q*X!5/N&8__<5L8D(YD4G2ODGP$;S7 M:;0/.>]CN"!E63*TR=S0C_.O=%LM^K'*Q[UR^AQ^>-@Z&_YNT?8TLF1#0KHS MIC*SE[456Z\CNGC#=(@.!C/O9ER,G?221RI"W!Q[G@N&F$1!RY5IK9@OQC80 M?<*QG:7:AZ>/3 Q7V1?MJ]2[MF9[@QLW3NG2D@Z6GW/-Z40V5OC7:$5G7E3 MHX;=SXB:)JKM1I(0+,^1K&&+&BKLYV%._EPZ:6*'Y1[7BR=#^\!TF6A=''F^ M2F<:R:L\9UE&$66-'W.57MGQSU[7^5LN_,8>)N<]J;"6:D\.>&+*>>:KI]/Q M:!OR'V7TUT]5"2VQB5ZPMB)LSP)9\T!W6,H4#ANE!SD7<3&'.)D,?\UZ %,J M<-\EU<##(P/IVS4-0^M1RYD1MA3\Y^%(7=*B;]C\@]CH_OXFL466MF8\KLD] M,OUG9=GJ;$W?,]05YCFBBF>-Y#FA(Z?O^(.R.W'\;$P1^O8M/D@?T1Q;:*9J M5(5B3:,WV3XMTZQ_KE2F5ZDZ?2+> [3-K6JM,Z^R)EQ=; SJ-+D\C$D9U2#3G! !;Z0-NC&$#6B@HF:VZPS9/-KJ$]Q_9AWW_@ M_5ZR+KH_]L;PL8RPKJ /-7>,3Q1)]/[3?^@(V//.H_1'K!=>.VS+VG(ZX702 M6S;J5I&"U]:GV,84YU@?=Z7JI5-T-]$9_]/U_LJ*R1?_)F\6^6@3Y>/"\NW_ MCPRTVV5/=>1B,@8##,7*0K5MBBYJ;LNV:>AL":JMW1X3NB9=NWN2[, 67='> M8AN[&[X'S+-KR&^D/JSHDXUJD_$'M>Z]>'/T6)FB#^P5[9]K]=HG[P%[KCH[ MBDNVH^AV(&5V'>8BIJ ME=I&*_E5T2!AWM!&G@US'6#L. \YS0_'M MGB!2OL-&7J=S<_^^K\ZF8#F'2# MT)[YG0)%E3H+4JB.&J4 U0U' :XL5U[0][IAI0'18E3DL'=I:_;R M'RI]-:.V3H=A,-2^J)8#>);C7<4:8VD6$\$>9@>5%6PJ%F+[(JH2YB*J?\ ? M V4%:!5J-A"Z)-CPV =*0D>VNS%.T:*6&@I4F;\K1M@+,F%'3XILC86: &0] M_25C'>TY@YZP_ =ET96N5&1#,\RKGV;.OY]99(_LGH;LN&'39<_CPRAG$O2# M_9]'K3O334'P=AGB.$N#)9+4>'3,Y3)8H: M6:4*P_JE-!S=[8>#ZZM%13$<#Q9[9)_*FV3L;IKD3KG:JI>;[*#D?C^]N78\ M-=8&C*;?82Z[7A[+<048NTZGO:S; P$+S',\F;^4)E^O?PMV^+H=J+#7>;WP MKIBLW+)SJ<2.)^ZW=C=]*.TY! _<-[Y7E+:'&S<_G\\J5*J[UP]O,!\UFGP= M??]6\I^4=)[&I<@IXV,=/Q MS;US0-9K7U&MI88I-%2=.6 K3QK%6P".O+F,.([YPYL QY#&V@9;[(G#BR_8 M5+'^YMD8I\$"'7=!1SC?(??V[S*9PQA%R 3)L29$,\-.E.98M\JB[+C"Z'MMF2$K. M$D6&+A?5(=0$% *Z7$2Q4%V_')$I?2HFYG;B4J7K%.D(<>D;\QA+"9H94Z2P",6;+17;D-UMIGV;JA<\NLN1]N?!-TX,A\$BA9*S#@L3 M,,F<9?)](>ZTW-,FW4_ 3)',M)W_7IT'/X$>RIF?GMPRX,>QDU<['#G%PRV6 MLX@II$-&\',28XI_8'V%S;5OI^<<&60SH;T&Z)LSX _+.)(W]E6-$^$T-S2% MF-;?T>#/E6JON=AK[NR>KYYA\]YK@HHY Q:2L36?:<:/TVPVV@BZ8ZT$L@_8 M9=M)[K5 \9P!U["R%^]SS(@]Q:+0]U@GR.'U9G5SGGS@3ENO#9JCL#P 6PK% ME;VUPF\I+'0%ORMVOV$=/SMR]>\6NE4M>>4F:68V1E_'VMI2':ME)XBI?%;< M TGLF0=BK;1#/^YY"F1G/GM2%P0R"&1ANGXY KE1>(',=LH:<9:.MFEHEB-> M)Z8A$V5EDC.5J>Z4]&I<5GH@5 7O>U&F_7*$JAMK>![!AN]'&XZ=4]T0:0Z&] [1WW5?NL]'K+EGO;W=F5WR ML3+Z;CDG6!U[@BBN-;%]U?56D#]],9+P]:.ZX60ML)I.X+@6A8 M'D1(4?H')8N,GP19+0]K'-G!+OBJ?'[:/G*:!\4]&K==Z54IOD MNN[9\FV&713KL'NZJ3L0WUP\;QH\.AW/00M[B6?>WGN3E(?]VR4A<2=_FW]D M_\O>YSRS]+R9M",3]228LN3I>C:M%B=ESS% "$CM\UYVF[PY..?T'MZ!S[T$ M'Y/^PQ0-T=UPU!_=#/OW:#AB.67ZK$JP/]>' *D^4LKTL=8C]:SGL6TTS5':LBHBB1/W_? MWD@.QA"H)]Z6*8JUG@Q9+.T5G(GN2_C<[==#.;&5[5*W%;D...XM;]ZK$ MW]AA6[NFG);VC%"=;1!I/_OZYW7/ _".0ZG:\[V+6:]SBDCG;O@M]XA$6)#W ME\]DT?/^+Z0.(!!4+()&!NVG3,_#PE1G*C5JJ8)L/PN2DQG)S46VGT9)&"RZ MIP[Y02KV^'D0.>G+ MA6*@!%@ +(!< "\+)A9C6R?[>;!SKQ%NQ4=+X\?WQMN35P%A9E6>,EUJE7;Y>[U3I0,HB2[7AE?02AI"15RXU.%T@9 M1,I.,%/6Q&1*J=HJ2RR*@2LI4_-/>.^NV,;2RZJ_N;*-1?!=V]AQK_[2*J\1 M.T^G6 PWAN74^#W2:J &%?M/>MO)N!@_;3).M/9C\4]&/8QDRRX'JX>1>#SS MF#.I%JR5F]56 GX3@*?.P=)WIFGBS%+2A76]+'4:!7219$6F!@=;]$0R-9@KJRS5B^A>SHI, M(;L%1UE+IW-3K5MNU(";PLD4LA5PE#[G0*9.0I,V4V?B 5$NZVMJ1LRQ05\A M.^8Q]J3WSPYYV^9[Q;-+/2\QG?Z,R.N2Z%:(2U:(>#=H!5J!5LZHE;2WOS)9 M*!*=2E#-R4B'E86JJY;-).H+B9:HQ3>E@C9PCUX_NK/7UY7^WMP-W*E+:%XU MRZTV&,'AE O:XSMZ29D2Y6K@# BG7#=H8^KH568JE)-:Y8;4!M*%DBYH.^7H ME2=_TC4W;?Z4S %$^Y+B71.R*0&;I3;"8(VE8[UI+FH@D:Y5H5 M-,$Y=D=\)@C:M#QV3<*%">KESIE%MPCMM)P:-M:0$6_OI_A+[Z!-WV.M_NU& MF0=T*VD@5UEJ\-[YS?UW'&D5=,+K6..4%ZU:Y687O)'AM K9 3C*AN)%JUJU MW))XG\_*_7<_.W+UA)3<,J_4B'NO/ MBEHA>YW)C/B3J=4H-^M)3A)?"K5"-L62F?$G4ZM3[B0Z]WTIU K9O4EFQW.@ MEI-)JU"&_&5]/0]3AU7QL^R-H_),C9R0/:FCC)S-5+F<[:W31R3AN2_$BOC0 M3]3D:<#IKW#*A6RD'&7P\*1Y-H3E15 N9&_@*.,G+AX!*;CW\$,F#/$Z!.#0>&;JQORPY*:1@ MQXG-:I(%2D:3^U&8G@!?<.4+'F=LTN6+;B.);0%\(7!WQ.<+B<<))OY\X5_I MUIL"QR0#7YPI7_ X'I:ROA Y0O/C.3D[G7W=)T*)1)#J?K/QZYF&9S8D'H>R M=AL9FV3@JKZB'1EO-\:OG?ETGYNRV1RPDNP47JJ.S34KTFI1UF$=,0TGHGGC M&4B\Z]CI@N,MG.H\3B&)1_5:N9/H7-^E4)W'L1OQJ-XJMUK@J VG.H]S)N)1 MO5EN<$\S GO?L/<=: Y2 _"\=[\E'J=TMLSOK7FNB4Y.R$U;;M:+6(@I*XKQ M.*O#FV(2]W,%N?^.(\5XG-CA2[%ZN=:$95(XQ7@KK>2 M.!C.@O@7 #(>QZ1.!IE4;B>J:WH6Q+\ D/$XW<5!DC6D[)-<"4+\"P 9CT-I M)X.,+DQS!]DEAFC?$\NZ0CL3%6';-M6GE8V?-()L U%R5'S;+O0Q=]\%PKG% M2@C7J/$X@4:!L-NKZ_N@,#6X;K])Y48MR2%\$9 W2DVG_ X[\>-3V;J*U$J M_R6F<<@B%6"/,^R.^.S!XU!E=FJDV4ZR 24"$J [Q>83'@=808W QD#@JHM> M7%# 6;8A_W'T2JLNRDJ+=@0IQHJ-Z8#T?Q6 [<-[%\GW/ [-[O%]8MW7K2 MLCU?VG$_=2^\8%/%.AVOSFP$S3]DUOJ_")L@HB!,NXZ?R=:7-LLKM\H+-^5 MTW8&HUN.7- &!4)&>O8?F4HY7-)N]$_?53^CU>*)F..9\ZPUWFD?9T83%R+L M-H_R_1],13C(SX>:0>%PD4[JW*C9*5>K1_GP+I":04%;D?[6/'FS>U0-E ND M9E",4:3K,$_>Y$K-U.,?\S$V!H. >;J: -X5O<'I"&9^C_-\7 M*'""@C:X&0/C:"MM.Y&03?M=&T< M55>(OEU*Q_%_HY >QC7-#G^7+#;LL)5(NRM)^O8),0.MKXU*VMS?=[M48]M8 MP]%=J5?]5..=GO=,2)8D]WI6).-=3?A,2)8D<7I6)"MBQM4,2)8DZWE&)..> MUKCXF;:#-'8\1W4!H9DDUW9<:'J3!EJ;-]&2I-O.CFA%K'J2 =&29-S.CFB@ MN0.)EB3I=F9$2TEW?[:?#&7-OC'G7P_]!5&5IZ@O[J=@;>N?;IFP_ +Q%6[9 M=0J4D45,=1;E$5CFUX5'0A"696.QQ/J:3B/2#9NVXWA&=2XGW^[T&YK.*:?S8W#F\)1--0Y.OH^_? M(M\1;1,>NJ9*+JWHO]KFK5MB[7WV?YQO#=])_^N@=(,^8\ !&\;15\PFIM,;/YD&_*V M'8WNQO[E6+;^6Z:8.EL>Q@RQRE*,?[]\QKVX M /!]$IS9\Q"B7YYZE.*.@J6"5'-.:7KTIS?I-$\&#]_ZE6947\Z M'(_Z]^C7\?WMA_]DPZ'?!^C#_?CQ\:,(/?^B]CX,=63/C96%=<6BG5)[ M(G3,)>Z'[SI>*2K5J?G/UELUZ;&]NSOJBG/'?F-BT;.SMM^M)9:WWUT!2JT$ M1\H$:UA>G@LW4L(35JY-MQ%CO-PS6SD>LMMSI.CUV:+9M$R'3,FC_U)JO6\W M)'IS4+A&R%[^H?FQ:\II:4_3>=OXOKYZ7?6X8L?E9.%_%U.1__/,[,D&0 AHS!,**FG'A8<->J M0LNS)*GKA.K EB%JF3%$["X+PC?,<9SS8;M PM0\O0\IFW7( -ZBP5W)UA$CH2)*],D^CR&MDFUBT-._8Q M5OZSLFPG6+J,=&*SZ$L;OZ;OS,QDO1+W)?R7)P'Q)A\BUR9')RT-6)LXILR- MWY+9%>7P4'#C@6#*,.#VHZ\KTQTB^EM C(@]GDWQ:[)U#K+HV^@GMN"IAA4X M2VW!$S#]'X5 VJ7 ^>BLK06"=/ M]THU2Y$E>]+N1_9UOO/8ZA&@6'SKZ'S21PC.6S)3=:)<$YU^L"<:E9)OY>/$ M,!W!N5=C?H*IF#V^IOQ.:H84E[\HW,*(Q!_16&SEYN&II&'QFR M8X_$2BAWJ;BMU[H7)FYA1**-Z+*E25!-B6/]40)(DT:I5VM409; B$"6Y"9+ M0J(;CW(["2!+',NDUL[I8"SP'HSH4J1)9/Q2.R2Z]"A/DQ#BQ.=@RBLW1$8$ MA8@H?IZE>V)95RC0OW18/)3"J>)#*WW,A:L%+BC8"$C+V@N)EN;EATK5NFN MWPE&5(@1G;4("8E0Y^5\.D6$A(8C0!0"C*@0(SIKR1$2HLW+U92J\=%L7UJ, M 8RHF",Z:Q$2$HG-R[T$Q@=$)^7N0YH:-M8.TEZYP4EAKB1Z<4$YQ;(-^8\\ MO$?U,_(>T;$@Q5BQF3U3SW[X"*-=^R$!ZKQ\1TE,LZ;?35\]BU""<.JD>Q _ MZ]& @"B@@(B2#YV0('->CJ'+CC"Z*$8ZPR&=OVR(-!XZ(0'0O'P_)^?:Z9[% MWA(8#X4=TJ4+B)"89EZ>'0@".D9 ^#TX]/.N3#+]PIP.SI=W"[?''7PARK0_ M$H*PS+PR6%^S>!W=L&D[CO=%=QQCV"8*FJDZUF45:[2+](*3OO73$1U/N< ] MI=BFWO;DZ_5OP;6VWQ9J\ZYL@6=[[KC]]NZF#Y&UXWPOV9;@]C4PGU5,X\?6 MT7=PBU4-1Y.OH^_?WJ]/%^IX.YA$.C\>]Z+Z%OG;2N;^S_Z/\ZU#<]+_.JA< M/PSZOU7Z=]/!PQ7"V@^\MC9LQ_+^ZF1OX#^C.7%GL<;8T_.#_E1U_M'?O7&1 M>K=*Z'/0E/]Z&SSE+HQ.G_#I^.9>U?_8OD-1K:6&UZPJGJ;JI/*D&?(? 0CV MN6LQFIM,7O]D&W)ISW/[PYL)E8ITE65'=HG'GCB\N$VDO'\Y839 I\X\RTEV MPS2.SD+N<"\N 'R?V ?G09?+8@G%#)D]#S')*BAB1[,_88U*0E+:D)_>H[,\ M&3Q\ZU494;]Z7 \ZM^C7\?WM\/1U\ MQ_?#V_YT<(NN^_?]TC>%[7W8:@C>VZL+*PK]&GR*I.EC9:$ MBJDY-@FBB@E3[:[V[D^$*S5]*S)%$A8]GVFR_6TLL;[^[8HIJ M6X>7@_68,QA55XB^,8TX3KUK%'';W4JPJQ5_OJEAYVM_8S+Z=O;2(++W4LYU M9=][?U#*S_R8,[R6[%BVC2?*HG6)(B.X/G$*D-A:!/7#3;HT7]8,>AG@(A 7 M_\#Z"IOKC'&Q3QUG\9>&9-M;F?IWD5.4/^^_.L%RO1B]V%_\^VFW7?S)7H*9J/TM759,=7J>XLS0A^\Z7BFJ M392/VVEZ2C)5=9XL=.@S8L,-"=5*'P3-?$9V[NR;>'R'3'FD%[J08RX@36.J M\)C'-]_ZMMM5KMHR0U"$KG8[8,4$;[]Y%+D>+.D,%)D^U_7 ME2C8FB.L*TAF'\B?*_4%:^Z.5(!PR=!3D8;M&^""^VO8>]->9P3T)3(\Y>#L MHAH_:(T2MJ\K[,]@1]Z^?8--D\41_!-K*Y+P6&*K7*U)P6$I 5/*UTD0,('1 M2.*ZD@?8QH-M)Q"V52E7V#;+[79(8&6&2+OA[4PA M;*/#D QG71:O+8J\EE3SM?5V&S\;S1E&Q>RLY40=2%N6A70J4IY)235MW\/M MPQ:V(V*?IG ;[7*U&U+:/G6-FXBB?/=M =6\4%U+JJ5YHYJ*S$:M7)7RT=8Q MZ F+P8/%X%!_H;0V3)61U272V8F/++(,5ET3R^_OKH&2R M9.G$NUX>D0)M[E2Q6DSOH]?0B$W=FZ-8[MA^ [C?H;E83[\#Q13=;CDGE5CTD84[^U(0EV6$4HF'9 M[CJ,6#8E(XOW(-C4Z3Q:2-6=E *6L[7&<.)M[OQ,/POU9[?K"S:-6\E/ M;;=1;C7CGTM(Q24C!.!28P5) MN92?,+KW=66PH7KR.,AZL]QI0DH 0.@>0H/#^&*%1W%':*U5;DH0J2NDG7NP M+3RFM*=*1G]&&L$6<6%<,6:5%?WBF,&@?7+G[>#0QQC:9TO=>T;R[ M19QU-'W)V8'AFZ?%J>LW+SB&-C M$(%7O)&!I"C"6",E17#FJ3C^7%Z2HL$.2]0;N::.@T"\<['!]DX_@!$&HC4_ MT9HXE(B7_=4M-W-SAHB$.3# BC:N"Y(2B<.Y.$F)>KMKXQM+* MV[ZJGYU]14>$%&/UI)%#(.=6KRKC<4:*S<21 MJ$HZ-) -PH\S4C8DCE$\33;4:N5N*Y](D1S91W@_5D8%Z>^'_>OA_7 Z'#RB M_N@6/4['-[_].KZ_'3P\_AT-_O?[0I.'=J6"T'8+ED0G1AO% M*F'(*[8JZ'#A WDQM!J$U1!(\.TYZB_H+^0,10Q%"&J]+!3D3(B<1S3 M/:6_-9[=F$113ZQ5TBJWJSG'B1]'R+0*%P*83P-SXL ;CF!NE.N=? [=GT.Q M0I%TW6;'FU)^93I+<98[>7>F2R%/F>6L!"'!2TC4CTXZMERJ\RN6LI]1_982 MW0/&MRTN!J^RMF(=<:PASQC2M[82DRZ)"W]+=5"-@/J347]T-K,\4=_*+7$- M/QUZ.5MHF\*%UM]9,0'#4B&W9O[.G_K1(1L.PV]H>>L1TF-Z*7%BA5IN=>G! M+2DH,H^.T>".3&=?K'O$[JUX[LC+V1<[+!RP"4!>(VM.#0]G+0;Z)G>N3I[R M:R\Q^V;C>WV"%X8JGBZH'0#H/D"39YKB#E!6'U:*OZP73_MA4@V@06.7)/ M29UQV73B36*;BM/+*S=)(&-.:XGU3=>#&MX-DST9R@69 MRY5\YR1*IC42%Y;S;.]MZ:[35X;U3I @BZ1DRHHW?MY03LCD&Q,B7N9:D U% MD@V)Z_KQE@VUHUYN=Z%0U*6Y MO.@;[K>G?B#_I1CM0_Y+X=LO8OY+D0X@WN\=-2PCC6T(RV].)<(91!$LI&-. M8S6"8Q'C+'DH)*;>@2P.!7*E9LZK'CA<> YP#@[$BV.9\X5SO9-/G-,YG!K< M\\4=+!L"=%/ZA;UVVF^FZEB7"3*>Z"PX&3I!Y15.1@2'0SHJ[_>):2PITM<3 M#>MV7U<&?Z[4)KI>D_ZI:E7NL*_36]4K5V+NMH7Y/GC!]W93H.C6, M"/E&%D_$C!8X=RZ4]B/Y3Y8\W;(DY5QI/G!7(1]M*H +O_CL$AP\Z*C4,V"7 MFA2_AIV8BOIR@I)OR8Q0:A^DR(:3, +%<#:"8SACK"/.R*)C4\XJ0D(W4=H< #2$7J(,T*K<%JS"#HG/#'--DKTB:RJ=R(I)+&-ERL2JW%C6@_>E,K<7 M6H450QC:9%%YJ;U4F(^1S980\2EOMNXX[M!YM:IHETQ'Z6'8ERO<1D,S(A3E M=X_ $T;?J8EURVW NE[[[SC[#?X+<786-CO_]Q0UFZ*;B<]1M9MY*50(8SDC M5H@(8Q&%%6;J*U$J_R6F<<@%E8O84"NNPB[6"4%_\CLM=NP['!&$HS]I'/UI M1@0/O;,\8@CV>^5.WQ(Z9ET$)P6+-S(0%T48:Z2XB B>REQ<5*5<8Y+AP."Y MF&1[21O )A,!Z1ZR0X[H<4=%*'.C'551(Y7HWGRTM MX6VQ_,];%\L6<[%/77N"B9_ST*POB,Q$P=- M/A"%D 7;0F "(YLF^,Q<)@*:&I/"NC MO^XEB*Y81*ZHKW0B%/JCJZVF;1TDD@Y[KEWJ?:I*VU32SA\6IHA>L+8B9817 M]MPPZ<@4%*N]3LSW=DN]9K5UJ[&>UF[5NJUW2K&>^]2 M+8N5*F3UHHR5;=GT UN<8AN-9=MX(B:J2Q3/U$1QGHGU*BEFEZBUT:'#;QQT MB;[['UA?87.]?3>>"CFLB&Y@SQ.P4U-@JT57=IX*]E8 M"R6ZH)38,7__\O"T)1I=>M;?MI?7L@M.)1W3J0^1XBIQF?L-,AV[V#61$UO' M+"]%JYW[*;NW&P0?(;UE$4$=?*(CA@[F#.I:_!WL# CYL2 K/I&J)#P0&ZLZ M41#!ILY2G8*.$U$<1$F#3N)ZO1OB#SS:]V5YM5@YYV]OR4R5U>2%>QO-O!:. M<*C\C*"=N-QL:M"6RBTIOB57Y-/B$+!ZX#+=00@9SMENEM/9)'.B6^H+09IA MP2$B.!G =ZR1ZX!.XN*O/BP[IS9O_$AV$S+>4SB/B#V>3?%K,EF)+$H ^HEM M:].^%CG8-3:]LEU0"\%P($B*,-9H09*X.FS&@J15;C0NX41XT5P9Q;+G]@Z# M6W%#@L&, ^F;Q@'/3N+M?G\TNWO:(>&BMMDJ=]LY9P$4 G5@I15M7!-',+\ MKV(^/)K]'6%FY"5&HURK1J_Q&,!K+%PRA3>'$LZ-) :PH\S M4FHD#L%)2VK4:N5N*]=XG#P8RS7./MM/AK)FWU@Z@![Z"Z*V@Z*^N)\BHEH] MH,J$Y0Q((Z9[F5\7'@E!6&9[E%AG&1"0;MBT'=M@P'6L7F,'J! M':&U/AW1<4;.%&>.4G%S0'CR]?JWTB&.J]6_!41D;ZYL\6>7G.8.VKN;/FP; M#"*&[R7>[_<:F,\JIO%C<^?PEDPT#4V^CKY_BWQ'M'5],(ET?MQW(=38O'4+ M]+W/_H_S[=IETO\ZJ%P_#/J_5?IWT\'#%<+:#[RV-MQW14&BD[V!_XSFQ)W% M&N-2;\GS4]7Y1W_W9C7DW2JAST%3_NMM\)2[,#I]PJ?CFWM5_V/[#D6UEAJF M,ZGJ+&U]Y4FC C< P=M&T1>,YB83WC]1V5S:6ZS]\&9"I?*=.R)PXLO MV%2Q_N;9&"P2Q!13)M>0,4,W3.=0#OWR&??B L#WB7UP'G2Y3 !!^>6I1R>< MJ5;+(*7-S-/K=("3P<.W?F4RG S0<$31.NI/A^-1_Q[].KZ_'8Z^/I;I]9M/ M_NP$.AQ?#^\[4\'M^AQ2O]\&XRFCVA\1[^-;WYC_1X\//X=#?[W M^W#Z;R1"G[^HO0]#'=ES8V71U3A]FKS*9&F[YR 051+X([4J>B+T]<-W':\4 ME:JMC[EWYZV>\OC.L4$0$T:>Q?-+B45HTN_6$LO;[Z[8HMIWZI4L"=!KOK=V MN.U^^2RO2(W)IMRSJ\3<@72FY#0O"8,1RWYWL&V_,]@$) 8<8HW)[R!KT,$,Q)+_M. M;[B5^?9"5=&]X;.07&?9 M\5Q>&=* [X#O3N:[B-.([_#=8=J'3!DNC]00P&_ ;W%Z'''\ES)<\ FT. P7 MD% L2Y[;G0S./!79J10)S10 3'<93!=QG.L]Z_+]0_?Y,&$>Q_.!#X$/3S$V M@X__G/VI2IZ&H\AI*CH19BXT#\U#\] \- _-0_/0_'DU+_HF?6X;[B-B9Y6L M-8KHF;\IZP7:.PNO@Q/4BK?PJM&UE_>Q4:E7^6YH4]+ODA**7PP\;%X% =3% M0K?# [HG[!$#C '&\:8XV@7=Y8'C)'NNL0 +(,T\W(W@(EQ]GWYMT9)J%3@.25:1)=7B/;Q+JEN1X]O$5B3BE. M1_#25#;C,HR+I$(1WH2HPK6>E"]\9 Z94!U^]W7E>D.MCOY^5Z) M6]'U^9FR@W =*B1_-KD$5YS@VP1>!5X%7HW'JURB2)*X68%)@4F!2>,Q:;RP MF'0 XI7X"'\^3A>)$Y MP'O9\9[H$:_QDPL)F36\OS15#=6KD#,EC\!G.?!9 M2#JY=+WC/'.&M[L2\!WP7='XKIV8[W+-&=[H%CGQHPA]!&[+(7EQLY.8W2!C M.&0J!J9+Q'3=Y+:EN!G#.QW@0^!#P?@PB@U;U7 VS"IC>*O<:.:2PR#;C.$Y MYJ8\GSR@T#PT#\U#\] \- _-0_/AS8N^*9]KQG#5625#PJD\C[RV0D+;F[M MGC;W(MB0"!&@RP&Z(0'?QT$7<8H*9.-7]$.UYVQS MEAJDX.7)50B$I/]+QI#+YODQCJT],]%)R-^7:9LF49+Z MQ041 8+@ZV*1S&7W_(1HIG!@WQB6_8W8KZ *X K MQ.0*+CO4G'QFP"7 )6)R2;S=;S'17<@U@^BA7K'+7^7DS?,*E"'9JU"&[%U1 M,H2W2,RI4!04QTO$(EP*T7:XA#@-(CLG+SK4",RVQY'23PJN$P$ MES@WGFO5RNU6+B<5@>^ [T[ANWIBODOBWN;&<%*Y*>52;AKX#?CME-KOW49B MADOHJN9?Z[U>[PBY@(9*[\!U(5S73&Y>\G$\\^?"5KG9: ,? A^*Q8>1;-@* M9\.,#,=FN]S()_\E)\M1^ CJ)598EE+6]U>_\_4UE.7@S?!F>#.\&=X,;X8W MPYOAS?!F>#/O-PL?.1(U$%^PB#^<(S@"Y/B^E'HC8B/5\>9D%?5Q/&)$ZD3* M#HBH?D5Z&$).;G2VT6I2E7OH1A%+)A<;?4)T0E06"#D7<1P+G!!5 >QPD9T0 ME1U"CA\@_CB$2!B. ;KC(3HC* M"B'I-(\TE?A$" !K7&0G1&6-D+2:!ZP!%E"Q-^13]ZOE7L(2Q$/2?D5%U'6K M(0E&4W&TI5("B$J.P2 MDK,R?=\<\ ET0BP^B;:V0I)'9N*S2[&,7*N62RH.L+T*RB21/,)EZQ_*A)XI M:H7HA+#Z)5[,0#YZHD'U1+TJ&N(+4G7T NH[2H$QJ 3HG-;O) .,;FDV&NJHD165FQCZ0UF<\4![\&U34:G M@S$G*3F;CK=6L.*RV8KA,<_2"?Q$ \#*M(P[H<^<0EG@Z*( L-@$ODX#,=UN4()BX)CJ#PL^@8 MN$0F/M-AG95LBHRDEK@$19YAM>O=X85:N9IK1H>,8)+A02(16/Q,AW4YDJL6 M+_ 4)(ZPY"W8D12^LQ*KT'@Z^Z;1)<7'LFU039UY5?&,9[G8RD&X"EP9CS)2 M,0370$]AQY1/E:]&J=?)\[@@\CXGSRKOW6Z>R<* V%< M(%D")4MP'?NT=BBYB91ZN=$$B0+C$FU'>(O\:X=U6+A7" M,R9C83WM(%L2E^F06-.[ M'B[=#FQZ@KXX_4,RT31O-GXIL9U@^MU:8GG[7<,6)>I,U:?L^=(AZ:K5O[TE M0M+>._.@Z@I5?'M4V=+)WE[94I.-T1D0'9$S\^X7Q.W\J-<>2F%#-$&D@KB] MH5-+@4/M@MH6)'Y \+:_..-]?L*EBAER="4IMGZTWP_?S M/17C3[TO9.'OS152=6KAJ>RNNX)$CV[5%+*@0H4^O]U&%A<*8O4&@,D;F+M- M&<1V9:C(1MZ^#, 48"H.3'?+9G1+9JJLVH!/P*JZC6 M^5N6@-H'3W2H]C^POL)4#WNAVK5(I*3@M$SB;LRF9^]*CO<<\>'=3-DA?T+/ MPYWKM5:W$^!3+B# 7RIA!L?[Q&#//B%S_H=%:-^30J/"8^@A,"4P9Q)1!,:WQ MF%*8F%:IW.WF:LD"7P)?\N;+H%"MF%:LJ#&A];)4;0"? I\6BT\CV;0=SJ99 M150VRHUFR*$.H? :;\%XI+,[]U"]C/:5X#7P&G@-O 9> Z^!U\!KX#4<7E.T MP(K<@B1&Q$::$]B5:?A#]BOK'ZSB(T*/TY7836O#R=]&^C4J_R#4*@ MD-@E\N26K3PG-X:P0+MX: 9\IC[2W2\%I5H^&N=)MLEC M 3QVUH>.6/OCF?KM >NQ1+HD\8!ZPLUG$.< \0P@7N-BM?#9QP7( ^2SL&#J ML3 /QDAQ-SIS84_SZKQV.0)$"*Z3#"LV@#D*PQRMK-UD MH"Q$1N?%\T-01?:T?6G $B(#].)9@LMF^(F^-V 1D0%[\2P2;U,=E@D) XA M93&]>@Y8*D^8^>FH.%U2T8H=I))7]IF HTY$T1%8$CKM4+-=^6=K:H1X-AQA MXZ#IQ@>F!Y;)R5)M\DC,%U4F$SH)AO) 9.-9=UKY)]96!!0M<$LZW,(EU.&$ MZ+6\..<=/5ZKBZ_(A8#SQ3,0ET"*)&%QH'. 98K),O'B,-()KP.N :XI)M=P M"4#@%+$'7 1<5$PNBA>[(";ZSV#-4K200O&2S>_[*.\,D]"I0/+*-(DNKY%M M8MW27#\EWN(TYZ3@"0L>B-ZQO!-"A?8^4@)R"5 YTC\:9FNP(&H/PC<>@J<, MP&Z_^[HRW<%Y)W6=O9LI?BV8E1"/>B(8$\"_ O,OEX":$SRVP,O R^)UK)B\ MS"42*(GS&)@8F%B\CA63B;DD $GHS@8^!CX6KV/"\G'D^> ZE\@A3A[V;!D[ M[H'E;EWL*@:AA,\Q.3KPN$@\'B_>"7@S+]XL6G1R_"3]0E8/[2]-54/U*M0. M/1+-EU9&HAY2&HW_7@'4#LW;, ^%)@/ZXGY4(C:H;5R5>H 7P)?%I OHU<6 M(64*4W+@\^'(QG[MLTY5Z!4$U#X#ICR2*9N)F1)JAP)?YC^!Y\J7(;5#L_.O M\^?31KDJ6 N\"GPZ6F+S9#:H>^[R/G5#JV5._FJ/Z@=>M85MN U\!IX#;P& M7@.O@=? :\[G-44+I X@I9N(A[;K(<. [:4#T48"XTS!LAH?7'P3RGXJ$]J=QIY1JS D O#-!#XLN/ SJ4#A48 M:+% Z%"!?&,B'9*P\@#Q8(D7=Y(2ZH2 Z4A(=(6D[4_%=05$? MD8%Y":P0&?77"$F^F;JS*\>*0+OXP%JC+1B?9!CU!RP23UN$)&=,ST\&*D-D M=%X\/X0D.TS5G08L(3) +YXEN&R&0_508)%"LTCT0B/>KCHL%I(N%B"T+*:' M[X$L5Z8\QQ9A'CS9Y^\#=YV(VK7))5#AR%"S/?O4J0#2EVFS)JL=8MG?B#TW ME*.5Y4Z6@-84](V"09]+Z,()H6C !B* \N+9@$MX0Y)0-<"_"&B\!/Q'+IZ: M\8(=T@EA.X4'WHF=:-0%8P#8?A%.]G/9K.<4V@;J0 2 7@)+1*N#>)OV(-9Y M.,HN-Q2.&LP4#DRF,D>9[>$%7&4B2P8NP0JG^,IMJ1'B@G " M6ATTW?C ],#*!5JJ31Z)^:+*9$(GP5 >B&P\ZTXKCD,?HKF!6]+A%B[Q""(]O$NJ6Y?DJ\Q6G&KLK8LY9WT>_3.I9WW<'0WD=*P#SJ/839&BQ; MIP?A&P_!4P9@M]]]79GNX+R3NDY^@"E^+;J5<"%L(FS'BLF_>1>U %X&7A:O M8X7DY79NE3N B8&)Q>M8,9DXSZHDP,? Q^)U3%@^CCQXT1:I]DJVC!TW?KW1 M%"MZ/3;A,SSK 3PN,H_S*#8#O)D>;Q8M.OEPE'4Z2L58/6E$D!V"J6%CS3WJ MS]*G$M/Z.R*.XD+81O]8:6M4E^C\4>SGO$L0/G692\IWP1S>U[\*+C?#>QXI M-P_"W-34M@H>?4AUVTLB&!NE7J>:ISB,.>LBA X 'Q:(#YN)^? $ES\?GJR7 M>JU:N9JOF0)\"7R9L.?1"XM68L9,XK_GQ9&[Y4.]7&^(O8 (ITR.JWM@2H&5 M93LQ3R9TQ\=G2T%=Z: >@1-348^=Y'8K'XZ$FA,X--B\6DDFW;# MV32C)6*S4:YUNV>C PL7\+[$"JNQQ4;TZO0 ^@ M!] #Z 'T 'I0Z/">J.'Y(GK\,3?!83K']Z74&Q$;J8Z'*^O0G.2X$K$S*3MC MHOH7Y6WIA!S_Z6R#$:4J]_@:BJE=M&+!=B?."Y5"=494%@DY7',]0/J9:U(@H% ME$),[])2PSI]7"=.%6"+):BTT(I5-Z$(0C9^13]4>\YB>.@0P.%XCG(H)(=P M*@['Y5*=7_F>'3J(_,X Z7R?,#@ZAY^=7*G6=XK$.\.>5ZP%JHSHO)82,K:]+R:H+N*#F6A.B,J7X6DDDW5 M^0FL570T"]4905FKRR6TXT1G*;!:T=$M5&=$9;5X(2*PBH*PS8PA"=D94KN,2OW.&]:L;=6#$L^R,J(S()3H(ZF#G#S#H3-%8 M+UYT$=33+@+&H#-%XSXN,350EUM(S$%GBL:-\<)QQ.2BCN,1[C"1/T M%,J:BI]4C:H'.+BVJ8)R,!.QBX"G[F+W"K,CV:O,CNQ=,7:$M^C.R?&>T2SG M)7]%&EXV$CVC$4?J""XA>1RW&SP6O/$X<,H8T.TW52+3'3ON=(US\B;)LDJ( MU91(J(?A%7EXER.SN,0RIK0+ _(+&!R&!_(K2GYQB0;EO3D%@@LX&X8'@BM* M<'')8Y?"GAW(+F!N&-[%RZX/D<*+2V!M!GN9_(59W-V26KE=;UZ.>/MXMB,# MR791DBU>5#)().')_/&$S6!A3D?QG:LZG2O%6#UI)//=X*EA8\VMB\"2N!'3 M^CLBCE& L(W&LFU0/8_J$IURRF1GL2DR\ MFMH^\*./M=SVDNB+1JG7J9Z=CKA<3CSW\8&DV4H:*;&D.6'WEH_4J9=ZK5JY M7A4ANA X$\8'DN>H-;-42RQZDFR\\I(Y_LCFEG1)LJ?PSCH0.YXM^P;0%Y\N7SXKZXGX*WESS M(Y9UDLL$2:SI79^7;@\OV%0QFU"=<;;FQSZ;NR]//;? UI?/3[W([5;>3.O;N-].A?2W M<"5&:4>124V6VA:%?L:1*6J(R4^VO(5>O("#O:%D1M2@F7A#Z"]DX>_-%5)U M:H>J["Y5'O4OG\FBEQD,$LQFM'4C7L< L>DBME9 Q!8N&X5/26U$=X 1E4'D MT#76L"[3![&-G@A] =LH0,8,K0DV(6WS&>;:D3H!:YQZI2J=%C3CV#MO5D6. M$31>V9:-==;;[:*H&GM1-!S=E7J=J,J+S2#?0'B,XK M4E,JMYN-XO!*X0*(A='?F\TV-_@7N2G+%%#<9RB,:D&9HJGBKGF')^K<=F<# MY=/>#UUA]>"B+4Q0!>_3,AD%:6+/O3,Y\E#D5F,M))ESC?O!<$Y,])ZV;Y0[ M'1&BJP))<O3=BC0P=^MRN3=MRM!.?BTOG_Z\/:<4GE6;-5 M;G1%")PX$R +U1E1N2HD_?1Q1H'(7-5ME!M2JSA<562'0&Z[SA.*'A,M'1#Y M9WW]>]%YR"MBI2C(>DNXSMR+2BNZR^'\5Q=G3294+/SE!(S76H$65CK+18[!%*UZN5F] M["AS&-_9C>^"Y$X[E?;\FC"X^$("S+%+M87[.85-VP M:3NVP7#OF.7LS">:J3JU#%4G^YV'>NM3KAU_>S9H<]YG\O7ZM^"S/C%.Y'AK M@OWV[J8/D4'POI=L#_3X&IC/*J;Q8[O:.+C%3BVAR=?1]V_O!]K[9F!_*@\F MD6'[?$I_V?_Q_EV537I?QU4KA\&_=\J_;OIX.$*8>T'7EL;CF2N M49WL#?QG-"?N+-88YWJ+L9^JSC_ZNS?K-.]6"7T.FO)?;X.GW#UB=OJ$3\9 ]DE'GOB\.+6U[Q_.0:+!#&%<\Z-;5K?,*7E^*1Q+RX ?)_8!^=!E\M$ M.PB8A[QA!SJP:QQ@:S[3C!]6:0, >I?.\V3P\*U?F0PG S0<4:89]:?#\:A_ MCWX=W]\.1U\?R_3ZS:?-6+R#'SF.YV8\>AS?#V_[T\$M>IS2/]\&H^DC&M^A MF_[CK^CN?ORO1Q$Z^D7M?1CJR)X;*XO:1M9':MGT1.C8A^\Z7BDJU9 ?<^_. M.X=E7<&]/2?+\]QL#'WT]GAL^,G7W>M_)=@SA+/8EGS3Y_ YCG%6*WEKVY-W MK?@G[]Y]VUO;)W3_]+"M75-.2WMJR]LA]?7/ZYX'_#B'X2)NC:@J1M_HQ;F% M!A0\BC_)LG> [NA3=(DH\\;_#"@]_GQH I0F*06=)Y@3GD5^?V;X[-]E^U+ M",_3O^_/3-R(D'PVT][O_V;/K!H5W?-^,W&">"B%QDMB8IOY/)A[[(4NOXY- M)"&*+(;6SJJU?*+R8G0U798<$9L*299*+M&.\\F$2]QPD&W]7K(OJ19C$R71 MFZ/V,^I!$;AOX]JC%'9VOYI MC3XXQZQ4_2,R JTSL,R@-;#,,N7H[7]=YTVW9$DY6G6.R2"L*P@O##JL_SH7 M"F:XQ6TX'X7:XF"K^:E%/VO$J]'8]Q$MN:IMGY[[Y"*L.+%Q%E+#_2C#+5V< M<8A@!Y..GP*8$=.D5AH["$]>V9G)HBW8Q>;'H++DQ\M]ETAN:OXI?B46J\R+ M7V_H1=5.NKR2&J?7W@6)GSO"0LI#'RGQ4T%8O=D1!6%@[/><\.7*$SL>CV3? M^7B0^_RYLA$O[]@[]1&BTQD<6,J7BJN#''5;M5%P57A[/FC M H)CN&OW _-DUT^L&> M:%A_(++QK--N*2-B?\6JSO95;E=D:CP2V];<0QS2T=7_>":5!.V0._;BY63* M%GMQB[]UI*(JDG-<+$S8/IZC+^C_5G19J&F$TH0%G[,39JND*9(NF',CTYDT M@G;<$P1SN$2[,\Q;8_5DSU9:WZ/6J>Q9/SUA:J)9.[I&X@4C+!)@33XA'5P! MUF#QLP65^ODO'_A+_0],LW]$SU3'HYEI+! [26E86&/'$!TC$F'+(B#[^N\$I &MG54AU8:(.+M'H MIZW?S+'^3-NA$M\7I><0UXD(TE3\I&H0L0>MY=\:6&B]C;7-(G&)^L*.=(,M MQM,6"]I./]86&^HR2QM*;HG[=ZAOR/:PI5K24N?E>AM6XL7&6#-H<_A8LRQ% MC#7*];Q"@TY)$WL6%MF!N!_J+T2W#?,]ZPM8\$@6#-I'/UW,^\B5=,E=;M1R M"M0 ^_/KU Q.\\D5<;QA6N2ARI#(,MN$B@@N_5^VI*M-M9$ECRZ -Y? M_YYSNELW2[(L2[8,FMJ= 2.WND^?^_5EQ!P'W:Y@?1OTJ0C$33$AGU+X3!>O ML!$,I=+N.D75LYD^22#<"W%3_];=R87G +(RF]QG U/[)MPK\[4]:<=UH.P& M]=9 O76*KK>)>OU69UO)I8V]D.(>FJGSQC=4;C3E,"F"7IYKZ);?6$'5[A1L M]B;!^Q4@65(LN#S?T'I(=KBS*7JOT82 .[6]>"T/6A3 ^VW+,+"FLW$;E4J< M2?'T]27 )9ATUIRQ.V:@'?@MB+@6MO.[1UL*$C3"H$Q\2ZH>7E\8E(]OVW)9 M-ED<2:XE8>+8 >'889.S71]V?RV:\*&RW[A]*J#%JD+%?JL-893_8.[-./3Q MVGD<_5YC!+P"_*LJFEPM_H&D..SOJIQXC6;!K?+;<";.5D6?; MS'2;VI[RB;>,'MV+Q"ON4K9MNN17.C"U&[S/IVF/=AN(&!F5/FHC%;> MF\3 L^.3.F0R-);%V4\3L2=F>LQ9&&:]4C!14GOHQ6NT'ZY# M!DF#Q&L@<;[(]>M%XN-6IQ9-,AI;YXQNM$@5:_V(OJ19@17SAMR[S&8AU<37 M"1O\ 7$7ZDQW5>,'.3D\W0 U)XS";&-&2"7QECF1*N[K5FICFG6I:_ILWST%6VU]%W*2,>G9 MI0O I%N!2.?SGP[VBO>YR<#'H,*J\U%W?=5Y4_#>/6RMTU[J1#F9VNAQ&67Z MU9+.84@0'[:ZG?7C;9N"_)NW6#_1V&JLZ76:L=7-:G5;[2TJS?$\6FXC\8"Y MIKN>O7/.HWI[C(_+:)5_J\ZI__B#-1C]Y>DV U$+PM6=8^=R+'.]A$]G^$A! MW?2D!=A= [=N@VEK8%H9C?$KQ[1^J]>O0Q3L+:ICB^WO1XQI#N^"K)N.9ZOF MB-'\:SC@'*\5'2MT_[R-A[S\1D24ESYU7%)7?+K+*[C*:WF3P>0*7P5?VXO1 MY$N] HPKJ4U^21B7.KBG/O-Z&DLA)BTNO/!_CI(RV&'=L)F[O9EP*[^\>MPZV8S4U MJ3[EH589_2[*1JW#@U;OL Z8U>CY$98_LW4PQV_,!,H%:'L3Q- ;@W MAGW# LE;B0D2/8IFBS:IHCN.ICG;6.PVFAXU+99J)XQX+SZT0AJY4R9!E]%4 M(JP04B7]%[BFHG;&<1TTP0:EUD"I,EHTE(I2IUMR*C7&192?RWX;F/"BV>JX MF<16#0&6T=4@H4>*YSHNZ&S8(&7"1K\'_B=#!(<@?>I"3F42K7YPLW_^6:9CRZSIZB-^89\V 2_ M"2YH6]9[MVF6NNO8F"\ZO1/8V#OLU@ ;&^/C#"Q*SQY-2(J,<2SH%+#.<:W1 MKT:2E$F[902O)[RSHH.@#^I C0U^K8%?942P*\.O@RV- M@&XLB"BSISM4K!F)?H6],'ND8Z45UAK+67!8X\!GO"JN!3\ZKJV/\#=GHL)O M"I8=,&W'A,-;JCHYS1*USN-7V.+'6 MJQ&U]>Q\<%I&ED!*?6=I4:2S;JM[N@G77],#Y U30AG)#=52P@'O&+^)6%8S M=F+%*N?+\9B-7'1 LI?11#4?F6*#:J3PGRG@A:*RQ04F=L5Z@NLWQ9RFD(V* M?]\Q>;EUOU(F79>1,\%O]V9\*>[V#J[VQD12Q_]?!K<9Z,'X!U"3HQ^$GBPJ M"NM21=>@9%&4/.V4D4E1'Y0\/-J2;[2IYP_-/-)%9HWR3A.Y->\Q&Z\1.ENA M\#**_->BY5MFZY:VF&XU,CQ4[,)<@W.2HA45W:;][V[@:Y;[\+131MN 74#8 MP+EX4(=DHC=J+5WDEDK*OC)D\$T3/8I8NDIHLF.RZNVX44X[L2P174B^;K7< MP^<37W1G9CFJ\16(9P;?@-]Q.[KI,4U,'[/,PN6#K>/33>BZC1_R#1/000(! M]5X) 9VVCH\WX<%H>AA7*9 9?+JSHG@IU?:!:C7+&QHL3K9_JPE?2=]A)F,Y M3)3,5>OUFV$LQZV#SB9J07/>Q!9%_?5: MA]N*'NX:?Z\W5B6E:11H:5,65G4[M1G!T.CN9UA)WSTEZ?;\#N- M28$+4M3Q6#=TU86W[N,'^SN81+4[VE>WC.X#/RP3+^G&OE5M5_PRP(MU='PA M7?B [GL@KKM;M%R\U3^L#2TW.%@2#I8Q)+U$'-RQ*>GP\]#2YOQ/\ NVAZ1? M/G_0]"?^D\_;PS[/R$V/&)I0L=W^[U^>Y7Z*[9E_V.)':2D.L_5Q%E[/MK>% M>\9 PH >,5/-.68ZF1;*%=="?*,4 NIF(&HK50.V"!]0B6Y[A8WC754(.;A% M962 P/R_O=NOY__^(UFE2".9O3-!;LJ13PT2T2,_AW^<^)K6 M[>#KY?[YW>7@G_N#JX?+NX^*:CRK-0[&$412AHOW7H M'_C>@NXF_K2G?$@"^=^_)(.+&.BAZ_/'PB_J&O$T8_SD$B243Q M@'P-\R,N4%0 A7[^H)[E18"56&'%Y+P-1OAY> 9WBD*7..">O%[X"T#Q]O+N M^V#_]OKV4KG^ 23Q8_!P??-C\$WY^\VW+]<_OMZWX/.+MCR'"(%M\2P_;AXN M[P'/E8N;'_-NC>79N*.[$\1S4U>)2]C!A89C/8(77Q44 BJBW%LD'9,ICC\#NG M60+/NL,49P8*T5AGVONM0Q8/\]-4/4UWX]M!8B=FP+H=Q:IP[W#7K>/B;X,]-(9"@?;8U)H+X?PGY[CZN-YV:0&_$+YS*9A(8 < M'1!"QT>ZGS^PZ1F8ZN>JHXLI2 $$PK>RI3-$N>^6-O$P83Q- M.7T]./?,XA::3(KT##&_Q,^T0>.,OL0S(QVY'M/:"@ 6N%)XA[0'ATK&N2\* M%AUYMDVM4X+GVLH%LUU5-\/I';2'L66Y*"45S:=41YFH3TP9,F8JUE1W\>9F MGNUX #\\X#V^@?H/T JRJ :!--4=!U=^MW=_>0&PMCV#R0301\_@)Z1S1!%C MJ!K4QMF9,.8J*H)$8'(Z+2K_4$T/81X(&Z1-($NX$\ 'X65#4(K+7OI.?N'X M9[['] L"9/!1G%\4X57&=@'(?(,268#.X,^:/E(1>_$=8\\%\"NT/!S-D.]O MHU+?-/S^2^AV?=G<20,/1=ZG@'?Q2F(FR6P0T+ M>J"UHNB/G9H W09\?W=L9MDT]_,*D"J3<7;H\/O_Y( -%ASKZ)90YDRU,268 M>ASDN_2V0DO^/_@F/X>X4+Q_9V3K0_*[+D6C '-@C3Q/]\33<%.25&.'0.++ MB;B27\.*V6\]H&?XXYQN$U_-EA\AF6Y:B&PSR4G;C1CC9H20Z.MK4?#VP6@$ M9K,+V'%K6R;\..)$> LL:33G_XYK2>0T/.SV>W$]:6L@N8>U02<>H3# [P>G M4N@(U*FKT8-X3^DQ6!K 3Z,\M#CS]*D^(/>\C":@=,%#D/4:\'U?/H#$7L9\ M!S.06DKOF*\6XEVX+U0@/"[^29*&C^R$D$8-$&8F$*:M?/%(9<%O9B6YOQHSU)\J)HU Y7A8RVPJA:;^*R? M?7;@W!= MB<__G*&6#'K^X/XG/)JQFQ]6FY-LIG[3/>(L+HL+]EMB(8$T^5$P./RU"7:@ MQW7?_3 FL@@NYEQ7>?=@S4 ?R-AUO\=/]OZC\IVI:%Z1[8B>W?#+20PD[5+X M(5%I-@&='CVP7M!J4:E] 2CDEFH"2N'D2\ K:9@!@[-5#0V"$=.?T)<,'YG4 MX 7[5O/S@W)/8W/@3]9XO"_4YWUN#XWX[MC+C-N$J!_J)OQ(;X^LB^HHVD-\ M!F=@9HBDASPV$7L1!H=OLCDCL+BX/4;6J,M-1A=#D60:H6.>=^;&K3"J8.#& M!>A=)!9\6-F,8J .MP5G,X-L+BZG5&7$^1.',Q-,BO_&@6A_G=8&"Q)[RBEK#$D/8F8.9;-N;#X*4 !DV!C$3+ M8;''@XX+ZAB^E,FQOL EX@ 6I7M(8KHGT)[SKY#%J A1#&^$W?HW'&P[ZRU7 M;&B3/B1T <$>^8V!L,^%JG!7\!$<4^AURQU<4FF3#*9Z_28O_VK[/&]V)H/] MPL;9EH'1: 'EVIWWWM !]@>(>/F4U]A<<,IOS]CT=Z_P[3>F9>!BERQQ IP+ MA(GA$0MR I!Q(0*\!ZC_<:+DY0JY&/6)8*&I29L'#< :D9C3%$V:B<#\70!1R%,]HYGRQAP5 @NLS?_R>1X?A&4* M EA*=>[4='*P[G9]&&,LK![;TR;B@/?L$8'"W1:\<#@SM'>P6Z&]GA_:\QP0 MPXX#J]&! :'$B1OFL\A\4&$MO&K!W^HAF[H9 BX3M-PDR@!<@&$,=.00K'L-PF&%0 MR&\?C2T^?HBR$%3#G2LSOK3#E^8:.9APOV"O+N.0%']K*[>YUI"AGH_*.QU; M?4_040P_$73>1,!9<)4\@/@7T<6L$YTF$770V47M'%TZR$3-YG].!<+ M##W:(9EXF"!AHRG#'YB!Z>E2JN+4,UQ]!O $?J(*>^:=#GN;@=F!NCN'$IH[ M^!LBBJJ;1*<).\&8KR.H5QE-V!3M)UAQHOY7M37+@Z<,L"$X[&?,M2V#>5,? M545X!MX/&^#*O@\ %"P"7L*4M'2#UGD$>?RHHC$L847;D+%1V";#S#1Q?^_T MI_>*H8.%RJ$^LYXUD*_<4@2HZ""?;=NBKXK7.]R(Q1BFAN-"$'A&V*?W+H'8%J& M\V&LNWPCGL,)WS^4;^WXH(_#A\,4@>1S!'YN3D?/J LL4@W&'A,QG0)Q(,:% M)UO'J?%11( -H7&MT(1H8(M R0A>79CSB'06L!(,NZ+5#!8\*BF$& A'VR/8 M9VE%4W7.34E"QREH$D('8N:3;EN$GBTTYC!.;J/Q[%!Z@Z..F3O'EDD>QO5! M![&9P$VX(3BW#L3D8/2?]!)F/^ETE:#2J%/@N=1F:<8=2K;0@-P@>+<-+>$; M^J-0UCH/Z($:F-H-(LY=X#!:IC<<[I;>T)=Z@_"3.B'G6*,P! K#5/W3 HC- M%X-#ZB+@PGDMC\QZM-79!%FW0;($Z8=GG]2FX)#RMJ*H MCR27BN^( XM(V$Y Y"+_CWL%'=<"*OA#<(G // ];9B604?Y:5)V"66] 1@P M)0F9&#RKY_,I/:(8I-,)5Z467WM@JT/E]"^;.^];RGWF-Q" M?]?5EG+Y.)^Y!(UKV"5\8##7Q10E'&K+P0!,3IQSB**3\5P"M+Q1)J1CB+&9'^E]Q%2&XQ(,C_T*Y M1QG9NLN5$?ADRO> +^4*A+@?<3WHV\9[,VGOUC-Y!?%<(T/5IQP_(J[8D(2) M?2'BL-5#/ENY3X*0KB%7IN/)O6'BC=S5'SY6MZ0\XD3Z M]R_3>@9-FVN.CC>:8,Z3=!^C0F6!=J2,0P0E0.':J!6 1HF.:;P 'EM((EL_ M!0=O[]G&W#$4_6.$ =$:AU7TV"*#3[JJ*0D/OCB=N:)XA?X>,O79RP0$ILR( MH_>P?7R+3IM!Q(5E'@&6#D_?R[CA=BT89'P3((9%2"2A**)0&4M66<6&"EGD MV[)8XC%GB')?H4J'M+*';5>[K%ONLO+%K%_PLG,5+[D0@;3="-6$R4A2V,(S MLZ3;BI)X*HZO0//1]FO9 ?Q>IWLH8MTA38DT&H,,NW%IF:2QEK<\!B+)(H95X@=GN:!0H&<8 9Z2T*I!\C= M;"8#3/"I\.M$C$Q);-R9Q=5FS'_!K_R5O:%'W72FRG_YYSCT3UFXWP3OE"Z8_*G8,T_5]UYF3^_ MQ1IB2;#1@OC2;2\V25(BM"L=>:0G^18G^2MSA3RE^FU8YN,^&JDR<\F*5S^D MUX\XX52*F&(15AG^B"D+?WP*- Q2,"*:E6@O(W2')0Z=XLK7\J8VR0809C@_ MJK:&8DNZ=<(Y6L@"*1R,5M>,3P-O+1 GR3@2DJJH/@A'E.!.+&2K; R+1 U" M)#3AR?!<9NR"D)S1$T 55F_S#O([_ "/[X-6"ZJTPFZ ME^0_K+_L3L!J9^=''VR-AN?!D'BP[M9]8 MS*<:=JL%2F_2A:VE6+>5OUO/:!6U%#T2+^#YMJ>?G"2)8 E]3;@F<&YWI+.:O+#^C[0P)F<5("W20=%JI:Q MR4WD3N_/G6#K3L!0V&2&K5_@R7>6API/1:[)XCZ\^M\?L[,T01N[Q?)K'N0&B!'GABP,K !A'&2 M\+6'^8Q+N0NQ\X5GQ'>_8_10/N1P.\AD\H,%@9>4$;2P-,A:_ #D1- <;;^7 M6]3UP#99U!5^7^W&%H*A$1,#HUJ8/B52,+2@2,Y1_4@;":ZEF._+KX*8FX4V M*6,_3Z(=[;: -BD8,9OI$S]!+(I9JR>'8:<\TUILE;<2&F ?@"==0Z,IF8:5 M1Z[KH#F.N#%W6P!'H;08MXDYZ(7-Q&NJ]0 M>:YL:WHA//__UMV)O([D#-^CR#S>,619!U9D!=:3C;O"CW2 M-_"J2&FU1#B4'SHA'D'"4;@3,[$1Q(6E44ZDR]N^#>XOLMM!''6.9!L'_4R" MFC(Z)?[P&*[BDS@V9"BA'U6]X([-*X;1\X^BYQ\%YQ^NW" EH:EOO"%?1QV^PH?SHPLT3"4(4A?3/\+U\]R9A4.5?E%I;%2&):WFI1HC"I0#%[C M**HS,HL_J3!0-Y3_5:>S3U3XB,H_3X=!D-'@#CFR(SRMHR'U81[ M*PDQ1*@CT0LK5J/J%Q(3]: L'+'0A[+OQ8='"RNF\H2J)3<@'5%0,'9J,JQG MS/Z/UH:#D#6TH&YTE?5)- =YYE(7JA5=5_BJ:Y/,(9NWER)@@VFSQ+!9WL*N ML_21WN'R1XYE;8#HZY+QZ&E"'8&?L. L"@/.W#FCEX)!:G+6$SK[L<1/=6*= M'J@1@&UA$@7^%_1VWNZ,\(<_9^N[_ZV*YD2;01RS1%0.W$,0JJF^*(I_WVP2;/6)AZ(AEWUK,IN85L MG(<6,Q;6,D[F*LUA<*QHIAY)',L031LQ(5N8VQ[_"'/V@)KV!=OY!%(P!+P5 M!53#/!KF4?=C%%1Y=YIY1)A C.)Y*7J8:RBFR@=HC$5-?,CN;2EC=8CM4\D& MYE5\G &%;&4<&*&P)W03CH+DX04?E]][5KH0T6%..<0BMYCGW5/IP\SP2"4: MZZX(^K=KRJ96?F&$)>V?%K3U5<8Y<\5">;I+ M\E4VGE4F(O,V64'<6MF2/WKMX.T7W9%UX32_382CJ!(_.7)[G!BY+:#BB)X& M8]U\$)4F"3I/X6RK!'4I2?]9;PQ]VOCY%?L>)+O=2EP1CH9I O^WUSU8WLZC M6/W@XCA>C@K['%;PV.Q%H?P^@G"GI>#_WD=5B?#[X]00O#&U2#)T)'&B2-DD M-E5.I^[2__2 #$SYSEG2);&D$-L137-C_Q+9!>6A0NY;*!L'B[ZX0=4MH.H/ M=!OO(J9RY?G-LO.CAD161_8@H[E.F%P+GMO@4S%\ZC7XU.!3PY\:?*HI/M60 M/[UQS:W78'(*NE(99:U0M1:LKT&8-(3Y';W/#Y:K&@W6-%C3L)D&81HVTV!- M3;"F83,-PC1LIL&:ALTT"%,GA*DIF\GI%>H_V0C7B%%Y+# /8=Z]J1G M0"Y\/_>K@[*BK"S.;CR%LY339%=^5?+*OZ6\[>CW:+(4I5I6L8'T!BC]3MH$ MTG@?1'%C-_8]ST.D9B3B0]&M!'8)+[\9/V 5]!C[!GVU+"WZ#?DWFVD#]];2 M3??:Q-/E:>.[I/_&M9SRB%WBX7_:@_KB=SCIY^_JV]\[Z[4.#_N+S8I>.9[6 M[97UH(^49N';IH^%7EVBKX^?V5B(3%9K!+0X;62CR/-[?5#U+0J.E,[O\4ZH M;TIP'+3Z1XW@V/8KZT$?!_6DCSH(CH0.#N2XS!?+\XW)3F.6X<'W49R M-)(#Z"-GH^ZW*#F.&\'QA@7'<7:SWC=I[!8J/FUXZH=7ME/0@D:11N M#0ADZY*CRXO<:R Z2D\'CJ%E\^MK_K6&8:N[L&(#S@:<]5VQ 6<#SOJNV("S 6=]5TP 9PTK M/S>9XQ>;+83=[?AL'=V<>:XR9>[$TMY$ F#]'4='.:(-]\);6KF@CUI'37!NZV_LAZ4M$X^;1TH:>N^VM[>V;:) MZ=6'^7: CG(.6J\M'6U7(O5:AZ=-(N*V7UD/2EHG4;<.E%0'B=3?,C$U$FG[ M=)24T)LW+:L.=+3=S/ANZ_CXM)%(#24!):V3 %P'2JJ%1#II)-);IZ.D1.&\ MZ5YUH*.M2J3^8>NTNV4BJAM:OUE*6B>SN Z45 N)M.4LY-4R++?16F/?M68? M^40[^0FA>^PSV6WE)9S_]O)IPV$ZRW,W'*>;O=#_NXL'WP#36N]NUFP=5#4O MW-#A,EEL4FYZW0(C-X3S==16>@>M@].CS3+8.I!$15LZG376=3=5 % M#S>L"FX(<:KU>=2!M%_/25XSDSI.2M>J6TBOQKI4IW5ZL.%*\CJ01'.2^IWD M5;.II%RXG6)3M="E-MQFK]&E&B;UEIA42H//6@6CZZM+'75;W:,-YW74@22: MD]3O)*^:325E<>X4FVITJ4:7:IC4ZV92*3UO:Y5&45]=ZO"TU3EJ8GS-26IP MDE?-II+RCW>*3=5"EWJ=G*JJ/GV[U6E-3,RJ.NG+OXY^Y6E>2R>9P184S?*& M!HNCQ.::XJZQR4R&E])1.I;44 L]Z&#O[."P=72ZJ7:=:X"\2G1]19O8'3)) MR@+/)).MR^$.-K;= 5*IR$-1"RIYTY(EI>-T+,1;"\F"-3_'K=/.IDJY&\G2 M2!9))DE9I9EDTDB61K*\:;"H0WHJ41+9).4AK. MI=-)(UH:T?*V14M*;[E>/8V6;N>HU>UMJE-!(UH:T2+I)*5S7#J=-*)E-='" MHTP?W*&ES?$W%1X]4_Y'411YA!\>0$%<&3';56&/UHS9%.Q5 +=U M5P<,9R%4XTBO7$; 4>96WE*S-A'X8Q;^$C3O"0HZ@V_>;H@(ZP MI*I@2!G0$#9.E&2.F&(-X6)4HGK^)AV>])>G@4J:Y^]O1)0*M.WB&:TQ??AH M61H?O>3PN+9#6U'V_&7VY!T#&/$O4SB<,E:!],>> 80[TSG?$0M>6-.9:LX! M&7N=[NDG)[)A0!/=E6#FRSVIAI>Q&\4-0NS1@S"[#2\3-P.L!U8W# 4OP-95 MHZ48*M!RBP-!MQD ?O$>P_>3#%A';DW>3%N)]=N@PP\94)BC/$^8J[I_?70[^N3^X>KB\^PAX]JS.'2DK, !O ML@A\/BD3QA,;>IBX(-(-?NO0/_"]A4P$\:<]Y4/BU?S]2_+5H-PJYV(>;BZ^ MZ>8O_RV:[LP,=8Y0-'23[0\-:_0KBFCT\O %J,K$1A7B-]<:[87O8O]90$-' M:L%4!7[+^$3\0S^K(?IQP72+!Q3'2,&HL0"&.9\_J"LA @GQ"-6$R4A2V,(S M%8O>2&.?>LK>[O&"[ 7VS %F 3^U5Q/!@H.+OT[A&Y(O!PD/KZ'2Q=X<*H[?I.D*&__$HA+=SYCQ/T92! I"<0A67 >L!7,/]LK(\4]C*S;!?TRY&')^*"'+Y,VGAPHA9^ MR3\>"<>)/IOA'Q"0#+[!6B%8E">O 1YL!L='X,$W!*@T/5$PMOP[RT +D,]S MA3!C&&E8-53Q1N =\:,+((J#3YBA2900&X=G=8 /"G. "L<,>_E* H3M5'D< M)M8_8L3ZQZ> 6(E6(ZQ+Y&,)TE^BFU>:!9;"0NX!DU.O/X$L=?/)TD=3AKI(TTJ&' M9"* F(Y=P 8YU_$QR\=)#PYC9.IYJ*<%6G3 '#@U.<""'. "B*:@6#ZQ]MO" M&6GR SO1D'D)H+D3%>AM!-IM]$(=5[5]%@T;\L:( C:B%5 DW"GHRCKH'8X' MUP$P99Q_V3KL Q#%MY40#>05ZDZDQ1W:0X+!X8[([!+?(INBK2S?L\:WE+[) M=Z.):CX2#2C."&@#S_1LV;]:RI_6,(Q++=_TX'H_61X? "+CZ(D%/\2%>$,;PX"BX1:![)WH (N3M[OL@)KR4#5P?34"21.J*G#MT!O_SE3@#-R/7&@)3 M[G=;"N(]5P 2"FY6//UZU7^;>=E;OO=_@%A4[7DM[CU>Y);".!)]M!H39X=+5A>2R6LED]?^EXHIMH8@*D[2UZVX';(YZ@0 M%_:!?RE@7S@KOG7:+=XGX%7RW'KBR7$A-EL*GH!L/FWUC[I!Z^"XX:4[@".GQ7AI"3C2.VX==QOEM%I& MZO__E-[T#9WLOM]=I/?6G+>6U.VL(O(JIVN- M%BWK^C; T2MJF]<@,"!PMY 8*06!>T>M?J]X,?.F$/BMZ.T7Z5'?EF(RM^[2 MIH)BTTV1;K'*N=/>.L[O2[KEF[$DY1_,+>I_:1T>;E .I0%K"X*HK +1!KD7 MD;N_CDN^3.3NGQ3OY;0QY'X3-A&/;9_S["W%F3#F\@05/W.VI#AW19DHS2HU M7^7MJ'J1?-F/HD@5<_O80D0L)1&PR6FHR+-WFAR,SM$M)*GG ;8Z<(N+OU[K MX&B+KKX&@PIA4'(\-D-WJA"#^JUN;XL!A;>B&"45#WQ4SM,SM=.X_:[R]=?A MJWN72=?)\?."DN&;0)1Y0<(^[12?OUXE"-_7#:<:7$["Y>08=T$9M2XN=UO' M!U5:^6MC\]NQ3!HG]&[YZ9+S$!HG=..$WGGD[G:2P_N-$SK+UMJA1H/IKTJM MG\SH9='B&VMA4Q!]C*B%]6P:%#B1_ M!&K[#AOMZR_[$UW3F/E12IWNT=Z99;+/'_#9,V4.UBMOHX<'"[DH,XZDK',: M\>+(5O-Z$%*18K%S7 TB<_\M9MY^S#<;";YJM+A1K>#?6[P;MJ)VW]EI?:\ M T=)-+]W]M.41")Z$XBF1I<'P(=;R OL=@*33LBGGMS']@\3_ M-PGI# VXFY&M_9][%U@P=L[XRJQ'6YU-T&BCN9S?@:,9[%)UW#SS@24VW/DX MX%P@WS8#E>(HOTIQ""K%03M)H\C!6 +P<)28(KO%T.OB=]>YN]4V@>SI;YFW ME)$O7>-;ZK87?><1L$]X$ MC]G3A';#*VJ>XONR]Y+HC4R=F;+0-Z*Q"21<67$K"X,2]=E5U:)7K0G=$K\" MKH=-1)FF\]ZVKU-CN9#=U*TA,0,UU%7+SNPVZO>###52AW6&U)";MY'%KI1V MJ&LXL@?1P!N[ _+>34'+5\V"W>9Y(Y'"U+*QL:&Z M8J ^(,V.N=-X4/:'\V M,ZA)+O;;6KQ^E'R"&?F=:X-8I.I0O[X600R_8SH)_09%D_+M(M :MOQR)WA* M+\&!$P;U'TZL#W]P_P;ZS5>ZT=9B;SBZ2"WU(FWVJ!(&4,M1PW)"[?K5QT?\ MLRL9/%WNV*.._BX-K,&Y@7X3>/@?"&;U!=%V-5-_&@S[%A, MW> (9[:#*F^VD?UIT\B^:62_P4;V29YE!/H9KD\:CAZ#9@F_+23'J2TJ;7M%2VJ"UL%$T M?Y.*;3QYXU+1QM_!_J?J(Q\V@),)U%\,3JT]\D;GX0POL X'#NFE7,J321&S41-VXPE^$"_%!T;< M_T&GC=NX.%R 3]G!@+\ZFD1>C.+]&?FEBL?\A8L%1PL4$-RT-2T^%N@#E0CVW0B.QY"&YP M+QH?5^ /60KF0P#429L1>*:^$(_5(P?0X&>'%#10CN#XCH?P!!3E"$H?C^!L M8\/#%O? ARX8RJ9,%WX&SHXI'Z-G7ZYUJ1FCL<$)&RO_D1:K,+H(P1! M "D%?2XMT(:Q*""X(WILQ_> M'.?-2Z /D=M[MFQ# Z6-A3!*HI*CO-N[!$7\O;1+\[J67-"]A/DTA3]-'+0_ M6+8_LY 7%,Y)KM*]4B2XE='W=Z X@C)J@ M;GK IF_XR Y Z2(#%WM[9_WN@A_\]]5#!'G@<90\C_(DUSS*S<"CNW=VL-C) M*C<\6B'WL3'G[EL^1$)R>R +%'$XF6]FPTMM'6<)<=8(BH\0L/!!,,4$J6K( M3#9&KLY'^G&XB_D+?J*!>,5/ !_\1J$71W!'KE& EC+V0 8D:#[A>8&CJ(": MZB^^=UC( 5*KX.WP"/\<#1[+$RIM1,DISQ6[^YPV[,U', $(&0)4W$4"4!21[T*Q8# /3 606B8 MFHP_H)[%L-L[G!ET(Z'4ACQ;X6JYJ (15[(O0&775/KNY>-\EM]##"P#;I&K M&@!N$S1MFK^ ]^6_GJZ#^U@C+Z;100&0N::&#^JV4$W#],"=S&@C3"R#J]E" MPQ=K1X@G-@A4*"U102S-&[@ZN,.L4&VWLW)*:1!_]7$SZ!9X,[[BV'D?@D?! M>&RGO=BO1!&16&7U4*B 0+J-[ ,$AOX M?:*GI=O9+4_+D>]I\8^'N&-8YN.^0=R&&ZN-VV5!)/WA$&P<)Q5HG'GQT6[( MQ&$SNK";0400JW=0N^$#_;P9NFF EBU;B#DXV"^P&"GB@)%L-!:?R6KS')86 M&1?Q:IKAZ.G\C\*LP,F&MA@B')L.*5T27VA^3<%DQ&CX1@16:!XSM^6!^D(0 MP]YQ<@R6,!>]47*4BEP028QT/Q&, M YL'NR\ C7++AR.[[B21;#2_AC3?$3_(-PQ4NBGSBKG/F(H5"*=P5 Q M$-V7\;_)6+M<>HBS)OG(2E=.8P1EER::BL%JT:WYN66 "X_R+,H <"LB,N6? M0@4 FTKV$\()B<3E.CWM2'@A_./X87\Y0CG+M.@E=)7J'NUW>Y@%>BY@.$"@ M.N22IQS06[2[;O49XY;;-U=;R 5-<@')Y8!PAR)8=.^R66CU2_C)G5^CKQ[( M^-H<\-M$GY'A(0]"BP6H$^XC]"W8#@;PU4=6T'5TF. ZXA$#9$J@W]"!]_'$ MPEAM*7#HMG2]^W(].]4-(=L6U1(-UWB0 CL^C8]BA1KCHB VCB_NXXH)>SF* M& GT8\V 7.(P/LEJDRV_;C-<+U>-GSC&P>GO);7.4H)ZPYK/7HOL].V,8"P=;:$[7/5BYIX+4".45%&YEV.L=-ZT,ZXLA#^8( MLU>&.;>_R,N:*/$T)"Y'UKB>"E%4_.#84:?< 8Y^XU!$B@>(>'*,:P%D"19\+5ZRI?.D!F2SF.VJAK) M,(QJ*J2'8I8./B(H5#K$D\*P(E 8CJ)BQOW6 JA*9%I4%MZ,T:NR:@>WC+ON#Y''2?N)ZK-2';> MJG.J:DJ.D?7*S8[,TP)D>0[DLDYVG$"S1.0>Y1,!@JVR]-6,FWW?%-2B$(6 M.XA/IYB, 6AWH!L]YMR)/5Q9]A5E]5\[CH>9G+Z9W\EMYE__N *-[+#3 M.CA(:$N\4N&20YN3O2Y1OR30\P0A76PQVNLI0"4'3\D1RB^=Y/V6A-J&)^9E MROY*,\_&'\G4\429 2I.GLE>F#W2'2IQ1I3E*+/E;BR5TN=6I?P:[%FHL(Z?E_^'S E!P2(&UHH_!$]C,@N MDIY#754$0TU^FM)]R J!*^:[F@L$>T+#56%$L. E9B\SG8J\<^_TH!V"2-%W^P3B MK$ @&?2A?.42@QQ44U5CBW7NH37EB](7#(1-D>.UT 0' 32R]2%EP!K6Q)WX+JE0%SK4"$!OPC.4D'59K+E8 M6;F5EP*N]Z & E0#@S)L<@YXLCK\=#.^\\%Y2\ @.S39ZNPWF9E;'(?JIU = M59I"M=F$*.Y/C[C10^9EO:?_OLH+60QK5'T??O+9:Z+16J0Y;A9S-I_/N-'L MUN:NHW?=:^[ZS=QU0]=OYZZW2M=U2T0_[%6?B'X7<^AF&*^O*%?]=!OYHX@ M5PO"NN/=9B)W>*Z? MR&3!]T524G#BE&R[GZ_1EV57W.=+Y+P_A*-[O+F*B/%Y4^Q@_%_F%V L9"2( MTV&O=OU)=^J?IJ[(Q MO]--F--OO1U"TR=CV_CP;RI' +$QP&Z5CTRY%'FJRBT5+;Z[Q<1&Y(KO&YQI M<"899^[\#H)86V*+L2T/S)XJ[ZY-&I3H-.C3H ]'GX$_Y?(:D$4W'5#:_H5E MH37!D+J%1KA^5&UHY"94 Z.Z"5U%:QT.6;9@;RNNF>/T;CTQ?XR?2AC8&0L^ MF<1RG)2D0]O&EFA8U78^7RATHU<+-?!?5* R,+5+&E;"M <+/PIA UA5M(_5 M_3H'B9-V&G=BWKXNVT':DU*1]N?]%] ?TU%WN&!I4Z7.P"]R^8G)\J$W8 Z\ M(U54TE#O$-5#""LP6^HH0D6)?.6< 4A073E7#:SWZ18M4NMVVB<;[EI4=Q3? M-BM.]0+UPEZ@%?$Y#^8N,MUA8:8;0UY?O0YIUZA<=_>BM'L:P5YT67[4/!NU M;T#5=C?NSG[3>%I_5GR2T>VO&"LN6WL(8:ROR9,B7S ,U-UBML6:2O_A(>G[ MNZ7T2Z&H->I]@?:*)_G:*Y:FZN,7L*J>:;QC%R\BX@I3.$#AWVI1*FS:,&X; M[S+1KE<5VBU3UK,DA;-$5$BD=*Y-CK=9^GE1=?RHT<9K@\'I0>A],=BDN9:: M,9:DU,FR&$O9JN<"/WG SC>E:*%;[R[[MCS/E]0F@IKDP"6-&8ZV+E>A1)&^++@;'2Z915$/>:"_\ MW%=7GB9=$BZ_51K*)*&DA-VMJ^_K$E(5VGRWTS[::/QHQ['^S5+;%DV-';^Z M!F5V!&7>HGRU]F''K[T/UZY9'AZFCJ23OKU,Y>8T MO;-L78R"*E->J&2X0I4EYR5MP"56%CI7P%#3M[+I^&XY1'6:' >NRDS8]92< M;KM;91"@(<%7)\I6*!Q[;2E#I]V,E*%.^[2ZE*&&CMZB*,N8&EB/N%+I*4WU M%T7EU+_O5$EXWB$2#WPTG>IDSM,XS.?2S678K"TCN/$B"IF=%"V*^#Q@[C-@ MD,/,.-+B9),8UBI/?,Y8B[=UIZV%0G:>39.%0J-6_.$714K@RZILEW7Y.:^[ MK0R63D4KXSVM\,S#3,S*L*>K1J'#[ @J(VM)4 [ M*MU>BH,V5^=O'W[T2H?R$\)_Q^[?/RSW_S$WZ M>'G ],]2\/:G!G3_<-#RH M)@+_MM_58@,ROA/K=#8PM=@G/W&F5XZ>/H=-3Y]UXF9K MKE*OS@F;;9<0XI[W8IQATR+\+5S\0IN5+7?D:3!A6YA0DXXI]4Y6/SQLVJ3L M8-G):3]WF?.RMK7EYHO\L$SN$KK\RP/=\-J$EWM4ZU9:KLC11A/)ZU\75?^B M_-.#TK"UBGSM151%G^G#1#7C7MU8O)B&G'X!"7.EZG8TX+5B L9)^[ IPMPU MK$Z>"%\0JTN+1"S%9E\OBL9J0_RY*&=N];;9"K\NZ;Y5JU-?^3C;1FTJ0+*% MZH@VJT$MI5\^6GO-:KS3#3>LJ+NXJ2>Z'E4!4*J@H'#1=>9JF#QF[RZ22E''5NZ;$A!KU2+*BYR1I5:;-G+9[&]5F M=B)E91LO6Y_"2FBB4IJFM=.)*1M.1FD:HM2NX+7720ZL;C\TLX'DEMY)_6M? M:X3'3?GX17)0MU^EL5/;O@Z[ M4(-7L(+?+\E7'>5OF=7ER>G*)5%#]97E1_E1_1"GAB4@>LXN!_S2X>(,^):H M)<>[*5::OE N^ M4"O=/\U^%K??EAP@B0%AH?<9U53R+_+G9&WS^I6BEZJ-S28)99Y MYNE\D%'LW>*,JZ4XL/EQ8M1J> 8WE]D3Y83X%(?-OB)/@YC*B\'\4J"-;+C" M0M[X10$=Z*.!J7W1#0\[GZ77Z![O;HUN&CDEQ0B59(=6C:MVCRHMV=ML+5X& MB6;\Z6%B,Z9\MZA._Y*Z&87T$.$II7^54M#77&C5%_I#-[=VGW$']Y:XAE]X MV?N]J?O?*%Z&&H\U!> -+O0:7&APH>$+#2[4CB_DU%2B(?@%&]^F#42:O3V7!I3(-1JV-4+U]Y3!TP"GC4:2TJ3AN, MRL2H;C*/ZM621VT3HVKB)ZM:^Z3 B/[$%#8>LY&+44M&R1'1Z"I%1FNN9993 M:E 16992:=!+J<>O&E> M_T9\Z?]>P8ON.-X4?QA[AJ%H9 9AJND*)LY*(UH6NA+T"W0E6.V-Y90YY.$7 MJ^VKHEJ#7DI7PW(\^FGLH[AWHU>\]^#&X%U_]*S%)G:'1I):*986HRB=1KH' MQ9T'#8W4:Q.[0R,ID>%RHB[ETTBGH9'7LHG=H9&46'UN_OA'K]SXR 1E;Z2X4/IJ6J^@F#?#4X <:*XF!/L_E<3YKS$UA^"M; MJ!+#OTJ#FE8;LI'J.8Q6X:]5V NS1SI\-L-Y8PZV^Z-B2T7#"53B0_8R8@QW M@%^4ICJ^-Y=X"^[WF\<E>ZU)J^D'#Q+R2M9T:[<*IYUFAS+^N-9 MOHZDM<:S*EM;-6A6#IJEY!RL:-Z\67;V1I+GOKYY(AGEAQU7FA35(5@Z2I82&5]1Y MWR8G*]W#7 N_>J5%4?:._O!R#%O34'] M#Y$*=AT,N]RKF903/V#9>:LIKTEK:5L.^TMY:28+7+DF/*$-)]SD-5WD-\LI MS,M:IY7V8M[NO;]9]%JY0+PR]#JNM,%^@U[;0*^#E:O%*T.ODWZ5W04:]-H* M>JU<.EX1>O5:Q]TJQ[;GN/=&W7^%ZG[5T8+%MLNKJ_KEN!F:59I5FE6:56J6 M'[E)?PMUIFF\*94JC"ES43.]*6F#M1(;^Q>==-5I]QK[Y-6A6U*T?YEW95/H M5F5HHD&WK:!;4N!_F;=E4^A6Y82Q!MVV@FY)*0#+O"\;0K=*!]J5YXUY3>%" M42'7*+"5TEQ21D19"JRXP4:%;1 N0+BD^'-9*NSZ"+=EI_ONOZ9^")<4D2Y+ MB5T?X1HU]K4AW&%2C+HL-79MA*N'(KONU.6\:F2A09V,%R_)Z9B:_B0'7MY^ MO7JXRYRB(V'7Z?PNQVM&5IB,]VWKV?]3_&\X:%.Y_?KCY_?ELWI2U>KX/05O MRYJ?VN73"?^X.KA\N[CXIJ/*MS1S:' MP(BAR2( ^J1,J#?&1Z4W>_FD"#OFMP[] ]];,''$G_:4#XEW\_#":WE MW,S#S<4WW?SEOT73G9FASA&,AFZR_2&.7(VR'7IY^ 9496(CT?_F6J.]B!7V M+*"AXQABC*WR:\8GXA_Z8=CHQX7Z>>R=T1!7;$=P@6S+=)W/']25$(%(-T(V M83J2)!9[9AM#CK^PH?M%=T:&Y7AI(XY/5AEQ7,I,]AS3C4\CTXWQ&'GF&>_: M<'H\E^+BW&ZF98Z9AYM*'S.?G9Z#[QB8VH4ZT^$]WYCJL)LA[)L*5(-\G=7F MP/>.VXON;V7*9[M3U63V:?J)I^ETMW2:@X2Q]L%IW"Q$39C;Y2,NPB'KJ_]0 M34^UY]&OMK#@%.?3ZT_,F+=?&\I_UI'\[]B393QAJU:4(XZRSW?PP[+=B3(@ M=J=R@J?'VW*#P[,;,Q.D]VSF,NPX!0!%H'9/6@J!%8MPL3);->>$GR-FNZI. MW7%TUU%^MN_;]/F%:JJ:C@/MO:&CPT^V#OM[!Q+9D'?2 I)]9+"@S4N!0TNW MZ!?8+;QY%#V.J7RSX%^WJHT%X_P1[=-[A50/OC0CE7S5\MY0?1B6HH \>Q1CIO$/1N#Q[8 M>]]25$=1M2F(6,>U59H@HC[BNW +!C-!JVDI,]MZTJG;+A 8[/^<[O'=O)S3:ZQ\2+NRVY M.<$[LFD9GF0O<'/4IQH[9H%:Z8CF6\0>%@D4OB*)+A-4];@AK?<*Z8W!W#%EV-H$I#X'4^$.@D!5H,@!58+>$.]DK*IAS M"B>S :N,N?(("@482@R>'\Z56P9@W+_59XS+-;6E7)NCMG*ICB82-3,06[%( MR+D3_"AEJ;ADA!7W^-4RV]E[K^B.#TM8*N^I7AW_P=OVP:),5)"MGD/,0@,9 M#:8VTJ1N>I0RC/WW?/1; 17>Z>_YD6"-,7P+_N5ZB!Y<6P:V- ,IKN-GSB=X M.OZX93Y:B.'/EOV+"$1\SP1T@B_@7N%+\EO(J3B"C"Q[9MG4]\2#GQQT0 7T M,K/0Q@:C'= 3_65" Z&$:+Z2S>![HPF0F=-6S@LN0ID&7-^#/)GY*1$U_M^@5_.OW@DGRUF[ZVE[-W?7-VA>C4S/ *,PI#\1K"!%NUI-C. ]- EP?&.\X:% MCY&4<-=X3W"VL?X"/P+4;)J)(/K+H-YF@49W=7$![U2H KL-E"J@8B6#((1L M\!+J5Y/P5.CL$M@Y /">SIUXT!;MCZ2>;4VC F_!&_;;F/Y94O%^F!1ND^)M M/4GWGSL$)CWZ'71D$&'B\W^A/QE04+>>HL>;[1HKTW0N#U4 M##!MP[F?V4S5;LSPPEU?/.[WQ4H+D26JC]C*D:'6?>?U.JR8OJZ=^$:<)OW !0T M7>B9@7\:/$PP+XL:N-R8#Z#MWXPE=[HE;K73^-1I)\RQ6TZO2>4.%=-KZ 5$L];(?_$;/#__@4V.%DAD="R:*@5YCZ2QP"Q:/-L?AU M4AEQHH=A[^P^\$;)8 4VV>>=25N%' 3H*Y)^L.&<0ARNZMOF(.J6^X2X!^OT M$P[;8Z[#;=4EKP6L\FA6WVJQF]Y1F\=N$B"!-KT^AMT%?5K#P,D!"Z146,DA MVQDXH(N&K^J"23ZU0)9+UQ<"N.7W@,T/G2%_"VX9N")8SX;.<&?PK4?R.<#[ M:>@C_*U%OWC3*3ZGCO[R=$<7!YFJOY"W/3'.[N$3S,&P'$I?X%= OA;/!@H= MXNX!$LC2-/U)UYBI<=CPTV@8V,':=%P;C0]?J6DM=05F7=P4WD<7E?&0:;D\ MWP9/Q.DLR2VE""QW:%Q$IB?[Z*A<3_9_OK%'U;@$KU)P:,./*LQ%A-HP52L@/Z =.I(<\.J5D!2PYV2DLX>T5\8QW/C!* MP)-^!IZD"]>=]KCG5>ERR"\ HQ7(BS'7EU4C)#EL!DS;!JP1#O4E9(/.Z-%$ M9QAA%RY;D8=P>7[]\&6PNIOY/:Z)CX$8P;609[GO'F MG"2,=1-E!M-,)"1TYXLXC09FM,EXGD2@5X>^2!YB[0G P%;0/F!;>5B!@;NA MF%,671]7Z*HJ3.)AW3R5QJ_0<7]!?OL+X;:_0Q2X(QPJGNO<33)QR<+-2((E M-Q9"G>+.( HR'N:!9GP8U16,=F.*B*;.26H_3_311&CXFJT^@_QY4G5#*D*Z M$[K83(Y]G)0<5F..S7D 6N .IUZZ3>&$^5BOB;?ZP?,E#+;-F2:86U090#8AAN61+$6$?FBS("7# MD?:1KUZ K;Y$I6B%M>5\:CEHVRKHE6ASDHY WFO\ME!% #X,5+!H(B2:R.1& M((OR&0>@Y)'I*J@/-C>'4W8> M_B'TN6*-@!ZYHT1W9"8.\# B*I/29W-1%/JC=4J:4"FC1[I<2>&GG$!,R;%Y MSDR0W0N\QJ#.@1AKXB:X8@43#2S1#.CEJ17A*EV!)8H)A!C,S'NI+MIC%LPA#GB ME9)\#YAXT$Z:9[<&)G(+W&#Y,\65Y1PGI7 M24X+X@74>5U"/+F/A8QDV5-AZ.D&-\.IO!?^U?8]T[+R.N=+EA17#F:V;BC= M U%8N5B/'2N!EG%OVIBCHID6+7M&93%XXAZ?\"LK]]ZW%?BSX^$L9N$I1+^, M;Q9F?#>J$CB6H9$C%&%#3P<@ V/S&P/3$7TI#\S$ "ICJ^/F@YZJ!5WD_80Q;( 36==#@PSF??Z'T(-7X"E7D$#^!D>#]<[EX:Y-<33_8'D$<^2]V:_%R)>NB5\* M"FE0W!>UER#0@AY#UU9-1\#\$:2S3;$0D[DR)$Z.J.49)"=);5KE'>WJ==V* MT^/ >B2"F[%$VUO8-F[X\B]/GTV+JY>G[<7>@A$UJHU,.:A<]5LI(,5'*7&F MZAI<$Z=?=08W]Z)/N8^J@^,NQ3(Q*FS^'CUS7G /L=DVD4-V.Q++Z\((@["9IJ-/@[%<< %<7U,W#E32-[)/Y& M[BR1!H2DPW^2T*?4,/R>S::J;E))IZ0=6 '#2'-:)S$C-:TJ$H[)7T.])MBC M/HJF.2*_1?;)*=<(U9A2-6H8>:*HX_-Y<W!HMY9!R&+TF=,_(;#[%IC&\TELC? \K MD$1*85^<)'PV]I59C[8ZFZ"3G%LY M.&$-YRN\KQ?IA:$@??*T-HJM.QX&V.F]:UCCW.*JQO]>CGF04V?'<. (F*H6 M!+$']Q=BH^G*_,E!K\6M:;!#"%<\V9!^&:<8G&2JH#H0"09)' 0EC"@6[*Q9&.<6$<,C0%N MC"A7A;[)KY$_C']M7#8N4;(QH0'!_F@2BF/J MB@ 5%>7H/,8/E&:9C_O$?S$EF,B3N+#_<0BRV?!+JLJ00*N(#I(@'2* ;[K( MZ?OAJXQ5V311<,LN&?R_ 2S32$3HY^&:![]&2 /%D Q*Q4&+4N05K1YH724Z M@RE% 8UQR]FV.2.-)%\%*?&&A#6A4& Q<(J521!9V_XOLRV1-,;+K5 [B"@% M",-\J4[*<;NW>Q)\)0=?2B=%D;P7=^CE7[<=_FK>ZMBP6*6B"5 8_4PGFYK1 M<$E.-N60FXW?08T#C>!2=;#E3#2Y2-0^_&P/VI?M%5&WM>+SRN7C'%!FQ6]Q M+Z*GZB09DD?RA2I2=E?&5D#0LN(!EI%XE>"J\M_CB]%3_]TT-_% M*5,0YGV(+KL+(GAPN8W>?TEZ:50><\ZA?-'MB3IUE'2\RT"DE+\KY<^1X9+1A#IF&(AE6X MX"B#+9C"T^^LF):U94KGWD*P)E 1QO>)!)COOD5W^2+B2)&\WLA^2S0XHR&' M9-+07T^LBC-9O5+4B=^0Q^!+ZT[<"IXTN>*KPXDFO'Y;*6*;( M>L[E?-!7,(/S=899L65+6!&LIBE,CO8O,=U1655M['>2/));Y6J].JB-F#QP MVEYL7U26WMCO).5TU SNV]$;#Q/&;"2QL]HKCTH9>F-2(_::H4F-]$8E267T MVQ#GTAN5,E7&VMGDF42^326FFY/JE^F-W61#:XMZ8XU!OB1.L7V]T;_T6BJ/ M@7[VLCFO8UFO^JR?D2M[J4=U!\]VG(,[(4RQ6PW MC<(,6+A)N8?H=&?JV)4MSP+L(4!&QD$MI"LOQC=X.D6@B_# I_L$E/BL[,* M^MTDST1WOW.4TGZC-)Y'6P[SN@56=_GU=M,JY GF_295[$5U=__.;C'BLJ"\ MYXW,9 NCY*JGZN7_\HO9CF[?3_ )KQ@*B]RBS.(J9 Q@@H^>%'E$#5)("#P; MDA^@!B40COU!'RK7Z:GEX(RY.F6L23+FN4-$NZ2-^LU499<$$>E^1_EF*,1& MHW":"Q:DO%_L;IC 9\!P"74B]1N*B.X^BT<#_1L6UT&T <\#(4G7JQ@L,AE$ M-0SKF8IB>'R>=Q84";Z9VX%/0TU-*:?*Q::-%.L->J.C$!9R=1MV5S8W3?*( M]&K!3;=C:27F=:U&KKX&QRTR;9D77TKHGF^.)1,JI@]&9+24X4O6'WB/H%O0 M&_@+2!8OY HJCCJ5A4$T#M(R-=ES%_O1CMP@0YVX1=";*(Q^O)V:3#;&UD3+ M#?_NMOQ#M<1"G/60E.']>TLT=1MIOXZ KX#:FT0 H(#'B>6YH@X",!%;:6(5A./XR7*+X46_AH>6QN\3^F"_ M$8 MUW.R-+$G9EM3<(5*/^2EH)8./X/ ,AJNQHLF_(>7^$YRMI]ZB'.>$B*[ MO>0$IUI@=YTLO()MUEJ\]"4RX"L+QW]83[[2T1-*!^!>Y@TF.XJZW8T[BC;% MG["F%B_QV;(UT((C[*F/C9P7]7G4?K'[IM\,*Y@@03T HG3*"=\G-2H$"O(^ M =@F&P5&.!*[(7KY8CV$T)U#2H.O65 K9A:N^A-\8]&F7B&)IU<;)TUM@\Q) M(BNJ3X3ZY#96'UE]HO!\N_^I@^F9W>7F*]NI?]->6X#7I M5YU15182;,>%DE2RDIP4O[TZRG[5%4<5T/%VPZ2+7K$BF?']9&=%>0'I5P;W M)CV^C-K*Z@WHM]NQ_J#I6-]TK-].Q_JBI%RPQME)RF5V:,1DS/;%>9Z:K8Y= MJ7HBAZ/I;+F-8AXO ,M6-I<*QN%*[<>B;MO,"6QFOID$JYG)[G6M50QI,54; MYX!9]OP]3W-4E4<0"8!%C"W$3>YQ*EV"=R ^?1RGF4WY/%O%A:=T?!DV;7NF M\7Z@'PZ9@OW8<*=,PT%[0L#ZG^+/\BB8.&Z0""'-?B2[XGO(0VC*H<:3O:.3 M!1WQ*7C=3)MT3>W$)'NX*=)EO!?K!Q[RR@1PM;IH?W05.%)^H3 M\_.]^>BIIWS3A><,DT28*3V,LO[$P)SKQTEL@>U0MOQ2="4>P130L>,LED M-<%(L>V]KD6FA0IRQ@A(;![SLJ3SP,$9& %\'25'[CG.C>5'$U;#POE6R$-? M,LLEY:8CSA]'>68XTYK.@DZ]#[XJ&;ZBA+Q>BXO-_H7H'HI3<./CGR^OSF[M<7J&H+7V.TZ3OP8)3 MM1LSO&JW8/5./ZTKE5#+]P.N:[0ZR/TDAQJP3Q9V:5:-!%)8)^M+$IQ MGZU0-1N0)U-#A; 2!R81:,#3%PJC7]M)S#)$W\V2"'$4?!D]R, M+_^"H*\8MA ;G#Z!Q?+XE M\'^1;7T*O,I 2$(V4#).J4 MJ]V2^5W<,8JV4M!78*G27X*X0UB=UQ1?Q'?09+LB%Y62*+8C\-WO<-#X,3B M7^]7]^H(CZ,XS

FM,;TW*Z"J!)036'94\F>'(63G M+Z_'R.IJQ9V<*%5:+^A^-9PYQ$%"@P2#>5A^U5P0H9$1PX6P:50A>4A\E$>J M10)/D>E@:^4ND<.?!U1Y;E+3,"-WK\[/PS,Y;1K533&J:TDGU-+,B?] MT=Z)'-B9\4RG>R2>RFC'X0^35D,3C6$'L2KNX#JGX3'9(6/'&@E/EC(PAAB; M:RD7JJEJJHR#J0)Q*)Z?JZ-(&!;+9\7VC[IPZ+Z<$)8-FH->FX-FK<2 @/0E M7HMI?SY4 1P<"A@NC&;/7PR^9-K71P?YY&%"]4E?-\,#S!>8,[\\G#M>? M:7ZT=,3B*I4%1SD5A:* R:TGK ^8@_9!)54 ? T4*C'/LJ,\"4=I/!L55?5, MJ&>UMB\*ZM5"49?C,0^CKQV-2IKYN6*/1,%FBMP/%_SW%3G??/CJ!E-RM=._,G%27\?F*NB24O*@YV9G>2LW$W;# MI_>BUC?TE"\3=:B33\9 Y/=F5E(V[M#3#9=&QW/=D;-#D6A-X5',A9+SX04/ N1"]B>"%#\!8B37!.>@8.+*:'LJ:;Y1$*O2E 9WB MEA^B<$7+HG=<5F>N,\OHI%\YB!8222L"T=)V)>]%2K"#R7? Q6W*[$8F9?!, MO9&A>@Z%:'$BM>C*/9WB7R9 H91N+I*K%^+R;>6.YM-+5 4I^J1;GB.M.$U( M*X"+JQMY.QR'K!Z1YS>%Y4>8W.U/<">BXPF.3NXVNH>=:!O=5\;](-O45(' M.^.OBIGI>5Y _::Y/!%S[R4@@&?$W+BBR "^ M ;]@RD)&&N($&!!_+S J=^+\H?!.FCCL1+PKBF3,)+*1^<[E?U,EYM')UFV MK]UI&W+MT$X,S$D]!5G IR?O!BM MC*<"5P=I9;'G;#S#OC7>]QS!N.+C:Y/82-SQL24& C"T(EQ$]?D(+R=!&0"B MS'26MV8X32J:J%:13\.K2[[EJFKW$V_4%P=42,JW@SJ%5*/F3+45KK2LXH9) MF#7QZG1E\A0(ATZRGR ^J=BAD4,@@^'-^AB;-K@+A!DD+(O,0OXQ'\B"U)8C MB'/:W3NS3":#./%&4&G?ZJ%6I(.>$@F8(P;@7L@%@;BC.RZW N$DC/"GI3PQ M^+,A\DFL\1CU.+\*F!^!!V@=H:? M''D.X6WV"]"L6="&==%&_K3P7.YB/BKD\WW;DIA58^2)5X3M %\0R%KP",-_ MMW=W\W/OO=1852=>E)?O9E3'0ITX*/RF5CO,'ND.UXC%&25$P_2@62S?:P@^ M-$LK7+WW/*' .NCK(WX 52CE><+A.\AM!@5")(O)4)1&FZHSB%R$4G)A3C.T M]>SP1(K.65 J'J=*1<'D%AH*!= !&I$44AI8,E3X5^,F(GGU364;&.=_W/6[[F_#D M\)A"X<(BK-YERN&@9B)4^&DG"C1F <)9;I.IPZ;)5--D:CM-ILHGZWMO-C-(:PYER1!? 9!Q/LF= MLIP_@0HO#1O2J\<6#L9U/FY1K5XO"2-\_K#P2WG#Z_K\]E&Y )#.,3)B/_N\8./%_Y^0$LI/>YJ-_A"D0-'43C'17 MI-:N[*1PAY8VA__8J;I<8MW%$\@T':2IO,NAY;K6%-?38CL]QHVN55FS>H>U M)9V(]J(I'"B3K\)ZH//1SUSY_,'5PH=:YR 2;<6* %W4AK&F=JD RWVCXIS[ MR$L%R7&DV^.RT%__<^"N=4DBVV*8)WACQ-]O[FNH+E ,E[ M_-CMK(]QJ2\>&D!B#3ZDXT-BSMXV\>&#:Y_]SW(>V3F _?9/5N"1J\*M"EX8 M97W"0OM8 JAST52SRJM;)2>UK*Y1K,/Z3JNA'___?/U;:>VC3G'IQS?V%3B_ MXR32E%3HXEI2X:LKO."BK$!G934RAO!6ORTE_Q6GV_4C^_7^E@[^ST8#''H=*[+!E= MWB+^)7OG>0+ 3N$?MEMI=8\6W;X;P\":Z%3;D!*#%'99)\5IBG0I(/X351KJS>4LYQR>LDQO,J%Y38I!Q,*.AM5ZU:EG)H89U4*V>Z)[Z8* M?..9UIG)W+J+VJ47WX>+URP/PPRQF]^T#IU_9YGL(ZMCY#9T[7 )](K"]'"Q M+V0M,&,U)%U+I(8V495,?7LDDMP<='OFZ!HDLEE3M!B)U,1DK:_GMUFE_JN\ M7@4P'LL*IW,V\:QFE8HIYC5Z*I/I*5QAN%V[J<@YBQC/:^F'F]IDIJJ8U04Z M-5O]!DO316KYMX"9EI:EOIJ.V"^N(F[J"C9H4&UE#V^9@K)&A>\(!76/DNIY MZH4H;T-77>ZL?,BN3VK\E75SQF0T]RY Z$4IO)O4D[L&E]JX&G<;NY,SKTCZ M;1"[UY!?C9>P6:59I?$28KU)O*5*D_+>K/(J7(2BHA 0/83SZ:4\"]_/3V(1 MB^4TD:R">O]RC96T4Y:MY*6\IF(%+N6MF.[E>BG_U>0*-1A;7R++FQ%<1GE;43C>&P?33M;SB(7CZ: MXF"[;I7%<>69&VMJ:H50?=^U9J(7E?S$YKW:(I_)(,M+6$][R>@ZLRF)Y;>Q M7$E@%>4*LQ?Z?W<1#AO@2NM=U09+&.M\NDQN5SSI+IB@40[#2YC(L:I7KWNP M.)CD]>-G15\XSB:8:UXQD'K=YA<4VISC>X>1? JU3&*/E1ICIF3!W8 MI"[6?P6Z6$799[4^6293+9R;N6S8Q&H,\;C5.=II)6H[^9W-41IR7XG<"R>K MEDONAZW-%5QLD4:X O1!=!+_0*W.0\WN@];LKVK@$E=:N*HRLAS7"<\^PWD= MO#$^ZA:[V!I?4H08:^BX&4WONQMM>I^M?"[ :*%'?J5-[[<3D\:<'G!6M M?+=P3+1R2<,P0SWM!?#+ZV%>43B\N5#_3S]T4 LET3]HGOVQD$WC9T7X7%?]\%0=M N;H(QO!4RT&5&SZ90TNI.%"K\&%!A<:OM#@0NWX0NW3N\O1 M)&7+*JY.7G!ULJXF5[-*LTJS2K-*/5T 5;/JIHH_-X&IQ:'Z=ZR7QJ(=ZZ/9SJ]K8X_ZU!JB)(U4]F M5+WZ,*IN[_#-#Q6L6G&^1@<40\W2S)DLNXNZLW]*]C)CIL-V07U>LN!VF,9A MR1JSO)A+?B]%M>1&]M0>4^Z__JTYGGP92N=T)YW =^<51 M&?[@:-T'7E71DH_-=BAO1$PAE"G#W5L:RAR=-BA3?Y0IPYM;#LH<@#+2.CC< MZ)3Q!FD*(4T9WMKR1-/)%JV?-^*8O??['48J ]]UWS=Z;,,LLIE%&5Y:PK\' M0+]UF<7I:2->:H\Q97AG2\.8;N//KS_&E.&5+0=C0(OM-SKL#J!,&>[8TIC, M\1:SH-Z(%_;>&^YSW54W1]:4O1K%=1.:JM]@)5294T&:4BEM%"MB)[DW]RZ+ M[1R7X=6]Q\XU% %"1"XHI2IM25X<>N]KADT-%B=A<1F.YO6Q& 1GI0.2&BQ^ MW5A)D]69R_J\A=I M351_]W85X^DW1-O%&GX>E^$[7SN.?U*E!S0GG#;@]JJJD6Z#U@MH78:#?UTO M[7&E7MH&K=\@6I<1A5@[7-4Z.:K2)FX0^PTB=AFQDK5#))56BI>$UKO0,CRR MT#JCA]]EV!==LB?>\TV 56EX&KR![!4$:BB)J*4\3_311%%MIF0L:%HN+0E[ M<.$CU6A7>;2$=N/LA0XA>X!K^I-LZWW[]>KA+K,O7*C/MVPB'EEA,MZWK6?_ M3_&_83MQY?;KCY_?EW>?6[ 1TU F>%L6V+M''.IR8Q]@9_X)0K]$?I[X1O;M MX.OE_OG=Y>"?^X.KA\N[CXIJ/*MS1Q(<6JXFBP#HDS)AO+-_#SOW"]O\MP[] M ]];,-O%G_:4#XEW\_#)%S.S3S<7'S3S5_^6S3=F1GJ',%HZ";;'V)C M^2A5T\O#-Z J$QL9YV^N-8IZ$YX%-'3@K3K:^/R:\8GXA[X[(/IQ(8+8.Z-6 M]9@1=X&LWT07@;H2(A#+BY!-F(XDB2T\4SXUWWNSF4%MAE5#&:G.1!D;UC- MB8L?%'7!Q7[_\+B[?S"X[.R??SFYW+\Z/CCNP)_ZEYWS MV%P$VN/_;^]+G]M&DGR_[U^!T+AWK B*S5-'=X\C:%EVN\=MZTGJ?6\_;8!$ M4<08!#@X)'/_^I>95044#I+@!8)2=4Q/2Q18J,K*S,KC5YFV&S%K$&+SA,N+ M#]?=_ONS=F?0/^M=?[P^&WRXO#B[./_8>O_QPT5_T/ZXYUX*N>8(:Q^?5?52 MV&/?Y;V_)PZ @N,#6I+_W-YEA=1%K9@WK7^_B]+X<;G3ZL S:VKN7;/#,97# M76A(;S:I[:LA%R%GMO1.PHGM5E4KXM<*5>LTT9G;Q=:Q/E\T=H@ MC[0/JPMV$,TC.&* 8& >&>845AD&" ]$:]2"'ZC?U11,I<@GBPJMX5Q=HE_J MW?U&CU+S4>J(OTW9SV=7N6#"QH(7_RM:Y/*"%E@;@?PR+PK1-0._R_>FQEB4 M/.<>V=$EI[=L4[ESR/ME4=HM[TW^SQ?/?<2K?A_8,'R8SQAUXE8KCWP;PJS) MFRS5AEO]ZJT/ZM6>F^/YNF.2[.]1V+(V._HO18/HMP%.S7Z5=<8;06 M)MPQ'"A)L9V7>* L?\5AQ/IJ3Q71A(A^<[?N3JY/BG4&/ @7717=B]E%=;2= M<5&GXFHV>]#X+].%6*KQO73M-:WS=R.MNZ\:M*T_T.CJT@['H.=W7SIH>\ZY MJ-A".$)C?KW,X];WC&OYFMT(3)U7^+)>\]+V:V]6WN:IF4737I1ZRWU_Z>LH M28/-TY1LB^$-0]-V>7J&_1A-3/>14?[&A>_QY(R7!(AVE9S9 GFAQ]9C5S9V MS93Q"@>5;U47F6,^_/0?X%Z&OEMGWY7),R^W[3/.F;T+C M?W9OA+[_Z/EI'V#;X$ZW<=[>9WNG^A@1KXL;RZ6<*N?&L?V#66?_RWPORXAG MU3/A^M[H!O=;=A/Z*P9+"_2QF6R_1B!K!+)&(&L$\M:QNC3&4B5HAUVXDWET=CT"?_7%#>M17@$JN[I FL1B,QTTJSA, MT6]5%313 5+;ALS:W7WB+73 [#"<6%7 ;"U.//)PV<&S,7O$Y:VTY>)_JT[- MO H\5;^U"_3UR\NW:+C>;MBKO0M8]HM)H.P$RK

:*F,0Y8'FSWK_J_5,$( M]LN$D\U\E-6_\(Y78)BN95AV,,*[UP:P R&E<"4TCL5SG2WE7CDNL6RB;.Q M65 P<*T/8LEWN.*B,CRC3K_3[G9ZF5([KSAI)69ZV<\*[DYR$XNTPL[3%,J+ M7FEU#"6K9:S..BCT.E@IE7T'8_,\?;BB&#EM[;,IG->QR2[T]EN@VYR9?G"Z M.-)Z7,95K::X;ZSOMAQ7<8&(([FR>V@;OLA2L0O,DZ(+DU+N!USL[Z34QV9+ M^R3M&O12)OE9P$:_6)&/.@'\NV8W"PBJS+FKN[(^P,5(+3Q[$)ZTR[JV^/27 MB$^[U[RJN_Q4>_2\A.A-K:98=RVY5Y,V'7#0!JPV8+4!6XLSN#@(G4E*VL6) MC=O(9VL8N&H$[I;Y&.J(H\UGG=+9#,R$MYH5M^_^Z3ATN+9TCTG*+C>6LJ66 M\.[D[+)9<86/E)C5NZG+[E_UIQE&OD!>%E2]Y3,QZ8]+8KU&8;"WD[T*\WN%(,W%A(PEPRJ[DK2H7"C-:Y@KKXS^\KDC?1" M^E5B<@0D1UF&6(60KY5I[.1L_2+.UD6-8K?+Q*S9FKF:EVF&R#.$=&AJP XU MP=?)+E)XIV+?/9T_>CY5I0\G/F/&U*/;@LS%D\'XPW0CTY_+L[97U7='R+V%89^>&;.$^-W M]C>N/]G74.AC8*C>7K3U[ABI>\ ZYS4QQ&N@K,^ULMY MOK[5M9H ST\>YO7 M".[IZM)'P$?G^]+1V_'/$:CF5V!'7VC5O(%(E4N^;ZN:,9JUN7+NZ&9@1\!) MY1+,FRKG+3CH"-3S*["<+[5ZWD"HKJI0SQ^]:-,(8KO1N>AJ[5Q[1NJV]JF= MMV @'8*N@6Z^TKIY Y':;_90BI;]M*G=<]73K1&/@(WVDR8LP3ZUJ;+Q"@WF MAPGSF3D.F5]SU;LECFO/HE6^-NLR"=Q[+G& &[VE-K]H]/:* 2E'R0K4_HXX M3G-Z :?O+;WX(6F(ZX&S,16KW5:;=02(MZH+F'2 M]UC.)\L9\$+#\B+$YF=D:BM@V2;7H)8(_N)9+I7\O:=@-SG6>G@7OM'KM386 M_\J(6PL^K,4D7H P["V/O&D4M;-Y&.P@$E"-E[;9^1%Z,U'=3GY"C)CY3%+@ MAWH"_OAU/Z7748?^8IA37I2 S7P6,)O)Q&G7?DM,I P8LQC=0@@]H.R@P+:@M49R-U7X"-5 L7 MKN*5+=6*&X-I=ML=X:+1.M\<,U-K\K\@&7E!2WF=XM[;+>1I4V.G?=3.SCKA MH-=60NF.N:'!?LR8B[TI7S0Q[,#PV0CI:N%C0>B;N"%G#C:$ M'IJ!C4^:HN32FV4-[UO]XG9 E^NT TH?9C=\_C%WGY?G[O[)NU8SS]UB!]0F MOCD;^&]C^@>("-1VX%NRE6_);Z7Z_XX%P&U)41,JIT&U3)2:&LP2PZQ;WTH4 MQW*M9:^,>],V8/>#&0/B/#%GWI2L6209OUGVTSNJ$<5?P9_##^FGC2M:R:V_ M-H/)P+7P/S?_CNPGV'&,6X-SYWA!Y"\H8W5>6,8J4P>P4)@V\0D:7/0:1@"K M'!>4>_WJA4OWNMU6-NG,N&,@;@U9%07[F_+QXLH^<<&P M[!/%=8%...L8V24;$^98QG".@LU@A480#0/;LDT?'2W23HZ)#X>>02EZ$/*9 M%]AA &(%?AA(NX:*:;@$;4=VSY"$4A,?(]$W@1R8;^HB9Q\R[_BJV'H<_ MO@.QN1]-F!4Y[-LXH6RQ*!4+T$5Q';CCJ 27O/%W9N*\XG<6QRQ^U77?ZE/F M:UC0C6;>:[WL&X7_0?<^&1!3[;],9V,(QWFCU6GKZQ9'QDK%>-A6^Z"LU&]< M'/).Y9;:.IW8JBO4E<(W&<>PWGKYY:/3>QMC5%>Y99N7GKC7B%3!U M,=:TQ!&S#Z9&P#48*IOCK0]UW>)0+D,5;D(CYR.0X^!GHGC!Q'L&WG(IUAV$ M9L@0=8P-&NC/8^RT4/=#; OX<=66XXZ2D!MC,I$S,A*?TPCI#[8_\"X:O=9E M=;IA$4D/<.+M"@>@12 O L5@Q)).5M4B<-ZXN-JG\[4C$5B<<5^0\]*SF6 M]-\PH6+F=/?L[GH!6J_ !B#A,U*]2%0"Q]-VZ=X6@)46)!H MO5R!5#@@**&3 B7@DHPG7).Q )"P=%=J#8MZ /=D),*@?(U![*04)40:ACFB MRP4$DV+P,XF\?' 2F=SDQW_O= _9[%AB%B>9X\YXE 7J"/ M^,I\9MDAS=CQ$( GGS;,V+Q:%] !N#F^*XC8>%)/2 /8O^],=#H^*+8(>&+ ]PNF?.M[+OPX(A4K0=4 M>I$_OP>+YGNAM&!]Q_+2LAMN*"$PO93 R&7 XS#],N*QDXE6*"'(^3Z;1?YH M0E53?._1-Z?\''CB\-\R:-,>83;:!E'/C$(XA.#5EGHVX=&&9T@T@Y]60X?[ M_:*L>1O9K=5;[H43T]W%B[KE:QK$L^)W =N;((C/3]YUF_E@-%^.0 ;S7R3& M-R8M')=VYI@,)F ?\!/9FTX):0TS;QJT #Y,LC>!\0R'J3&#L]H.!?AQ"";% M#S:*Z-<)Z+;'"8*Z77G(PAQF/M@G(7/FALL>/7 ,Z%G?= ,^=[!F+#8353:C MF9S^*/)]5'YB(-@(L!CP<5)Z'JP,31?8?3]H&M^6,\D'T*-3Y)(+XI(.YQ(D MSGO/]"U<_P<;E"T.9F28)^*46\XI14GQSED;=-3%(3FE7< I1HI)?&J-1I3' M!FD\4#[A1F-.)F=@R=E>%,!6;B6>!)&%TPA(7GJ +M^Y)A_A0^3CG \ 85?U M"; &YY&$BLO99.TB*M17>16/)'_BW/(73&OCRPGYO@$IU2)M[N7K+(K@UUP< M4F+OJ=Q?4F<>]ES>*&Z]R*#FAS+O1$YB1FY3P$)L3^Z'$\'S,860E$_HD#W; M\$=Q=4,XDBG'L(APX'1N(XO27_?O6[!SGJS MYR'Y*=OX_?P:XXG%)G*[1NW8E\8/#]B:?;TKAW+![5X[6R!@BU'+Y,W!^;@% MWO&LH&5[@ 0XSM$% 70K% M*?6M)330[G=Q/:*UEY6;// LZL]R[5:W3CPW +5G/J*M;X^P=BE,^RUX>ISW M3NO"<1W-<5MP7*=3)XY;I>7PYN3,]"G#,(N&CCU"O]/EX4_+F#FF&_#X CD) M@>;1E;,X AYM7=6)1P=*-LH"?\B4^:B$7RF8,37GQIR%& Y+^#>)J-265_/F M6AW+E![.9AY$C^![&R(,9)P9XH-2];6H:.@V$(CE.+K]#G])Y;SV7)MX.0KN M_')5Z0[X,14YNT>17)H)HB>"P>C?$08?XSA2JW0%9\&I=%OSK_@-XV:L94;*@L+NOO2!,OK<95UXV MSWNE^;+SPOARS\.W#L^+%ZU2O/@_Q$/Y&/H/.SB[%6;T0%K1Q<_^2NO5 MROEWRQ?N>?AU].I5__"\7-P(L-1Y7IPCNI,IN*_D4'X;"XZ,LSH/WGN%TS=F MT:OR-]:W--#JT5[G6"SU>S8+>8X_,=:3S[HM;:_O7Z@[Q0?457) 79TAZJKR M,PF^AJJ5)OHZPQ? M!ZN\N)I(J5-[OU9Y<1M,8LCR?3#K88^_DLBYA% FUOA:O2FVW:ML9\Q"7,J. MW[F3RBR5V/$[*=-R<5YXV"$\?D%E[5V=43O1!CLW]'=4F6?;>>UF%MN&^7 MVJI(XD5U(*J=%]&K8"[57K)8.8W>DFGL5A#6G!DYB2?+0+SJ_;_#$7 9++QB M/C^2:1S$O=E0RRY(?5\>CW^S0W6]8SO^J-1U-;<_MIK&0=4UN5='H*X7W8S8 MH&-G:M:[OQB^"]M_94F[\I6LOKFKZVO\$3ESHW/.2WHTDFHLLK"&ST*J#;(4 MFMTN4+E88>*LN@+#D%[G\3+I,_6.4UP. M!DL.NKS8"?LQ8@$L WQHA: M9O9!ZYG]:;M4]/"SJ&BXH@-IMU.FKN?NE%*9RF;]5&6SKYZ+9/ ]Q\'R'[)2 MXX(29WO6H87]1 O&B@M@5!-P65(R3:K*"<)O'=N>,^NK*P4]TJ=-XT!R3A,RYDW M4'OXLE@2SGHJ>-J8>7ZH%!=B7!3CZ=,52SO@[S"&HGRAN;QV(_\=8L+R8& M7X"=C!S9'QZ/ JSZ"T3W?2QH2R:*G)1">"K0 M")K3,,>PN&73'=M/HA+4',P)K$D5%ZJ"]R'=J=0AL+./.X5S;!H?(Q_53T.4 M1(S)8]E+:TC%I)G"_O'QV9CJF\L*>O JM'6HR*'-^SV;R?:MI51#GGR1Z@V% M,F!AZ'":8<$].Z!29<(2$X0N,SKG$1_;$<,&P[LH0R'8?T0==4@[#^?B447' M8\3!0I63*>_%Y[E";I7>!I4W4SCH(;VB).4?$4B^0,(5>$!HVW&;W.95UZ:F MH(K_X[^,P://B&U.3OFV?8J[93[6BS ?V?OYK8FE2&.'\*Q3VB-L MG[P[SR.F?S**) 9I! _A7SR&9LC[ M*8-'E+\.R,;"2BB..:33X6G1&>5)-4[[,A/E'U$>14U:?G"/R&:Z-R/+-@:^ M.;3-AO'/Z-FT0RX+[\V)#XJ]G 5:PNYL]:6/:[][+R<.BQR"R9<4R,VX5W)' M%+-4T@5%V)^2U4O',OY-*<^[_@D)=@%,"2VDI&AO7'%\R-+N0TSZ4;("B"RH^9+7H7@A?7WV++CLW'!.U:RS2N"M\J(SSE16<@O!E2%I7]BZQ MU,8@9NQH)!XS^0#[DWD^N\_%/E#**$LK6A-M,DLX:+XWM8/ R7I8MQ,N%LS MWN #U);HKK*,5\];"V[1$X/>\;X,MTC3!Z7:^ONY^A?B2?6#93P9]RV!&0>W MO,',#EDN+L4L>]=PYI#,(*Q0XI%4H(9VQY0&+V?!F)""YS@UX3GA; MOQG:3 MJMZT#\JKP3(&SXA[B>IS"R(N&4^_7LY(O693-B3_-8E*994&;@[*[)LXT+]$ M3$HFYZ^5[23-;K-@N6Y?(28L_$RS_^(%P4!9P(.W4_7=;A:4_2E)XG1Q=]28 MI2A:=.>ZDU"T<\P4[6(9_();KIM0--V)0U)V+U7.XWMUH@7*\L,/-XFGV$LN MJR$#/^ O.?.FL2O9++Y$ELV&'2A\69&"79@V(JNHNA60T$R4 %P+RBV#::\>YBD4_!"99GIA:E MD;)-PPYMI!RGR91.#5O9;HWETVYQJAZUSV3N"*R<5="I;OV@4^>739@8IGP /3BP)X\-%TT*H9,681BI":(SNF/16X$G@PB(-I M!#SB:8C(YUW\9# >\Y&(6.&@ 8^^(YL4,_?)]CT76<=T&D9H_FC@.]$B,AS; M'-H.Z3)X,VP#6"^.\BF?2SKOQ%L14Q*7DAKQXXCY>9XP3/'RR)0WY* MTV(@O]Z,6V- :!XW31MOV8[1V L-;<"@& X 3P388CD$72:2P12[_0&&GBV3 M923/%$9N&$B(1X&%PE4AX('BRZ0_ QO8R_3E@$5=UHZ4W0=KZ_<"F &/H46 M%AS,0Z(2ZY>7&"$FL(WNHR>)CJR99.2_B0"Y#L/#W=+6 M'DJ_-8EE38TP&9_YWG/\I^S?L*V;#CP\W=[\ ^SZ;\T#>#$%OS&4I OUJ M3!A>C_G%H M-XKKWWUKT#WPO=Q-<_.G$^+EP;W[_4+PWO(GY+G;FX=OU%]O] M'K\%C,Z98\Z1C*!3V=D0;9U"-DMVP#0F/MI9?P-?_B3%U,^"&@1_0[^5;S,^ MD?TP=G'3'V]X)9Q:!J*V1.N'MXDWUV($,D!38J/*$1P7==NCIB] M]XBLEVMHN%R&"JC&U\FO*\FVC;$X9 L4A-YLPS?@L-D;@/W>2J$O&FX!0C O M*^N.C$U^3#+QIZYEGD@.AS\ (WT&/]7H--/=>/)+VR+J4UP-8M\K_M-T30XW M@;,-?9XHB-&C ]=TYH%-)LC'^-B[EG =>N9. +;AD6\)V/LMTND$A__PG^9T M]NM _GY:1$!^:4[(8,**ZNVYO9$@?7+NNX6]$M;,)Z&R)VY[)%C]0BFC)%C7U"2SAIQ$X'^YAJ$G02SSN?^5+)T#AP,[3 " MX_$D2Z-D#T]4#/R4F:Y O-P+N$?G8B#=(?@H\KDS-Q@16J1]U05;'0/I4TH1 M<"\H_FK[IN"K-Q+WF8S1RX^!=KOB%Q,&W!PS8V+Z0VQ=CQ?N0MZ3'*'(^P,R?VD0XKR'&2IJW300RFLZ)]J!IW,',C8]\-&/Q?1S$JP")!JZ+:[@C MZ46G&UPG&*=U]L]4F(#\#PS@TJ4&@T<2725:)Z)L_TU7'HBV'' 2@!<1_6?6\_D&P^SD\I(Z!1 KQ1H:(B/P+Y""-)4NN:G5:[:M?2USQ2L>U M.*9)J$5D[64'#3]>FD:"YPPP&&/PCN^@L;UG^2PG:+R:B8D0:L9<@[PA#G'C M.MLD=.8L'A(\:Q#S9AUVI(9S2'F+[_]9[!B(HA<^]\46%:9.KK46A@;RKD;: M@S\I<& S#N@6D8$UC#CIEK:O5GEXR8^)TR]=>Q%2ND8W/2X%84^!(4N[_>DJ M$3/XZMD0A/?[&5U74Z()A?7ADC(R,C:P.#10/)56MA9.RG%?0J M)L2>YY#)0S'W$80]MN]@H @M20P$4[["Y#PG,D14V (TBCA.B2,#]BCL7AOS M'VID?.R!5\[(T@,9!/,]C*U8F&)R2UQ:P-SK$]?L@0#@^<%'&"NW8< BT]&'=3;U_NI)WZJAEMVUN]VZUT)XM(D5<: M4E#.KN*SZ0%!T,:?'&1Y0PZ%D@K=59QVU:+6[*2^F$TT7QXU7UZV)5]^Q6(= M+X$ME:C\T1U$=9.Q\Z,0L:M:21A)$\<>'H_0:#X[6C[K:#XKS6>=H^ S6@EL M[K4HEF(^>3S7]S9RXU]$1EKON-8L^@33?';,?*9/,'V"U7C'M4.YXHU%[6A? M*$_72W?RJY&O77ON;%Z:(;=E2 &OPEV9/K2]K-2_-D)HA:S4OS9#Z *_QO#1[:GU9JWEIAM3ZLL;STNSY M^O3E>LFI5J]A=+J7ATM.B521*/J1T/]')F]5HI_6-M<8>/7U@&N?Q1N=4'YG M0I,00%G^"D53W33>+)]!/W.?_'9PX1Z/IZC07?4#I ^JXM$WKO-'N M7!Z<.$?#MG6:B]8V6MLN:XIW]>?:7GM=]EJ[T>T?UDC7 M^;M:QZ?U'%_/''7^3L]1SU'G[VJ>OV,N\TV'=R.VIK9K!R'V*'MB!G:/=H.J MKXO6U)BLWGWH-\XO:AP!TCN_/S>BHQW'U[7C_49'9_!K\,(#R/IAM_W5RWKU M0:*WW2HK.Q1,X+1F6_ :I/R\T6M7>.-5I_.R+ZPHG==>E.K1Z;R7(LCM2PV_ M.OP+#[#UA\WBOGIA/X"EUND>]LQ6+36=R*M3H%K/\?7,42?R]!SU''4BK]Z) MO'OF.+;[*+-V.FEW&">AT;NHL)2#=@]KL_,5%M#4WF$=-KS=Z+9U).CP+]2B M_LHV_ "!H':5]9ETRJX.0MYK=%K:DCO\"P^P\UJ]OZX-[S8NSP][IM=R(U[! MSFM1?VV67+=;86E?G=([HI"UGN/KF:-.Z>DYZCGJE%Z]4WJ?L64G"T*=TSNH MDW#>JW&8OW(@=>4OK BY7:]%:W'>FSA=Z(L86IRU.+^4B,Y%C:7YU6S[(= 7 M%Y>'C>352\-H/:[U^)$+=/^RQG4RM4!K@3YF@3[$[;DJF\KK5-L1A9+U'%_/ M''6J3<]1SU&GVNJ=:OL63IBO\VP']0#?]EN'+7RX"&6O?3_M^VE17DN4KWKU M@5EJ4=:B_%)$N?HP3J]WV#8VM=R&UZ#"N_UZEBG5*ERK<"W*ZUEC![[>ID59 MB_)+%.7JK;'S=LTNJNK$6IT"QWJ.KV>..K&FYZCGJ!-KB\_OF6E9MON(9_'U8W'.35-F#-G8\YEA\]]"\T?5O>44BBCTJ-RXW&8: M>_8>%\RLU[B\JA!GOPE]*A2:RCRN7!M]ZJ>E_Y>S9X?HOM9IU_C&KI:B6LEK@5Z'7'J M-"[JW,Y0"[06Z&,6Z -89;TJU?<\CY1O#F49]]JZ(($^J/1!I15.1150+K3"T0I'*YS7IW . M:!E?M"K$_]7QEF?9$/K2?=R%9%0SQFIM<3QKT?30]-#TJ':,U?G5XUF+Y@]- M#TT/38^7J4\UE&4S*,L7%@2_& J@Q0Q#WQY&H3ETF!%ZANNY0#HW]#W'@1G# M8R'S61!JR,M1Q-G:C5[GJM[TJ5/ IDYST7$V'6<[/H5S5F_:U(EKZS07K6RT MLCG2H/[;@]DX^;E4=\'_!?#,H2SB_H5N]J,/*7U(:86C+>)Z<6V=YJ*5C58V MQVL1'\C&66X1:Y"+3C)I>FAZ:'K4:0P-FAZ:'I47=]JD$N.ZK7DD.Y MP-^FG@NS\$;?-;+E*,)J[<95MU]O^M0I1E.GN>C0F@ZM':/"T<510'U/ZF-(*1Y=RJ1_GUFDN6N%HA7.D M=O';RYHC7.#'H6?-Z0_P,T::^<_%P6Z5C/^*@M >SW^]YPD3])_&C'',6X_??WKSY,B32O&3=,N0[4B M"O%W&4:G)5\;;UGJ9_7'29(E\GR+^?#VR/=A M>8*?K5X)^>V5/SD6&':93;G 0Q>F)B*OWEB M_%RT-[]_*+$WN+^;[LS#M^LOMOL]?HEE!S/'A#VP7<=V82V.-_J^Y'4PJFE, M?#;^Q\G?0F]TDCJNG@6];-<.;>S6S?<1G\A^&#?V3G]<0IJ*N..!V+B& M/\$&![_];+XKRRA%PK]8WI7W;JP 5-52*/PJ4>F%^#Y5F+Z[08(8J<+I!LFWWH*FD;);W;B+R[?AKU0 M?,'JZ[8-]CN@*69O ]-AP2](L=]^MC75%DR$"WM,+^.9^9 Y?U3[X7!,;,]\9V&(O[82=6!^*H9$%>--ZT MN\U.CK_Y!YVKG_@/P)NNU 4-+O/M=K.]UM=B+D:]L(5*2)2!%)?X96\ZF3GA M"OD',Q\,4Q^(:E@^C.,:PWDB;OR1E,P967'3K"/DBKG,-QW:'=.:@L$9A+Z) M>V.P'S/F!LKIJFE6@EITMO*YOLF_GS[O(G.KH, M*T*4&__[!/P3)F1^9LZQKA/X=4$8R G^.S)]<./$456'_:C#'+@!:O> M0K,# W-!]"&[?OYB11;(LFDW^VG63^S-=K%4*&;16O+!O[?:^,P?.O1Q*W.( MDK",/#< @0<7VGBVPPDDP]'_V^)\U0I2O1@]]%E7XI"#^ M8M12$1UD#ASMG:8/B.W4M%W0)8ITHQ8A8[K5/$^[QJWFQ:[/;GV:YKGX&]#4 MCUE8<["<0XHNB3?TYFVKV3]-*:\2+1:\WOBI.J.GGFKR6AGICN(Y-G M)=#!L+GKF81QA!"#S YMQP[I Y^-O$<7=HO(. 3?>VR':9\5+VU1=(>2EY9\ MQ5^NC9KA/B32<\NLGQ"T^,W2^I%/&V MX=@2^;P=TU(QX-K-J[294O)-*9-/?+?=O"C[=6DR'OJ$2*U=AF1*+T()=7;6 MI%_*0!8&)CA^Z!)B;H$?!MD\GHGSQS.J,"Y:3J%HS%1=,%-MC9G2F"F-F=HK M9NHK<$(9R!2BI,H]JT%2)4%2Z]@L$DPE#C"-J2I!Y'7)*[!7*;11N]UJ]M<; MKR"-EAZR==YL;S.DFGY+C>QFY3-O%J[U6D,):O!OHGBO-\8*F%EJ]#A#OMXL M,368&J?7[&U!7\K"I\?[:9/AT%HMQ)R5 \$D[]>@LWR0M.Q69,!I*?6I@SZ; M4)&GWP0I.U?-WL9"EM( G8LU@Z8%2#DYU&6SO:-)G6\SJ2+7?;6*WD0Y;YG: MVE33K=N\VB(_L$]3*VT7'E!WJ>YN:T-3*W%0$WN+8\P-"2^7VRT]]M1_ M:J24C%K(TEJZJ0@(JI73%NG<=7"CL9-RN;VV:C?/MS&R:NL3+@C2;:>IMK"M MLIEZ.1%R!N/MYV NI,#0\WWO&0\MF0_F8UJ1CQ\BZ=$PTZ[C9OHK"P'6NFLC MW;4$,=P[+5 Z;]O-5AXVG(,#UTZ;[!<\7(?;+NO>B]%Z9T.[J0 8K97/:\-' MUT[!:32U1E-K-/7QH:F%8M*0ZIU!JDMTZE$,W5VZXIWRR.J* X?[\\*&\5@B"4:)$[!"_,3>#\PI&OUPQM IAV1;!=^N4BJV@&\G M6.T\H'LE>KL(6*V\9+_@[84 PJ7*3D%R=S9!9. M 5P+C'=)'/??6O1/$5!;_*D$1#L'D]X!^3=%:&?(_*K@VM4@L[?6+1M9,\-W M7^Q_1[:%?@&JS9$YLT-0H7 :>)$_8@%W=+-S/"""_2!TNC:#B: /_," 8N#E M4&S)#&+W)0=]55*6Y\U6^D!3#Z$W_>9E^J_POS],-S+]>3Q:T_CFYLR"!E:A MR-=% YWD%'ML K?6EU?,P<: M(G8YA14QG"-9VGF#;[1H[XM&:#4[2>F%@.:5X'')W_6>N'MD@.H=10%]D8&? MW#0&%*G,;[&R'\;$7&X_\::>_3[U\Y1-/7=WE0Q8I]<\+P4KV?-,,LPQ5E(P MP #F*$[!P(R FDC#.S /GU$2F(M(F6O@-3LT/L*SCKC ]]4#Q]@83.&E(U/4 M0NR"G7\@SX:,;#RGF@@6?UW&]?+$2R%YZ M2VD'KYK]FBY(3 L7P)=4T$WK!I4"6N7YF$O3,A(9&/9TH>/W*'\&V@3X%U@/'.)Y USY\G&\H+ M8"+Q&'#TE"*?S/2!X(\T(/L!!C,=XC@P?>KA:] 2<5C(\2&A#YL/O VV#OHZ M,%-O/ Z 58 S16Q<9%B]HHGQX(;\?&;.\<,:WS8_R!P*Q?ZM$,/30CG<)#^T M)F9Y[0H)*=UPN1NT8VD%(\W8?:()U]!WQF))IV#@$X@D/QR%V_.G;5D@+C=F MP+%8UZ9K6F4O;[Q6&1GS/,YQ249[%Y*QQG&_4C(P4&WP^ ER.U%Y['O30O(: M"49L3:JM?SD4+1+8[A%C5L!G%'L101RK-V?PR \ZWD"XP-_+Q"82ZSOQ_86) M.N:&MTUQAE2@?7W04'I/JS<=&\;SA+F))2?IEH"'1#8O3:YVMG9Q,\':KF5L M?6##$ @7FFBAQ$FGB_*\;A2Q>:>WZ5TY"G3)M10*<#8RLREZZUYFHJ]D)AII ML4$&&GVI.-DMPBVX%,)[D3:D- M8Y@$T+;]]-^[?,K 9ID78()Q;@PQ5\A&$>$!)\"PCQ.T%UUT@K^#&O 0-H'& MQQ,7>)<]>F#'T^.^Z08F!Z88,"V^#K#4?;YN_*W=D4IO["$Z1J*#EQ"/8P\3 MJ6CWC#,CO3F-M3E=LSBR^%T<8\'D5V"<\:FEPH QTF_X+G:SAB@$]VP6&I1;)?<'W4HC6;@(F>&D[H'M M?0R;#62DR7BKOD@\&O\U&9TF>/OUVGAONL",7XEE014/@L #G4Q@L+2\^2@O3#AH"O@-89/B_)"Q35Y2^XSN-KYI9^R1@,?^ IP]K# 7-Q-& M"5 -B/TO(*]!)$CBIT/4+N#&.!&]4:#-\%!B_A-NBTJ$XDAC3 HM6FG1:/,3 MHMU(#,#E_ H/Q?K7Q)!**-#80H$6,"&:8X(!\YSCPO3'P&2U8)[EX>J$B=2H M_-^E93Z$'3/YX5(^ XGG"A+!V?5(YAG)B@"[NO=,G]JGMW:,R9\XP8B_IK@ M,8\FDMI+]DI ZN&8=1<.E55H,.+)>Q[*]X.34\2J2EK"4&57I66,P-0Q(8V) M^<1XD)DNG=G4J\>% L$-,,UF7L#1IU+" M9AZ".GCD%/LMBZ.&["!I3<8F75-0:;V%#T%5R&B&N.H%MJ1)X'1, ,/K4 L@ MP!G^[.*GI ;H[YZ?N/+W0JU\ V/013B,=%-@'7?X\%L,9K$QW1T4[LWRN36, MD_MO'^_P')TY$8?E,A38$4R@07.:S1P05@P5-^#JI5TP"A=ELG@,O>DI9>PH3 MN9P I[3NPH4V:'ZD^C&T4;)M(S@CK9]P/]O-?DLV?FPDI,$IX?)CP+J'-__8 MB*M4X#50D? DQP^F:8,[E2$&?;1P!1LMH",7T-ER 27?A^L4Q[F)145 VYA\ M.8DTTC)-"S4?V9&I=;6:;3[A5K/3_RDS4[QO)4^?6/H$<5/--0?QV^31DBC$ M&3AR*X 2\7+X+&3U,W@3+,6-IO');XS!\1*3BUS2LD@QQ219<5K5X;RHPQSN M$P-*ND68,)N12=/8Z(1"\T::;F#1H#,5FO'A (RYVHSA1M<5'$=!P"0@8L5K MIR:=>23B&2>P>GZA>&;88W@YM]\HA:BLO<12\4"'D0+2S7"&A %%.$#E M3^&Y<*@78AX@0-1]Y&&:].:;B4-+52<+KZG6&])R[R9RU75PNN,[- MYU6JQ0F\1.C&<70Y$3\?H8"8NBGEVI+%.)K8#.,=PJX24:&;]Y\?/@S6MP5/ MXPL,$1V9P6C"K,AAELSK@:#9,Y@S"!B/AQ-2! 6/62XR$-K<$EJ%<4G&HU;) MN:M\D:T]85 X M$5Y*VQ#\*7BU" _-0.Y[%I+>?;5#WN.DF85SB"ZBK MX9=H0Y(6Y7O%,W"H]).[.N+OJ\_UOW-J<-F"D;S(L204U^;P:\>FNZGD_LQ\ MSZ#+D&B-VAE<)&Y2^CL4;Q)9*S&U@"FZ04&%;\-NOJV MD;YM]&J;0V3>+.6BA)65>#6P4OBN/S?8DZS9 L:0">H:SL QI0+P#\KGAC>" M Y$[#'8@(YYT$33$

%**#::4SU2O6B& UX>80K]C3*3Q V>.,4V./Y5&[,O;NJZE%>-KV MTT?RD/&[^V0=Y'LW T1Z<-W#_8 M@1%]-P!G"*AC..:SH#9-7"'/1ND*"EV;$7)""(M&+UXL1"%:EJ!-(LV&FT-O MQ'BO41#J!8KQX%H2%4HY7SA^8O(HT3P>W[1/T8Y!R*Y"R3P;LQ\VPHIAX76.,N]HYDZA]2197 ??;A!N1=// MN3M.B0NEWD6)71,T#!\???8H=J5\;X23=\J%EK6^ET$_J4S1;C7C0.L&8R+O MTE6;Y"K5-C/C3HS#RN?/Q%9D\5K9FV9+-@"FWLMC*6E15]F+>QM,L+@71<5< MJS;.60 4$=Y0JCN.D0:*J'X$Q10F9@R7-'U*J/##*!)7"-'+4K#+S,\X6_)6 M9W/0O&DVC)O'^4S$T=0B]7%\/KEE*,\X<=NPUI;(0>8 6RWNRB(-C9NI3=6H MBBNPU($X:T;65A;7217I0D857*3 (I#]*6QSF;W0S!D2\6L386F;#7;Z:@4P7%;S?,4.6)Y+5AD(;@V#9IM))>4 M;+'R&4)07(+18/@ZO@U-B'0.">&)#(Y"AT\=SWT\H_P;A@@E_=4HM(*W'9H. MV1W!A&':9-M+^BM*HVQ?!6"SVBL9>3 *1:%]U>RO)0O]#$1<;/Z>!<)80Q:, M(C&(L_2Q+.1N#R\6@RPL7I&%=N;6_;:R$ ]=1X&HP[E1\:%*)DKM3M$=!SO MD?\C H5 8$=^21-31-S,Q43$E-]R05L.73D"7Z ]QJBU:R/#6D2S%$!XGL7P MYHU('I9.M 4-(G"0&;TEG:AVJY4]R.-7WZ+SD=->:_E>W;@)\^8>CAP ]&.A M\TAP2;O(J$8-)H068_NX:%@)!4.4FUBRCC %.>6M8H@+$;8RETX%/%4P .6XAIJG)C4EP/J@7A:I;XMYO=2CQ M(2_Q4-K(U9:88GX1Q$[$M+.8;S#ADQ)4*4NC3D)94 [/ M#1Z8FNTVI>_M00&))X54!3N4(@W<8"HU< 4J)+QGP+Z,*D3.D2S!>%(IJ-D )S"ECQ##@"TPM M(C:])035HJ'Q^[0^#(,1>,K'0MNF$\[7,R/."ZSI;M;&YJSR(DR(>COJNS]% MX[ME_"150U*K#T \Z_(J?N&QV+G,>J69PX_,;+HX)4=%G44WT5@@ ==AQDF8 MFA;&9CGR/<9WI;2>K$-A\>L$DG?B[+;*Q9?9@%IFCOR/J5-Z+4U)5:NZVQS3 MXKNQ7U^?8UI&R;'FAC"$Y-!#1H!4>D'R\(HS>AWJ/&0WO:3_1?I]J^AR@VN^ M%%SV*]8=$V+5:2"97(^T$Z8VX@AM @BB5%":*)S*XU3J) F0 )E=SO!V!@'_+ M-\=JC1L.0BFM5KBE [I!IG$30+)D5%Z8C 6)U@FR=USBJS/_CNP93K>QCBH2 M\&Y1V>Y4!"J3B\$YB^\>P3<%^C4+@T>0"][IQR!4B)>]\&58-N>94$P@J4-& M!?Q#:I2H7NB4G](54;$4C&,YQ.FD%T:"/J H/=\B,)?%8T]I %6 LQ7*=M%5 M;INWK>'W8P3 G: R\0T4SX\#7H1D&NPN3QWE'V?IB:OO^[N/>2 M+%\BJOG RU1F@GW.H;#G7 ^D+WBKG$5-#85&+7DH"%VOY"]7E1D\YI:/(NH?PEF+8B2Z((K)7#:BV(2S22U\5W M1?F1@O.C+Q+95@JW*XXD]!\S-X]6Y242-RZDUJ-0]F MBZO%L%T,(ZD.GSI\B;-S4J[#08@Z+]S!5Y&:O9A\$)+UEIZ!D!.EQ+EH5+D@61^KQ6(7JUEN/FG-O@2_R#-.Y>]IJL.6/&+Y*QII$W@G8ZX/9-]B M9W8Z<\-;JZCI>KLY3M_/Q=,X$F&M()JACP4661ABO0^,DW F@S\FSJR\ML/O M_* DC?F]%U'8/;EQCZ)$N4/FTRU0/.P3OP[LE^,B0X6'(GCPL;IHXVMS++#KN/V.E_]BRNTXX\P81K;#K]Y1"4SX MOR9/9 WES$L64OXF M2#F6\[1KN7*[VX $@1E]C%]P>FHQABO'[AR:WZQ#T^ M$1=@/#EM&O#G( )=*6_I<^R3<">6?#>MUX"'N$%SZV,@5#9P0KW\IMW*7#CB MXJ"4W!7=/Y$%7:6T/:]UCG'^JTPPOXE.4 M3HVTLJF11/0]67_+#Q_1G'.QFJ_X4+Z(FAF$@;C\E^O#*F? #T+R=^3H\5JI MO3?6U,%Q"JLJ+2HMAY2FHJSLT1ZER_C( U*V6$V,?JKFI])R'4JF&9&OL=WG MM3H=1DQ37(OV"_TQ7XJ6:D;X+!/]I*$"B6P;?4^3'._VR8(_Z$!2_T-N:HMC M);O%Z811NC9H,DR+QZE'*+ M68J>I#FGX%#*D2W]0"0O]["H?@CE"_AH@N%6Q'E?G>XNJ7\Q%S$"R;"28-'@ M_MJX['4:L6EEEQZ->".(-Z'\%QL5 MSJL ESM4.IZRPR!)4RZ:BE6E"JGTH2W&+_PS!6";.W7%WSQ!E#@4(#T&GC'C M$2_^;*ZJJL6 0B.JE$/?Y.7CDN2SU(:99%!^+FI#G-;&#<#X_CZZ1#&,6I:Q MY&0$(?E8F:V&D;FKLKMP J4#>16A.]S_DS5'4K* M@3FV]$\YPCXV\WDN5I07X(/^+_.]^*H7A75=*ZVJD2+U;D.QJS>4N7S'KUX/ M\EGL7^3L1&7^Y93:V92+9_D9.\:W^^FC.^GXE@!."_I2T1$1]XJ+@Z 2G9(P M7;8G3[MY9:0,X6 >A&Q*8)I4Q)]"']0+0@'$"DQF$RCPQ/!2.%8@R]D>"+$) MJ3T>OKRL "63[*[IV&?UAPJVV5*JXY!J(J!2@V Q$4GXF-QO.LW>-E-?NZ^B M."L+ SI+ODCQ_1G/W@C#GXIC8W]IQXS0\L2%YZ/KZ:2*HF0%:W"#G^VS.-!%91SM<> MVW0DRAQ(X-2@RKV\$:JH#,_&\'U>B$G@PGE-':62#V>,M&4HS3#N^]"P M2FI6,B;]+< ZBW?&8PKS MFIN,&)\FS8F>8KY*"O\@'R>05!;3_WNZH)&<;;975JK8;([VDN19F84IBDBW M&B?%.OVX.RD2$(B8_\8#"$FE+N &2\9Z* ,MPO*!6IP(JY%ZHN$F]CUFX3-C M*=LNN080GTL#?M,>BS6F5V;9%IUOHKT&OXY(EQQ1EYN/J =E(C@.NQ20<1F0 MLVG\[CWCP4@%N92W_Z>HEAP4\:TGE*!0) 3;PYF"LO1^I0"QUEU@-5[??7[X?#WX8@RNK[_]]?7A M\]=/QNVW+Y^O/]_<&X.O'XR;^X?/?PX>;NZY%?G:27:-/N((E(#@7]YIP[%' MMH"@6BP8^?:0Z^_/:&M>-(T_/_RG.9W].A"P4F+PN#T?Y_85+?J2$"\^3G$_ MNB/SMCMH:H%1^1"W7;IW]$]2*.Z=^0$5K M1-#GS#+%W*DF&^_364".1#M1?>/,B+[GPL\C%5]"RCBIQ+1^(T-;:)?_ ^0( M,692L,#_DVKT(;WXT;*-Y4J(XW>!@TP![H4I44UR,)ZBJ:Q1_Z_(>A3P:*4! M-EX3E]B;)'@R%BHIWJ05ZP-.2MY.9BLL-O1\FCA>F?9M1@I>H'F2))KM4KZ6 M5BNGS5$'R@SA6_'LN65KV00)B:]:?Y8NE_ MEX3[A]R\W\*A9\TE*<*8ZS$LA,I7KC'T9LE^_Q9:F9?T>[Q.\P&HA7EUT["M M?YS8<)CT3B0GPE]@P\E0Z35C&^^WGT.K8!G9Y0Z]$#R1PZT(>=;W''[.W&)B MU\)V)47+@!]]4'&9X%!%81>#:Q=TK MQ\!/;#8V;G[(9/.W\=@>$937$G]+[#CY-PX5YR07\ 1PE'FLPE4"28G-;B4[ M,E)W9!;O2+8KREWDB%A,NVN>M?MOV2E]H]VWQ&\JS&$D4U\W/T831%(9 UX( MNWW5[?%.M+PLU^G2@(#,"8$!SA*.BG%3F)FR+1GA4*-EL)Z&A**SW-+BMAG@ M6\%>\M"1"%G1WU3C5L+KX\PEF*J"?/G;7L+NYJ9LD/K3V':XMQ-$0T(()_1* M$UDJL927.#&:Q!+-3W[; P(B5#,/RK;FY3J(I?N0D M$,RIL- Q1$6M7'$99N"Y/$P+-KA/01(1<*(*20F5> FFHH>*S+RS&\3)%U$ ML@$=$8F+?1#U?A[2: -IX-R%F9,9;Z<2BG)<1!ZL8@XD"G-QI$/PI^H3%\L?3CDGXG^\2;_HH>6F5K]DP MO,@O([\$,<1 6*P*,*%@1DE+=/2A?*3<,S._DYY(8@V\5G$=E&(=YJ XR;P, M$7O"9L-J%\,2UZM$]96@#&XV,$Q2(">^WY3,)7EU(-H:T:#V MB'['C5])1X>D;A%'6 &O\4VVBAHE M;<* /+15H"F2?(!H[,1CZ^(Y3#DF0;0%RC^-+$E>'BCAJ51"0I8C65H_?RWQ M>A9I^UB&J(FD*#\HYYV1BH)\?2I7$'=1QV,15@\^OP\59:J,\^,8>O7H@$BC-YJRP' H;8Q-:CI@XI M@RN#$PO46+YXK%10/\9A(GS2H48\% */URZ4:Y#EZ>3=,R\0]3&X!@M$#IP[ M+,+>YMW^P-I*KEY*ZSTI3\,9%D]17@ .,35JYH,:3J(Q+V#BF+(@<$F+YB?.IYQ,,>"2./U/Z7+RWHV8ZQ9$0AJ MRDB_:)]A MD$[<+K!_8H(4@6H>(Y?GB65HH#P]4LUX;&Z4Y0P/GH/6CF^1DBQK&]XI1+U% MHLH#[4^YV?]78>_R^C9S*V:XUJ6,!P^A5CYO]5O =WEFL]'BG))"$ZC& H99 MY@C#(+_4$4R^:49K9Y6DU-38@D38DES73VEZB;1T^5M"Z'CV1^.$D0I34N)M M5]G7*2BGDN_[G9=N27!^H'X#=#L<4;]>B5TH6 LR!*2B3;O_*"$!8^E 1"@N MM U-%TW-!^8B6[.DTF/!@I7DU0LC^HU 7B+XT+9X;(@KD>I$BP3D<2\)O8C MEK3A=]&0J%,/"QB.1*7&N#P$N&6\Q,LSXB1,&DMX;ZH\)9$YZ5^!)^3Y1GR] M3%81I-X9<83N5WSU:]JK6QZ 95:,M%L>'2R(EJ;*5ZI:B=]_:2XEYQ;Y\9T? MBEE$1FTLK;+F3 J_'8*NFG'LY(0+$N:U,L&83*P:S!L?:])+?&.LV,BE"T*? MN8_AA&7]CSB;NE@S*KY#(:_0U1;J-*P89/)+*V-*"CR\V(& @U0XI#(Q3,TW M'4K3B-@KB 0S9%(]<2DBW/%"6X4[TO$^'G1PX#G"M"'@?UL8!)97L.5://T M]1ME]3),%<1^>\ R.>HDE^>S(F_-R;1LR=V-G7JN'0JC.^?C9]G($$^Y"CR5W9!&(G0CU)?P>-'7!]/]=K^*)IB!'1$H;/Z6?8:>[H(>WJN ML:<:>WITV-/5$T@)QHX!G73+SLX@.F\'=P_&Y\_&MX??;^Z,SU\_?KO[<_#P M^=O7-;%[NY]X);C=Y0JG8%9KPWPW>\-"5/#ZPVW&]B5&3C@K +&4XBO M$;_E@<.=E<#AS;6$L6O,<3D"_(5KQ5@Z&J58C(OLIIM_1YBA20"3HF;87QRE M=2M+2Z$U]!G!(GYLWW:+I 6;4Q9 H[YQYI2;=T\\-R4!$*)8 MFV%&X<3C^$HUEHM-.&&$:!:W@7S3S33525^EBU\J+&[U%FPP,7TF\BU3L-6! M"G#,-HU[_ \?)IFU@/#-L*A.&,;UG6-XB2C S"]5 QV_LY *)OOV$\==N>S1 M"[G3HY0D K)9#+Y"$XIFX6")7T3XJ +QE6TI^EBRAK?R] MVQ!M2#\D:2R@)L,2<6XX"=2;D M;JB;EDO(EX7)=YJ5;HJX[11I/769)MJG3 MH5N%0(\]A/'2AM$13X5^QKS-25K>*:(8(R46QKF*Z:HF-_-<(9F(KU]RQ2^5 M$6);8T?X >":D[%<;/ULG/!9_\)3WC'R'X=O._T^$%;\W^FB,[O(!-K",) D M:/>[?-[K5U]:1+K8S7$1,>_DNND-,49K>]8>S1ZY.KXVR4;IM\ .8&SC'R>= MU<[X9K/(QR X[Y[Q'87'9C\, H42'[0:!O[O-)[^56_9UF1-L71EY%]36R%V M0EF?6)[8FGAG'K"2N^%&=-J!KA!:0RJ;?>[9>K1I]Y=L[>X8J'/<#'11.0,- M1!P?8O=&8B13NO#/CW-/JN)U*Z? L($*89LJ-EF-'3L$=K%+B^& M85$ /."> 5G/A3[B83BN70G''?>)UQ824ZG&2JH>&A98W:92/U9P'_E66,:$ M5SQ4N#'QW^K+>5?%+)&! *RP45OH9W8O7XF-.H@>HR T9$&@,T-\$%\@6;*O MJB1N%>!?JBI4,VCO;[DXQ[>HNH*R:+M5%2?OSCO[76S1.TL1N5/)5F[YEJ+5 MO5G^RLMN)?MZV3SOK5A[[T7O;"6JX.JJ'D+:/M!65J-OMWS+!D)*3MS^]_6J MO6(:%6SK>B;)ZPJ;)<5C$ZLD^:S;TH;)_F2CW=*&R;[?4IDM;'V;%9'Z\K("*1 8GMD:NIL7_+PQ"Y7C7P59$Y4C+D5B.K MI?2,5TC>[FV;G=)RZZA)K2:S7UI58F+MC.]V;H;5:ZMW.IEM%>LN)U.)[;RA3<; MEA:$[PL(9D5DJL$C&U/!NMV M>F+7ALUVLSF(R;J%UMJ[T5I_K54O,2PQFX-J+0$$K@FYKK)6W/ZOC^R\5LN1 MWNQ]H1UYSHLNUI[+VJ7'TY+GYL?$'MKA'GOPQ.4Y_X"DDY -MTV\UV"1?UJK/FK.-_N^?Q$B3]S_AGNUK$HI)?LNH&^_$__8MV MN]-M3L)IS!YG 1N=P1>Q7?0OC$L.? N;]\");!IG8!Z_-4]_;OMM^W1A*>^1^BJ$C >1R2L;WHOB0]U61]Z5O3?]H>FR MX.S;#X?-90.A3JO5H3DN5@5'QJF=5\*IO5US*N?2MYW3A8VQ-+_E^&TOW+;/ MH[,L>_7+L)?<]G:WW\JPD_%VD]9KJSGLJG6^FL-.=\YB!S7;VJUV\_/7^VU8 M;<&V?Z;R5,;_>W_WQ?CL\I)LQ@=O%%&)O;=(Y?S'EL=XFQ=S-L,RY:*V.A6@ M%L5'/YBA"=OK)$VRL @#O28T'WE!/H256E:ZY9HZ'TN\[_3%[.']]>][5!=[ MFKBZ)0_F#\_UIG.0ZI"YV/7-N!]-V-1\6;)V/?CRXO;IVG1&V$T0?GY9F_7A MYN.+VZP/V"C4?GE[]67P_L7MU1=SR)S@9>W3[=W-B]NG6][]:8\:L-U:<0=Q M"<&NJ<+O+=:U*+:CWO+FL"&O3Z"N558Z-F5O81'B [JT%]A.=:E;I^OLIHH- M*'5V+^1K=9U=76=7U]DME:;!@N4FUE@/,KF:^\^?O@X>_KJ[N5^SN.[!R77P M">RAUOJM$M7AA0:I67BJ(O[*EO?\BU@!UC=%&VDKPOZFIJ@?27W?J0LEK_,I MFJN()K)#-C&=L6PW3R569.MZ[/\7N? E&B\I*JG;[;W&I-O4MBR'E03Y](KL MN[5&Z+>6C<#K&D[-LUM[QF3#-]&\YW?/0;H#.3Z[(U'O>3?V;:U(L I;K)=6 M!Q\2W!;V2PD/LI"DAT5(E.P;E*G7W%6[F&S !&+-:9B3BHI/$$[I1Z0N1<69 M_HNP6PFA?R!BOHWOJVBZT+G3QOG6KF M.J:IUX^Y5F+[=%W^^5PW&O7 M6R_+1]"<^G(Y]3!3_R]L9%'D*.0 LIK3CFGJ]>,TQ5%(> OY;3 :>=C*VWTL MXS=L<3MLSQE-!3/P97#_<)9 (A9B1/:*_5@$]2A828S]N%PS]0\__O8S[<=_ M_/;S))PZ[_[C_P-02P$"% ,4 " #O2(A7E38R2DX' !;, #0 M @ $ 97A?-335J.0 M?0< !@T - " 7D' !E>%\U-S$Q,C0N:'1M4$L! A0# M% @ [TB(5ZGW9, 2!0 *QD T ( !(0\ &5X7S4W M,3$R-2YH=&U02P$"% ,4 " #O2(A74FM;0% : !I&P % M @ %>% <&5R;6%P:7!E;&]G;S$P<2YJ<&=02P$"% ,4 " #O2(A7 MXUEP_(X3 "3Y0 $0 @ '@+@ <'!I:"TR,#(S,3 S,2YX M&UL4$L! A0#% @ [TB(5]:H*36" M2P #$ & !4 ( !JE( '!P:6@M,C R,S$P,S%?9&5F+GAM M;%!+ 0(4 Q0 ( .](B%?;:; L*FP #+1!0 5 " 5^> M !P<&EH+3(P,C,Q,#,Q7VQA8BYX;6Q02P$"% ,4 " #O2(A7MM=DO9=. M "KN08 %0 @ &\"@$ <'!I:"TR,#(S,3 S,5]P&UL M4$L! A0#% @ [TB(5Z(AAX:@. $ +NL2 !0 ( !AED! K '!P:6@R,#(S,3 S,5\Q,'$N:'1M4$L%!@ * H @ ( %B2 @ $! end

PU],X7!5'.[8;$*.FF!GP&3#=+[F,WTB.A+BXWB M-8W/S.@S3QS74FKS8CH=PJO5VUQ8#_)W\[M@!VXM!9MU#<$6VV]-Y:R]W$^IU#/IZG= M2?.KMR(+6!;%:9#M;OC-.@=QA+J"3!13%&6O:*Y*!7< $2E5%C%S):06EX"1 M^5E1%-]JZDD@"9V-X5\%H.E%G[@0'>9A]R96M_D8I[3.Y:^+9%3.9-&B@?^X MY$#K'HX=+R!3I\%4M$& LZU%L'B-KF#C9.V8,A<%-N2"!>V45V<[5\VEY^D"3LM0DU#^HB?\%S1H6WW4-=GBDBS$QM MC&._"MML,[JF:1Z_T+W&_DR+VQ57R=V-X9=/N:@"W>M\,3'Q) _-% 3<7*K# M-HJU?? NX5CZR:PPN'$GKAYSNS&UL/@^,N\FSTL:?0$%)/Y]![DN B69X@'- MPJY9QO&#>N=KED"-GZZSW]2%NAXC?:9=Q>L$D$=MXL[#I. TX!*-"AT21,,7IB<["C6=U% MM':"QX6R&EH)-H85+ . 3 3H!1EAMUDNSB1>>XUO535IW;KJD M6Y;'17Z<_C/V,\RU16-Z)_Y*#3Q&7SJLK TA%374_%^YU2(!SV,M^#M27*%# MWD450M^22);Y%M4JA!\!"GV'%9;-RCU<@\:($,/2VV&I('F"0T6KXH[%:7&3 M\M.]O_&JWD?HHD%]D]NO'-1 )T%!!'S@/,# =_T@+:(S'"7-'T<=305%W.$R MC50M-4U,9>C8T@'IZRC3PZ=R>N(Z=/NN".SV7C M7NPZ1.'(K'N J_>:!;&.=?!:23B(>YI(OK5LOJYD$;2R?D7_N^3' M"!<[D\AQA5%A)\1!!._(VJ69Q!)ZT60-GK4O_D5@.EJ#S():DYOV@"$>!OD: MNOE:$326T,V[]%$=10J^"O.AU#K;7";A M$0#HUV^MI"/3)8XSSC@/$GBP?5A36GR$#>9'?\]I.C0D>Y$QC*+A@#ZRRT:PLQ,:HWY]1O-+VH7 MQVU5MOD:Z& LR:@=,YWM:7"89S37+"-M@>[-,QJW.UX/R][(S^$/#!Z8;F(\ M54>FSZ!.#3(/')M3PC='')P?RH#?9 M:E^[5/2=5WYDZ%H_G]W8*'B-B1-E/ M7YW),VZ/C595:F=KG/H8#_D$Y'F_N(-S:E6A.9-C2BE/?:=2/XE1AU!.P]\] MLY?O(AK+\X?_97_L\'_\_;+:E?^7 ^=?U C@TXY94=%R':>17"+[1 MF-UZB56! CG 84$$%N 1KS A@(ISKAI#?(:DJ+MN;6$(.,3I\QU+XC"F^4!2 M_? 'V#YMRHEM,]L>,JE!DY]KX)[ZLPU3F8TGG>4S3KSRB"YQ@X><:NB$4^YX M2F?'W!ZP[W-.254VAE263SI^PG+&C%_H95 $5<1$SQ'7-WS"V=8UK;-#K0%. M 'I=1=7;0=9+8C:6;@Z?<$6DV1TWVG:]SV+J@>AGV>,)[3_ RAA$ =+OXU@/ M-9D^B:8Z9UCZS%EQ _F6%1=^"HHR$P'B5V]A4D*UA<]Z'9$QN?R"<#]C8-;N Y2#CR9X"]1DV"6:P= MX^R:B.170!6,DZS9>4!ST=0#WV.Z( VN1"!+:FQ)@R[Y2@@TQ<.V(,&*8TO* M--A M"LTM7L7Q;DPW+\EVXQN8GA&2B/IB(OK'/)0YI"?B-F"A-"A*U[%$*R> MU[&T"\@LJNB="GH'-;VSAMX<<2FYTKOGPZEG2MEGKJTZ+H-]PQ"7P*[IK&=S53!)#90 5.=WOEY*,EWR6.:&]S\\ M/<;%20>"OB$3N*">RGZ0-P<"RN']#^^>OB4U>&\L<$)"ID,7UY[I7'07^,B" M-%^F57T:?F;?TY#&+Y#:D)_OSF4*-;C4R_R1(]@3 6EJVFE>;C1XZ^$A$BB1 M4!<$X/J,IS2V7:?NY?9]8 YTT=1 1S ;:P.L15N,9"IHLUU1#G<"W69R^&INKD MNO!YD=_(QG!00/K+OB90G9K&[94B#N-M('[&95Y$5 MBLV84B#,QO8ZS,)-659'0="\N'U-N6"MXRW'*@3>>:;GN\-&87*(PM:9/!\Z MKQ<)UY5MA$808S,YI 9"#S^43WD]1Y1S8P$\;RPD%T4$FB>H2N M$FL$7@00(T\[(E C%6YDCYSF'=PC&28;$/OG^2KG)A&4*3LIDS?X>K &)O(R M,[@S$^7[X>;\]EXMM!V_QDAB:QKKKXP "B\LDS"=+ &2Q87&)^=!^@NY7:TH MF,KWW CTP.==V\^&*.7,&OTKC9_7W#A>OM",GX:?2\#E,D[*IN+B;5GD19!" MX,LR^D>9%YO34&M#LR$M4214^S7B. 80GDTY X8B.Y+^6L+C/5Q3:)K+6Y[H M?D;>\0N>+ ;JIUGBU)UCAK=C:F0OS7-*J][,'$K],D<_0L'D7%68"_4M*E)7 M$X9M'I5X\$M!C8F(':QP(1*9$36YG*X47S&4?Q1GE$#@9,+RDO\5W"CL@ :K MB@:)I %$3HJ5^ AS',N0;!+M)XK> 0A1A+S[T4]O,$:XE)/:EJ8CN9&@\7:4 MP75,MJKBE(O(ICJQ:%8$<2JZU+!C09'5]CU(R3 KL7%TG7HK*+?;1%3E"9)V ML9&;/26;*M>5//:5V#4Z)^K^,1&V]4M+"S]R6)^FA2*YW]=A;XZW<15[9T$; MY.$7/)5)D+5//NBXVZ;<4T6Y7%"N+?:M"O92UGU/W=JL9-@)-M*7Q?2LUR M(K/*7EZ2?82WLZY0I(S='!AO(.'G8%X?*3\'"$Q-^L&NQE1G;I&ZQU*%+]][ M(E W$RE2@7IHZ=?'>;M2N:3&^#:'9S'ITU1#MNC!E_ MV3*-&D>=N&@T??NJ#.3=L'M@XE03?&UC0;KRQ(%1OO=M"\P6I,%M49<8V)EP M C@CA:;2!S M[+*JX@"OU!J>P(E3840="=*VJ-=HG=4'F$",",P$6]>XB0 (^X^9Y0P*>FO MQW220EXT=*KKB) ,4/<@ZE-YFIG<'H/>_XL@7U\G[/74IXCQ^^-FF^KQ'P?5 MJ:\?4". 6Z>?WXZ3WS8YK+GW12=;T<>VR[4_"[\^DL&[//I3MLE+DJ..0V]P MO(&D1J<.O<-,OQEYO88IK0A[(JMI OIK-5G@M 1 M(XY-">JBM7O%?;NJRLD$R1V3E;8'RNJ/^72JDN\!X4[U<_.VP8+4:/@NNS]J M%[I."FW2.N/)XQ?PRC.N8,.!T4C.4\SJJ&AQ^PDH8@F_9K4B-5"O0<;6@SO3 M%."]2,P0P["15//]M'SR8G0>Y'$X[F&Y?PZSS\K=L#P_*GB'?"BQIP?59R'>(N&PDQ9SQ$->W M&3PY75+YYTW:,H\NUC3\)6]J!R]!0XN(= 6+39L,R8$XH-:3["ML(+DBRH)5 MP6_EP0X\[5[X<^+.,+/D]N8>ZKON]HXUY!I"7N10CJ']5,TM[ZZMK?&;0>#N;W84YY/I+]HG4SM]R6X"6;TWCM>B=O?+]0 )C1^$]9O# MK4S#?V17;P5-.PO8C_[8S/&G .+IY%-@8T#S&UNGN?-.H@2R52$%Q4OFMV#\ M*9?'+:2;]-[XAC] GF;JB>W7 M$@0>:X$6.5A^[W8:9&;C:>?#4!+%9M8LB;ARO!)E1/4MIN%OIYM.:AA.;:@V M&O]*)"(SLJ8T=J+;K-(EKS/6O(SS+H M/(ZJ?RBX=>IT2 ;&@G7EC\7BAW$\NZ,%J@*'1(X([!:DP8^T$20-A@LR@AZ6 MY'XR3S/3F^/5'NIY,Q\:;M 6LGH'1 M^+?OKEEM\U$5A];*=/-KR P1EXVDF"\>:A?Z7*;1,HK$ TZ0[&..\O/=@?J,80G\$"O)V;B M;"8N'OI0O0B03P?.U-U1F=!8DGNI"K%O%SRZY[6U9M?^NUR;;6\]@[[6,^MG M/:Z1-;Z#]611:3\+U-'C5V_084E5]D+C"Z2P],QL_[90)0.P]*B 7^RI?HH. MF1F"=EXXJRD46)=JOBQUV*OO,P,\UC6]*[4\A =&.9M?&Z(F[B-\4LE07I%M.XAB_1V]26GHAO/JS9)W)M2AO8(7M0DZ-60H3FE=BNLZ" 7[7[ 7RC$I1%7(J_.; MQ\OE/4#^%*?QIMQ\2:,L>$V7+T&<5 )SS;+K^ 7Q3!87,#X::%;4Q$1,\06(H$-99*]> [R;R57("KH+(A="Q$H6I%H+ MJ19#VJL1711A/:2U(/(;("\^/FM3D2L0'6. WF5%N."8<"L@5M@B7,1Q)<4Z M*,AKG"2DR.+G9YJ)"*YJ3X2O@G]3;5@=WE7M;%4^<561ST>\EPM5R)RSS&RN M'W^C@< 6>0TY_MS2=:0&8[WF/Y/"L>/P")4M*_XK2,L@VY$?WR\()^]/W@TF MK7T88;UW$W<6)I,]X\B_&?05&3R>SMZOU8CY:LAEW2@1ID=E=>32[+CL,COX MQY59(AJ7Q6E>9 *SK];BL&1;S-2*6*ZXY$TT)3KGL&1/',"RK8BYO&0T (A? MA0.P>Q]&V!,]Q+5@5%S255 FQ3X>H7;[0U4J7?M!:Q)3ID(O,&]602]61DXT MP^LV>=97J"W('KE]8:RY$@!_>N]/[6"_WKA>;]5CF+Y4^1"11/OK\ WH27+? MH3QBE_R>O]P\J#H1T>CJ+81*$GT]N5%SF#Q_5;"\OC6JD#+V\&A@U5.: D/6 MXY]K@<_HE@^EJ6C05\O[?(V20>8<,DKT:#\;*_HS?2L>7VGR0C^QM%BK@H&Q MTUBRI8_!SK 38YGTE+RS8M-KOF53 M7N9:G]M\F>-@9L"C_S9;'CW8A[$O3[M,P7Y)AY_KTMIR\5,'TMI1/=45BSC3NI_I MZS(43@N.XEW&4O[74*1@0O/QBS5G,)K#:O9CXC2,MPG-A_I;F)P:J3E-H& ] M6+H!#GGS:11D44Z^;"/HXP)=[B664DJ;D0V>_KMG&-UF9G/OO!C;1QVG+BL7 M(;CW*^'7,+GU)S%@> \#LVY^S\M%/(+Z"G-[+$GG<2V\IY!.'$'1PFN.<9# M#0%S0>R=R,95L1.@JTMC ==\LA$>4\7E\??>>7KD'NE>(S4([ZZDTSZ9%+I0 ME5E/L_#>L=AB3EUSNKII=0+'7(X,K0*?U,C2Y[,"JE'Y3@[NYQ$VBF1S,$6D MK'+M)'X)48'OQYLB/9.8-T4Z@+DU1<@[T&=^>I\B-T'/(AFD[,18NKOR*8G# M9+=,I1D?B\Z"S2<*-9*[XNA0$V!BZ$8!LLU]-3*DP88( M=,@>'U(A1'Z6* U< MVO&!W) M:X/>"V:.P,YX^)9?S+(Q%X+A#Y \J9[8-N\)R#.RIS5(S,;3S2U+7; -/Z?6 M-,V;%M4?6DJ+N[X]N77+.-2]H%;9S#Q.5VQ#+I@][&M=Z2FB(8WY%W=S/VN M$N,"^&KV94KHR^1,OH??TA24OT(U8I&!\A!== M,%C.=Y_B*$KH59#S@S&%A]HXBH.,GS+OU3?2Z;-AKJ=XJ+;U6X-9G? D<". M''G:$8D>J? C;007Y#W^]NJ2().OLK+#599# M]+^78CAF_ F*H7/SW%5XIRO*+Z,1[ TW>00C-(^C%Y611*-!MP-Z'FQ5]['P MK-=SKQ B80LC[ZX*_+8P8[0VTHBVJA=?O?/(3LO5VWW76:;]$;[Q;,_D#AO. M]F"![+MJ=%T3&LPV>!RU5)_1ZHPI) (N @S0, ML1 ;0U(+A8"NXS<*0%\%- MUIA%#T60%>.64O4%](OW53KR;5$+:TNNBQXA9/K$F6A!?699L5YN./7"(/W( M@O2.[WQ,<_450N\+C%74/[-MA2*@DQH\ ?BD0@!_KS"])$O7BY!F1<#O%5]^ M]_ [F=H8I$$4!X>>:W[R)PF%P#&:[/C7E3^07^(#:2;TD-##Z:_)J RQ5>Y. M]'!-HS+A!L@RS\O-5C24O&;91Y8^7Y9-DW81P)>?[^XR%I4A]&7]4 99D!:4 M#N4"6X" M2',86);5]2H@IG;0E8TWP!TSVI\F\[M.;P152@+"6N0)C\_!D]\ M*M_9PC88@3G878?6==4"6;P(W*[$R=S3K'MP/-K65LQKF^L%/&!Y =%G-^QA MTK+1]'*7_<@Y'O)XH,WI,OBF FFWRL3\* MJLLCOD8,*NS(-*\%$U+0MK1IO5:;;-"+_^ M\[V]?1_YW_@/ZQ_Q_\ 2^$_^%U!+ P04 " #O2(A7MM=DO9=. "KN08 M%0 '!P:6@M,C R,S$P,S%?<')E+GAM;.U]VW+C.++@^T;L/]3V/K.KJ^\U M,7U.R+<*[[I*7MO5O6=?)B@1DCA- 6I>7*7^^@5(ZF*+ !(D 9 0(B:FVC8 M9B820-[SG__Y=9V\>49I%A/\VS?OOOWNFS<(STD4X^5OWWQ^#":/E[>WW[S) M\A!'84(P^NT;3+[YS__X[__MG_\C"#X@C-(P1]&;V?;-TZK $4JOR!J]^;\7 M#W=O@C?OWOWCW7?W']]\?KI\\_UWW_\0O/L^^.Z7(/B/?R8Q_O,?[/]F88;> M4"!P5O[XVS>K/-_\X^W;+U^^?/MUEB;?DG3Y]OOOOOOA[6[T-_5P]M$-=P3[*=@-"]BO&,U^>/?MURSZAE+]S9N*="E) MT -:O&'_?GZXW7\SQL\HRTF:?;M!Z3KOJ5\'\9X][DDG*'DMV]X?ZZ@ M21C'D+2F3$_0W*%EF%3?G'R-LP: ."-48#IE"?:;?WVB6Y ]D9L8T\,1A\GC M;G.RR2S+TW">OP)'<59KLBW";%8>LB(+EF&XJ6B'DCS;_>9 Q/H7_[HDZW6< M5W#@Z/*8JZ[B;)Z0K$C1$^6H"_KI/U\AUFT1HW@VP,'9+849X\4@^-X*#GNF MI]+L)4_:^S%=Q M$NUF+U*R5K^^"(PT],.:R))320_=&:$-@%])JP.ICSIFF$;T!!.9R#!VY"7L M3P 2"I@$[\9* NA5[PHS0.0)TH],=2#9/]\V:B+:=*P?@A3-V8_A?$Z*$N9@ MDQ),_WM>/1?*:I?"DA8T,67HO'+FE3.OM(Q):?F$ODSVA_O^Q=EF-_,JI/=R M=HN/Q\24B^@=E,D4YSZ7]HJ<5^2\(N<5.:_(>47.*W+#4>3Z?^/MJ7??!XLP M3H/G,"F0LB+7.-F"RB: PRMG7CGSRMF8E+,;>I1_9R?Y )I4ZP+-\>J45Z>\ M.N75*:].>77*JU/#4:<4'F][>M*[@'XI3^-YCJ)@'F8K55V)NX %?4D"B]>9 MO,X$CC:DW,.,'O2?Z[^*F*K@#"2%0$/5^>/5I\:/@8\Q]+J4UZ6\+N5U*:]+ M>5UJB+I42W'*FE[U:X#"%,=XF044P"R@4X-L1:FBJ%Y)US&O90%!\LJ65[:\ M.C(F=>2Z/M;W*'UDYUFFXDK'>V7**U->F?+*E%>FO#+EE:GA*%/ A]N&\A21 M>5'^1XBC )4,',1X0>A<]E6X]@1BT"\?ZL$YHB92?MAIZF,/DOJN5>X^B*;EX39)*A&J&\JKFH M^C8]PS&);NCOFO1/Z5AC<#(:P: \&6D QMO#*>2I#]#A9J%M4AX@0PU 67$; M_P@)QQF [_\484K%^63[@#8D?:VF T8:@/$I#7$6L]V3 LD;:@)*^@D19$=_ MU@A-+>Y&$7VYL_H?=CK?<0V%@K&FX&0OW#1](E_XYDSN2%,PWA,JPB3_+]YP M7FGY8%.0EO+^-+U/R7-<58,3PLH9KAW:2WHHTC"YI>+=U_^-MEPP.>/TPT?6 M:X(?\$LNJ&Y!^F.UPH\@!&:X=VJ'X,:K/ M7:]1NJ1$^)"2+_F*;N%([6#NM-G*!/Q7J&4BZ IT.,0)5>TCME25(^ MY1I':8?M%L])2MF\% 7+B^^2)?&E6^&E#IIE '8J?87S/'Y&5$8,ZU,K %HT M7#NT#V@9,]L+SC^%:SYIFX=IA^YQA9)$=KB;!NF';!TFR46143$LXU_9C:.T MP_84?KV-F,5F$5=%9267CV3\V'W2JC 19GQ8$(:)A&Z*B2R>2YQ^UZ1I(&L!K_[HZ[4G1\G/<\ M@S*(=6(/9F'" M.I,'V0JA/ OFU:/ JJ;$) H*'!91S,95)%JA/*8B^AYM>:)CCQ\SF@S9.]R^ MX(R&X+XVE2TF24*^L.V\(>D5*6;YHDCJGB'9 YJC^)E%RC1'\79:PVR!T,,5 M=!^FT[0T1D5EO=]=7C4'-X69MC"J+M5)D:](&O^-(CDFO!EV,;C-L@(._"#P3A?[VC/WI/)S2HHWJ4QUH:I0[W ^I2C,BG1;LF_-R243 M8A5F"Z$M6-ZFPOF1U_SA,TV6(X[_+LWRY=RBP9P-' M]T?G_$B%/O /O)F3KL]X\YPOD"T6+GR!;%\@VUO)O)7,6\E,%LC6^]Y;T^V^ M#V9UO%F0H67Y^W07QJFHX$&6,J_EP:'RJIY7];RJ-R95[[$ZT/NX<[CVIC#3 M*V1>(?,*F5?(O$+F%3*OD U'(5-^PJWI6#\$81U7056/76"%HG(E7,.\5@4 MQZM39Z-.<4"<8G194-9:H_0C:BCR*Q[4 P!/7\AN[8P/ 7]4=U$Z2_,C,9K^ M=& @^L._/H;_)NG^XPT\)!ZD'3Z6X3Q=O "@\>R!QII-.#F)9&MD .APH[!? M5)E/CRSQB55G*)_Q4]Z #K<.>R/+P"<83KJ@P+#ZLV5ELSC[\P+A^6H=IG\* ML8!.LXS+=@^6@)^@TVSCPFHVJJ'Q>H9=#!@T:DQU.L,L!O6U?@*7\&H%SAJO M\7/\&%@RW]92*%X>7MWL^J\B3)[(AQ11P31]6H7X_7=7X3:[#[/\JA _XIW7 MLXY]56>TADUPMRG-'196PAM/<;91S.Y(B+-*?TK#"$UP-,U7*#V"%.Y^Z+26 MV6@Z!MG57>2"3+$-YLRZE,,.LBR*DY'Q SP@7Z!/*A; +QWI'D'<$>4>0 M=P1Y1U!_R$OL6T3)M#1V8H -.D3=?.(*;2!:/6FA0CM,GV;CC8A(0N.5*Y12 MTZ%(1R7%%:K)W=4M=%-7?/F]LE0+RX4K=)0S&GS0T+"S09.X6 ?"*+O *382QE8#2&.0^T[+L/<^X8YMR#J]!:X/./05K) MDBQ(F"QQW*)LD' -\X'/ '!\X//9!#ZW"JJM$Q<^(+),P\V*E:WG!M5*Q^J' M=D>H8Q@XD,-D1H_!I:"O#[&492@ZS 31U[PAAF%M;9\W-#WFLKV)=7^ MB//53D:51?6H3O4^( 2'U#2K^5!+H80)>EJ[#2!V2Z!PIL+)DP0 M@\ DD[&3PZ2):J#&2F^BZFBB:B?W6K-*_13$F Y"01Y^/=38!IJCFB>;MT.) MX/ &J#,W0'DCR<2O+"8;:[8B%F/GVSVO7Z["=$G))E$S@+/,UIBJ M"[I/YG\5<=W\EOUGBL35)<#SK&,C*/8E'CU>S7O\&-@J@N[U[O$)CE[O]GJW MU[M;Y4)*'D#2^KUWA4* [%F($.&*E0+ , K"NBM4\?Y^;[YJ:[Y2T@FM6;!^ M"3+63WL64M(%=/0&X:Q-WVKI.N9M5D"0O+'J;(Q5W:U#7\(TDE14;AQC25^? M+BZ/^/X!)92*T27)\NR17D?H@AV-^W!;$E9FX^IIU?%:+L:/@27;RS6]\\D6 MH4=V'4\WC&F$62[2\8;372CQXCEE\1(>(>3"L6;M1_N3>'Q6)VD:XF5UD5YL M3TYK>74=[B\_R M5M67D\R;4)N^W\%>6A9U2[>5;E/_<%!KZE_\:W+]2I4Y_8-&6ZFWW.XLMY,H M*OV 5)V:WCQ,HG\76+ZK^TFOYRAAU (%VQ*#\!=WUY, M'_B -/RYAX_>D!3%2WJY/Y/D.<9+]A8*VM("AO< U%V((ZK*7!3T3:,?R6[Q M'9J%F%"^QG+&5UL#Y\+<;&@;VV14G!NPGF_&_9?IWG\O MPJ?M*F91Z 4#@P@HUAP:OAS'Q^MWN;I,V6D>+G*#]U2Z-/"A&X!0&I3M5?3_!A^C=?% MNA%@[M_U0Q5C,51-?]<.U0,SQG,JC9[\S0PT7 HU_%5_9=8YPO1")9]QMD'S M>!&CB%]'5C;65[T=FH@@@^_D"+\ I#<$1#S8:KH5D.K\XC&6T<\EM,=>^B]&+S MN8,_T"*\TB MV?#Q!C6.'P-+89D4H@W)PN1#2HI-=HOG2<$,E Q0@O,8%U0C MV*"J;T\F9[!NJUDH)+9_YX\;!TYP='!5'/8LN]@J(2BX/\Q^W"A=[U-"@%F3[(U7R0:^]P_DXU!?9Q)N0* M&)TWS!JL0B;F#_0!Q#Z ^#4Y? #QCB)N!Q WFQ:)Q,;G M:^9T+S_: BOI$. M,I(K]!+8$(BJSNX*3016-Z)BZ7*%'EQ)D<#E,U=H85AG)CV;-<:^#7*O"%%R MH(V='O"0?IDKP97\#O'EW2+^PA7"R%E$;!%PA0Z0UTSD(W0_"T@0L#%V)A J MC(*PF;%ONAAO?A#3V/&&'/KV@6=@ZOPP;.H &PWRHU!OPT3'K Y4P;?N>Q-M'E+"T+ MQ7*%_<3FXCZS], 4^V78%)/SCG+$B2O,I.BK,7$1_3ILBOF.X"KN3UZU!E>4 M6H"I$YR4[@I- ]47UF=KFC_>DC6F#7JBMK;B62@+&A7M,%^*=6-J0:N970B M%3S=V17!&D2N'FM#N'+=2TWAW&HZKMS>4@HH%39RY::6NT@Z\\5 3X;0.0;( M;G5%NP3Z[($%AAE3;8I_,,U\( MDP."[QVDMP+EK+A:42&1F1_O&/D%]27%0_LHU5BD[+1^#)D5G;D3IXL[@I=4 M U^S8R4$1U58!2KIPNWSTVJN8P7T?+4B7ZU(;[4B MI;HJ!R_S'?NDI.>Y9+AUV,5=YZ43QEO?8?P86*I043XZEP27,!1APN*\!"= M-MPZ[,(3()_@ZP3X9EABM='GLOM<=I_+[G/9P5W?93(C49?07*&-5)H@ZF^W M*[21&VAALMC8@Z)4> 5NIG*%*C[7[37./M?-.;SA5R+,0#-V_E<1+=J:Q\?N M^C:9QS7PJ!#OZE5T]79PT]AS_/X8Y"F%K$BW098?P05U //F6W $BT'Q#F&M M#N'A^PJ]CV%D/@9OY]8#YU-]2Y:MK66- ,2#O7W>V^>]??X\[?.^Y(57E=JJ M2BJOBSW=Z"?Z+V85(>A?Z?++(*[KV&2!JIH$6,J"Q@2&RBM/6I6G#T6RN,59 MD91[7%8EX0>M2@?W -#_(I03?J>,0@\R'Q+^J+-0*"4AC)<$9R2)(PI 5')- MC)J:ST"&6H&5V]U0/E@[O-,OF(J_JWC#(6CCW\U!Q24=9\1X30/CQ\"2<>-C MC$E*7Y)=:3QX:SZ%F48Q>D )NQ%813=Q2T3^0&OP"AMD\@=:@_$H ,J(+V$NU':*F9XR=)AW> M9P*7JERADCAT4:#XC=W8++PX0/:8L5/ >QQ 1;:!!L+S">]LJ_B,G5GZ?UC. M,^03;J(=.\= Q3,M]XR/AQV)"*;HY%4V6-KP^&;Q$L<+UI8B#\)Y62F9.40W M]"3,Z0'8_P?<\:NZHE'_;SO@O!M8JQOX:'M:;]2Q,[2/]8R:5"=[@.YK,"1^ M'?D$H_!_0E^.($H)IO\YKRRA)7S;ZO]E'IZVRQC%]14,DHV2C!X?Y#XFVJF8 M:%;J&/U54!BNGU6/J])G_&*2( ED@^N^<4,&#?3#(V?VA6LP: MLI3Y('TX5-XZ8]PZ ]XAF5E&<:O-!=J&RV5*2M,$S;8C99^S*BK=H>(N&MV@< M4X+SK)%.$J,K;"(GCC:1TIKF_G- M>@P3LO?D$604$R2^!E%09AE*,_:*?&* MJYK7YUL!Z%5[.ZJ]XF:!M/Q6#&!<-?Y 2/0E3A*XJLN=X557K[H.&<[S4UU5 MKR"OQ7HMUFNQ7HOU6JR*HB81B*PI7K]4Y9%G(:540$=O$,["]FY3Z'+F52TU MR+R.94?'@NX22+E2VW+C6M4U97ZR1>@1I<\Q:\% +YP+!NOE$:B3)*F[,C ; M6.E:^!M%]RB-"1V7Y=P^P<:^9XEZS>"7M2.GE4%L,L_C9\J[("V@OX5MTF/V M&NP'>E&F\3Q'48G !$>O?O,9QWDG2FGYI+<2>"O!D.$\/RL!^"WUY@%O'O#F M 6\>\.8!%?. 5MG<%=92(6@_4CR8<@,OBZ-,.8U2O353UZ\!"E,YBCN?T#KF* MDX)>((IVAU:K>9."-RD,&<[S,RF [RQO4O F!6]2\"8%;U)0,BFTEY*LJ6CO MO@N2LC5V.Y6,-]U"-S4A)%[ETJIRU4W6*:_O6Z^7#=?OXG 6)_1['\.\2&7^ MSCZ6Z@&9QV)#N99Q5IAC2DI)749'9SD+8F&>W-"]Z\,&0XS\^\P+UCO#G!FQ.\ M.<&;$[PY@6].T* FN,(^CFP?Z[_*N+G,*' *^1+*:_D;4#>!C1D.,_0!B2]I+PQR!N#O#'(&X.\ M,4@EMJ2E:&1/V?HQR%.J&Q;IMLIC;*EK29:QH&J!(/*:EB5-2[([,$4+M,7& M]:RG&J8R^>=B>YF$F8)N!9KM]2FO3PT9SC/4IV1WD5>GO#KEU2FO3GEU2D6= M4I"&K*E0WP>S(J-;EF5!AI;E[U.T(6G9SC5">1@G69!3H(LP452KVBQM7M5J M#Z57O[2J7Y_H[CR1RALKS;&P+O-[$7< \IT7<0<@X@Y6^X6_3M8$W!^" ML&J,G+$>?BA^9E!VE&R5UC0OTK8 S\NR9R?+\D"MC_3'\-\DO2PH\ZWI[=,( M6N/(=F(I!Y@I1KN%/R+VM28XN(-Z .#I"]ECQH> /ZJ[J)NE^9&82W\Z<#7] MX5\OB=_ V.)!VN'[%*[1*Q9IO!! 8XTJ#I/Z#GW87Z&-# =;AGV3R@' T[' M6E(N&V'Y1/"\2)G HH+!898M7)*$?&&1[#>$LG$QRQ=%<@HI#R709$N8'2<- MW=6E2QMN'NAPZ[ W7DCP"4;AOZ1LC5@+T#+-)L[^O$!XOEJ'Z9]"+*#3+..R MW8,EX"?H--NX/-'OJZ'Q>H9=#.Y1RGX1+M$[* I'4RS=32<@,9JJ'8W3&68Q MJ$6?$[B$X@=PEE%,:JT%+P\O5G;]%U57GLB'%%%%)GU:A?C]=U?A-KL/L_RJ M$(M8G=>SCGU5U+N&37 W*,T=%E;"LZ8XVRAFMWC._+7H"E7_WF*PM :9&F [ M%^(T7Z'T( Q/RN:?PF,&F&'6@Q-2+JD;Q5/!7@B[<*SWDWD_F?>3>3^9.O(2 M(QI1LE^-G1A@O9ZH:]&NT :BW)$6.HC#]&G6X45$$MHP7*&4FBI .LK:KE!- M[LUOH6*Y$NK0*TNU4,!=H:.#<*'!0!)F^-V6P=&GE%M1WIPZ6 M3HKQ>_I$^^%2J%4XH#YA=G"$4@A(U_=:#XXJ;>*TK"7J_!BDE4;/DE;($L?L M@QT3=936-)^HTP(\GZBC-5&'E??/;JN7)Z*7[6=,-Y'R RN)1]@)FN?9A'YX M'F_"\G=)@N9LURK[^2M8^UBRUWR:(>8AM4HKJ=,,/R"R3,/-*IZ'"3>M1#I6 M/[0[:AW#P,G5D8XU&A7T,8ZB!%V'F3CLBC?,1UPY4.KM,Y[%]$Z*CIQ^E\)\ M'/X$9TNK^9@Q'S/68%R47^9$Z8T:.TU@[@G@$^B"EP+$(+!7=NSD,&F%'J@_ MPENAVYI^>E:RSM!8#1?:K%F(?@IBMJTHR,.O*.MH&H(M9MXFI *7-P:=7=66 MSMK<]6+!;KYG=%NRV5/XE34>9)=DC(L8+^NF>P3SM&?X KY"H6-V@"AF_4%F M!7U!K\,4T\W.I@OZVJ)XB1^+619'<9C&)XT0U!?P=@)O)S@7.X%)O6>TJI_7 M>[B">_OW^"RUG+9/D#6MY^> :A]AG):_(8L@(7B9T.V.@K!,FNBH![5=WKQF MU U2KRN=G:[$ ?6>L=P]9;G+$(=1>)='_,J.LK%F:Y?5C0HF\[^*."N#167-FD]0OE"H4 M">209\\5]1_ , I"F2M4\?YP;Q=J8^HP+RQ:,Y'\4G4MG864[ %S_".H9S2<$5O MU.R!'L#TN0P.NBGR(D6W65:PE#H.)LKK6%*=K^E=0[8(/5*H8E9\AP)YP6Z# MRZ/+X!,I[Q84E?N3/1&*SO'?6?@4Y;S_0OE#E8CT-WJ=RZ+]>Z[1KXHLHVSR M<,CMXA52-PN$;4JS,S7=,%"$2272\4:AI^<^3^,Y)7\)CQ!RX5BSAJI&3IJD M:8B7Y;MRL3T,N0^W[%U7TSBCG+%#,KKEL@J/KKYNX]B7>-F>\&?NN+4-E M1[P^T('Y'HD/*!>,=\'T82EL5L>)R0?3 M%5+*;= "VX/QU#PU;<,"4=:=VHC%_%YBVRB64SX^V(+>7 MM7"5]T&$9GG'V!3Q(N8#42#P=(@Z*6O=IMO*,EC_<# *UK_XU^3ZE2'P] \: M(TY\_,LN_F421>69H[+\].9A$OV[R/+R%6*'>XJ?*%M-%[O L^JP\G-P.B_6 M1UU0%FD:A_@C2?-EN$3,YLJ'6#ZZ#Y 0JVN37(3XS^GB^J_M)K^<(9;Z*8 + M-J4'X*YO+Z8/?$ :_MS#1^LLS@?T3)+G&"_9V]/@[D(<4;'UHJ!O M)4LVO<5W5 K#A/(M9N&92+!?JG/[ +=75)2+\YMP'B?T,J[-(%33 MH5^K%)^=';&A+DO;9?2C<3#L/*!-DJ>@3SLH9<-Q45QX@LLQ$%S^SF@-4+"E8+0+6 M 5(?"9J_IYTP5V@1%DE^D$=V0@=[0J'8"A?1CL)-_)5J5U3/6B)&]I3>P"6M M'U 9^M]\,;981SLB'XJ0V3 150O73,:' OYZ7K^ $KRDF[F^HII073SO8T@O M7KK3*+O^6F=5?*)2X6JRIH+J/'PI?30BT7'-7A$\%F@?Z=&CI+W8'H21$!>+ M<,Z P\L=P?G23>?%>@G4/Z+;'0GQ?9@RPO*AALUP-(> RH5[="7,)DN]IQ7 M';I2HOZ',BL"YNAIR5Z0XP%PO:0:U''-F.]%^+1=Q2P* MO6!@$(%#3624OJC?\ZX-)M#5[*#4BKV@JVE%2?WT#^70EY\^OO,!0$OF] #> MH]B\TO#G/CY:O=%3*N[A>+G*#]W@Z?O"3',"@-2F:F_(\C'\RE2+1H"Y?](X-\2"S MJ<W[*3T"?$ZVW(&6T+]CC;D"Q,/J2DV.S+-M'?SJORWU3EWE7_9LZR M.*I_X"'7NR!T?F MU3QK^.0L/'X7)C M\BP/,3L,C7$%T&FVL&D*KZEN]PN2IN0+0P3"A/]#155\RTK0L)$7E;5>+/FLY?""O9P M;(;G8BLIOZHP0/]&74 *PW]O)79UU&K3G$B4ABC5S 6AY,0Y1BA,9.DS8"%ND@Q;A" M+T'L E'U8+I"$T'T#^&-7'F(P*405VAAV)MS? ;[<'^.?1ODT9E$*9!W M[/202+C+(V)E J# * MTG?&ONEBO/G)5&/'&W+HVR? Z:L5.J2K ) -X\*U(!4K^ZQUIJ\"ZE XI[^: MX@/E&8GA5;D6A;[2K4-A"9L1D6/G-GOVAPZ%[O15S!T:2\M2P%QA/[&YN,^J M06"*_3)LBLEY1SDFQ!5F4O35F+B(?ATVQ8""NCC!?NSL W9_\FI+NZ+4 DR= MX!*ZKM $\$#U55W*%>U?#\D:JU>YHO9V(AFH&ILKVF"_E.K&5 /7,CJ1"EYV MS17!&D2N'FM4NG+=2TWAW-K_KMS>4@HHM6%PY::6NT@Z\\5 3X;0.0:HLN6* M=@FX4:&-4\ D>3]LDOB&H2VZAJE5\])GCA@T@<2E=?2IXX,EREV';&A]+]!@ MR=6V7)L^(6ZPI&KBK%:IV/I$O<'1KJ^F1?J4\Q&13+4]DCX5?3Q$4VU@HT\( M'P_-=#5JTB?-NTS;]H+N^%6!?KIKP2GFCFYP!RBN J>+V^H!L"(4G%SNJ >- M5QBP2AB<7N[H"'U55H73;OPZ0@\%>^#D&K]^H%AK!DZ:\6L!^UM+M0@EG$CC M%_MWH^#E=>'4<45P[]3:&FYT=45 ;]M1&TXIAP1SI6J_< HY)*(K57:&4\@= MJ5RQP#N<1.,7Q+7T4H83.N.VG BN2.#MV^2 Z>62V*Y6C%U.(WJ=T=G&#N MB.? WF$'TOSS[0EEZ ?^K/Y6_HG!]X 6;]B_GQ]N]\C$^)GN!4FS;S=4W@TW M\09].R?KM[NNWA6ELAW8 2;TX+_[+DB8ZI %457S-LA?%KWEM0=77:?",XO7 MFP3M4&W$M![_8I_TH%:!A$IS!(J^@1=?SM#\VR5Y?ANAN 2!_<>AW#*O/FY2 M,;*X?&Z+4M!R:#@U)8X $I;5Z-1!?C(KKE94+659MJ62RN\8+QG: S G"N!T M<:P?\D%3FM@#H%>HLBS>XMI'1)51]G,9(Y6]KH<.F=*N[KPB>'L#1'.W#Z6Y M9@'F-M)3G6X$[ >60$ 6188F67;2MU)E:J_@5M:ZE]^KK.7WE7NJ"5#II%Y! M5*OX?@RG8JWXSH7])2W=&RNLU?!**K#IA*JIWMTQ5/QZ>!JA.LG$.8*(4Y50 M-S1<"G%+S!MJ$G%<_N>.?9*)YOS&%K+AUF$7-KJ03[#?XE7<.$LTQ59SUV-_ M%GMMIHO/S0\58(:U%I$4E%V(0%$YY 2G0#;<.NS"4R"?8*'=Z$N!X&7,!A0<(YOW&6S<5=?&:YF%-E()DJC+:Z[01EXQ 29_PV-7ATT/"*_ #>JN4,4WGWB- MLV\^X1S>\"L19I@;._^KB!9M'7GPL(5AT\A$8X6!EVGSM9?:Y7,H>.?TW2C# M)%!;=[:^EVBD=.HA9V'\86-=7/?Z+NEQD8EC,P>39_QY&^T=(F BN9.W 71; M@"GC3HZ&DCL$3!]W\C-4?.]@\KB3H*'@U8<+C>,7JY4L;M)X4^8JD\=\H.ORI MRFED[0&: &^SCH]&L!F-H %.,0M4&_^.BP!HMB6>>:HOUQ+*QU58EG?-6<%- M#CK\"3 ,QN7E]+$B/E;$MME^X-X=;[9OH5^T?!3.S7[?A_!U1K9\]3?:G@K[ M$_T7LV*;]*]T^640U_GJG9.=U5>VH-:V!=(KN'H3HID!+'M*0YQ5%\$3FI:,*"!X M[T-!IJC""I9P_(1815VR1G3FFZW5?OXV#39BEK6"=ET<8PY4BM\H'6X&V4 M@>0#K<%;RK%AU;?J8GO\%T'*M?H"WE'BTS:]*=Z;XMMEFS0+YP0@(;N O537 M(VI:UMAITN$5(G#9P14JB5/S!&KOV!U8PHL#9)4:.P6\%U/V=*J82<\G?;&M M>#]V9NG_83G/E$:X@7KL' ,5S[3<,S[?T[W D0Z&XG,+'NGJASW#P)'>'"]G ME!4*\0:<4?9G;WZ>,TP)[<,%8R.B:WXDX03[7V,1GCU RPLTHO72X&LUP27\7^L70Z*/M.ETO)GUJ.9=3F9 M+JK(0!8S>4/2I_#K'W&^8K!1WGKE8^AUS1XB>EX$./X>)@6J7_;&%![Y:/UE MQ=&>#R;1OXLL+YL\<LMU9,H@ M-5Q"F/FL45H>O1!"+N".,PIM+4U1TA+,NTM 8^W%87&@;1QCML WY[IB -7] M[*M:#/-C ^H$1^5/E0'L<$1*R8(*$QQT]7YL,'2C1SP)LRQ>Q/-7(+.NB)/I MY>T]FU)B5JYS3[(\+?,^V* +A-$BSDM1C5*%HOF!\C!;^ (M*)7:T5<_4 '^ MU"6:+#98*%2 C_JV"E*N:1#EW1Y7061W) M\O\O7HNI7&1:KV0>XQ>,(D+HQ4!;]V@'B.W/M05^GU[(. MPA]1OB*1,-0>,M66V--G09 AH/#"WG<@,@09SE0@6B./!@2]E6<27]TB8D$N MZ#E'%"'*!&S]&7O(3VNZ*-A&G0LUA-((HF<[%S\')0Y0/G(N?@Q\P-JY4YR[ MD)I[\(B\>6-_JT0(-N O]+F.G1W4:-$I\T4Y,F?@%PC "^31>&C!AX$U=1L9" M4-<)F%+P_B[#I]3 HG;@,J]S^H LT 9.&K@^,'S^5/ ;P@GDA)[0.48"3B]E MV7_8;Z8L1,Q&(_KM7VLK_QO,XBM<&MJ:ZVK?5$3_XER^0X66)C#DH_L#J>RH&TWQ9R:7T5.4LSN]:OWY>G=4 MI_4 )'.QL@X+Y8EK N?%@."'/C^=Y?&Z+)=1NWD;/\\;U , AXO'R!5TC);A M3QO.#ZK8E!F*+JG"0;61M*S2<'H8(5,L59]M FG?850!C4,W6_S>"B*CC0$_ M^S*HIB^),XGS.^LZJG+/K_/% ,?@_!Z2P:*=5.H+"5H%34'NVNY*F,&1]^% #P;$[[/YL*?L7"IV=3-_=YYLB\>IJQW4 @01^^ +>DN8M:5TL M:>TO)6\L\\8R;RP;A+%LX)%A/)G!.=8 44'U;==G/1MTD!-/E+.FWOY2534N MDU:"^5%06O7[@&S*'UC&Q3/3R]LIN1V_8E[5[05@K_#:47@[;AY([>V%04Q5 MR?T2IM$3_:*@R%WC&+,57>GI)EN$R@#::4D^84$IZ7CSA1!/(GLG*7T'EU78 M_?8PY#[MSP2Z7UH,OJRZ$;)3-J-+9K2,<;,Z5[CQP!TQ=>#W8$-X#Q M>!(PF>'591UFXQY#2,"$AQ>K'4-8LRV_/5R!::DR#IG>0]%?AA_*3@&@3Q+C MJ]HTKBV<'?RE(86T*P+MP]JUAK6WUHBK0O.WF&YF48K)9?'OIU6(3]^Y:?JP M+PB>50T@T.MC_X%^,6E/W35ZF(G-!D.T"TC%,>"@T' MQL]=H>QC"T2VB(?],U .*Y&JSR"*=B,.7=H2V[1?'SE@K\FD)/]7$9+'R.[,XG M4BI%:( ; P=M;%D?9[(K \T6X:%.,:MP/*6![CP( MAMAX%T,V]7I!- 3:#S<\>2 Q)><1M;P>"S621H_2_4)C>Q,]M46M<8U!8?J+7X-,7E#RCCP3G*YZOONTR@\*U MXV8.>A]+X$C!BY12G3XXW)[HM[ILW(OYP\/N"^F"VV'V<#"KRL)0?62ZN(FS M>9@P2-L@*5S(/KZ?J<:6S4F!65_[LG?W9,U^4D&5MX:MMA9W% *$IE06IU([ M7JH^^-#IEAY^*'@0 :#56H&=@M=06($B0=OE!HY]3QL^DKV6B VJRXP 6Y$@ MH;S.&/#EBA:*JPP95Q5AH_V"0Z2 HOC1:BU;8@@'3 YJDM$^!M['P'>)@6]O M6/21[^<3^>X[H \Z.O<9I3,RS#"Y_L02YQA)2+>NMB-] ;%C9S: [JXOG'5T MK"9U@NB+1W6 T3@ZIH;PT1'S5Z.M7U^TIRMLU62HT1"8.7;&.G60Z8NW=(2U MFDR>^@(BQ\I9IWYEC9&,KG!6@^L 3C7W!7MN. :<2.4+^^*#CM7,BQZB>, M"$ZS46=2*7D&X31Q5W#G4<1TCLN[X[I2\S!;!5FQ7H?IECG 7;(MJX!?_F+HY$"?%NO:2FX]P1 &*JR M:;Z6IH\CZBF.2-,EZJ.,?)21CS(:1)318$MQM1)@]'',8.FD*@WHBR$:K(FS M5]G0GJ7AQR!/49@5]/6MZE>G:%.D\U49Z,O>8[)>$US_K:4]H]KMTGY)E&JX;FW>U7T"K4:,+S\%,%]VY MVF03BY.]$'2-DT\8 /SR!B22*5[M-J]V:X"3GJZ3C:Z"M/=ESZ:+UVVWG\C% M$7MPV_#UNKA1NCS55U-5%7%.!:5T7XOLDF3Y/4I+L#F8JTZWAUM-_!I$"#K- M,\[&6-3IV?(FH3,R" +O% M_Q'GJ\N",N :I9,L0_D$1[R:.%V6:A?J D>G_NX5 MVI LSK-W0-!?3^L5S+L0LUX?%P6]M^G]FMWB.S0+,<%/".,R3)W/&:IS^_ MI&2.4)3=T*=EEU9P0]+RU:A+VU]_1>D\SLH6)F5?AP>4L(OHB1PUX2B?CZK3 M2:.?0-]GC)J@)O,R*#[[1'*4W9$09Q3:ZD#3#7M Q G]\I*] MTD7VNN/D*SM57\N:I47T;WJ2RJUD>T3?J'F.GJ\[DM'?,WM_LP^BGU0=?F,J>,RR\CKAT4?CI\836TF130IV,5S%&;VZPN1# M2HH-G7'%-8/9*7])R7=?E;!6BI$)GBN9Q M>7#I?R>HM#E0L6]-TCS^N_P]%U7Y5$O!Y=7IF"Z.3\P4ZT@DT/@E:P7@[].8 MRC.;,-E)QAS7!@9X_ MT#2\KYZMG19!F;UL3W:D-_!1@:]A<6,X0%+>%T2I2.=9NBSYOU)B%;A&I%_NY0V!:,'G^)P6S>B^N@Y"MZ(TP71[]NL:TJBPZ($L_T M)2*IR@8?S1D.X^ZM!I?A)L[#1&*=4%_ -G[L9G\-H_#! RXPH"T\M$"]7*'Y MG]G>FG:P!,'155C,,M[W*=I0H62G^EU_95U.T>XU%TIE[1:SM^4Y8HF,,EFM M<939I@L$+RD4ZRLTRR5V8-%0JS +@Z[%@XW"3?>XR0P,/_SP!2S9@N 2EZM M]@L- =_;TH/>84<;%AC6CC8 V&Y' 0L- =\&5XT:G@T+#&M'U?U>[1DQ3/G=EC)*,9'/NQ#E-1T<5G&T)=> M;0Z"\HFVS"P[R)Y(35K*=93/\BTSJK.P#F8RW; A$M3D"UA#\2@*X19G1O /Q-:;^0-7SO8HPRRFBEZP> 5N-X:] _A@D])1I%>DF.6+(MF9A?FH2*<8 MKK5U"'$Z#G 2;@ALDF$\-O4K.%U ;ESN>%M/Y#% I96'*?4 X/=C;0%>A@9> ML%AU*DLQ.Y7(E=X\V%=F4X.7\BH5SV]8[+E$CX%,\6GN37 6FTTE4X;)CG*W M>$'2=96L(B&[VFRCF'W&,WIGH^@!/2-=A@=U*XE.R3;.9<\SF4F>2R"*]PC>^14LW;!=!E+\S.-A4J4NYH-A010HXQS M4L\IGD?4Z.JPUDXY<+9: M+JMSY@.AP-8V,4J#&/:2%9_,/V,M:"&D)"#Q4X.0Y1P91?F'3HE1[0C79_4W M?6:QT9!3?IPYJ>GZQ!X': =/$M<@XXR-C&V+(H))][.SI!.](NW3]<&$_>5\ M7^E6B#D./8-M8^8=$5_T5/A.R8#NF*5:Q_:BIE+6I4L,V_*_W0 MLGWQ!U<<#9W>%W Q$%>B7#K0@7."[_AYU-KMLX,XL8JT@V=$:G@UQD\^M1JQ MCGFS^^= ?EJK*^]#/S3KHV:>8P[HGIX2]7HQ^BRU8^),,VUG-!AO!R=R*W)L M^PIZ&@RV(V3E+!173#-SVY?.O8L@N^*LJVO MVI5K/$K)Q&:'(WU^_"$:9UJ5\7#%(J.*_ NE1%#\V14+?B?ZB!N9N&*6[T"B MSO5(#S0<1*MDN#L6ZMT\7=56'5S * MQYAM>Q:FK(=ZMNLS+RG')1MN%?:+,(OG0,#+L98JDKZ&Y2I.BM.FPY+1EF#_ M@#"]@1*6&QFM8QRS[:>B-JKCV3@X &>9Q20E65;E)?.@/HRP5(7]D.C#S'^7 ME59!F>&@5EP@*@2@(S'H^BNE+15JJ":4;DMYG+WY+-B=E 5I=A(E!V>-7[1* MP[V:(F^$)!IMIYU??4SJU$,AY-S15CK;5##5 ,E;W+P>;JL0ZXL4.P[,+\;8 M:])P@&&2YVD\*W(6_OI$E Y]ZW6,8KN/J*P9A+#O32 MD] PTA;%F:N;0>*N:EYD"_&[4 AZS]0O%Q1S6OR3"^*)?I4L+)ITT6MCU4.]J.0 M$0XBBJM8XG4.E"?@B51NI34&CF>]/%OJ2- 7-+ M1Q>KQKR*H3.2T-'N2@HK3$G385!VRF;4,X%:D+[1F:%/)SP'&D-=8Z[(PK"[ M !:)J^]T6VE&(T5:0*#&B%]])W-T].'$%0\L^X-.HP"LJ-00/Z,@+@6#(&&2 M0;_)( K?&4INB#+(/E5D,*DB1SM7";ME\5U^U)1@AJ6(, %$'2)3>UIU*)38 MNR/O65\I^L!HH4R;K]B,V&Q Y;393G;HAK+#LQ&]^_*1Y!!-U^=L!:KS\"FM M?B2E\C2^+*C(@N?;IY0B146!JK%9^5-2"3DGB"H2KY^/#89N^^UNK(4AB^'N M;>&A!AQ;@6^T(:V[ OKT%#1PA8296J[B0O#N.*,*VFZ8#W3T@8X^T'$0@8Y# M-/7Q'E_G^$%(A;Y%*U=XJ$>Z *G=E["O@7^M1O@8W8C>55:WXO2T[(5FFXLK M$$9,#N?<1@G>T%#[BOJ]WM&?48Z0/>^HWY\1ZKFVLT3#T-:,VJ4E2?J@. M&;E@0%X>P2A.X(=-ME1]:_(E3*,G^L4&AA2.,5P<8E]UGG')1\3B>#C0"L>: MM60V[O_MK/E]/0U\Y:< M7@'W=AP[=IR>-A%DQ>F584Q9.NAN1"PC(7Y&CVA>I&4SG^NOS,N"HBJC>;TI MJN,U79PD/JQ)P8T"[75M7_'>\8KWI<^D[KQ2M:PL$]%>^IQ.59A>0A(X"#4<37[F&LO_VHG+6.@Y5_'9= Q(Y1Y*^OY6%E] M[/"@+4&#+9(ZT.(50XPR[D4B<2J4LA.+0>4:5T(?@7;9_@T0^@(:ATC OE7G M\RH=(]#.P810+I;[F\V)=E!!=(7KXYW$))?WO!-4Y=E0 M3//X[_+W]RDK@YQO66A43O]V_5<1;P0FU[Z6MU7RY*+:QD>VBW?LDPQF?C2T M;+AUV(6!PO()1N$_ODWNXG 6)_1ZXX#>.-:2.;L1EBI]E7=,(%/L].,$49\S MVG8G5)4=@$T: AXLX; -*J?S+&+SP.PWT\7G#)5B @B35W,L]?"KTA\K0NYH M&Z-FH4AICGDL#ARAA A@FNER4LU"P\56DKRD,',8&)4-I%21>3%I&'CPF[.+ MIEAZ3[@@,1X1"E0*,WVXBD^DZN+@UZ"&>E__^?CZI8HK45<37:&-BI1 .ES^ MKM!+'C2A+'>Y$A6@R$HJ1E572"3G'IB1S15ZJ-S,"GJF*[EZRN0!:Z^N4,A$ M&-]8XF0&&,8WQ) -%5."AGO69EE%8$B5+K?6&<;RJ5A\G+N0A)2!>X7TQ>,- MEFU 'C]]D7:#C;Y6\IGH"\ ;XGE2\?'I"\ ;$65X+D,P<<;09[@3A093F_1@ M__U2Q\:'56Q\]>N WE?K+ AQ%$1Q-F<1W0'%IX>(Q&Z?LQF'V ?D/OK03D&+ MOG91,<2O#Y:Q$(7T*EWFJH;R@0)YC](Y+"X)OLA0\'Q [(CL[NPGNDOOU/$4 M+&(Q?J;UCK9=9CBXPG>U[3+>%^]]\?WXXCN^%]X#?SX>>)]M[\WT'4Q@JJ^; MP#GCLKJ$QQ=%/3"8 GJM_@.S4),\!/"&&490OR<6-6Y?8!+\)+I&%=HEM?4 M^!CF+^I^4$@^D31?32CAXGF('] S29[9548OO$8T.JYIJX7-O+R$L_MPRV1* M<0Z8>+ 5N!_0',7/#)I/*(=!+YIB&@?Z/$=5\8^G\"O*I B(Q]N _BA(# 0] M?[P-Z!_#A,)!UNLXR^C["<) /,=6H.4?+>5M51^7\/SQF"' ^;I'I@C>YD[31J&6)B._ M'F:5Q@ ,,PPK+K?_CSA?[=2-DD6D0IG"3.L8 2LEJ$PUBM-5;4\Z M;CIS "P)J3BSB%$DO;):KV,%V[VX7-]9W,QJ_@1+NMD)0$>RLP(:S;/,-IQ8 M;Q*R1>BARJD%ZPS@>?;KUTA/C626)1[[0$CT)4YX@O3K/QMN]?%,"4/2+9_9 MFX88A?&():D843[#*Y)$*,V8.,$M""2;9DD*!!_,TX&#@5@BNH,T MCK5/=[#2 )IC& N,LNGBDCZ7L410%0TU"S/!RZ?:T"QG&>%@*W#?D1#O+,@2 MJ)N&#J'"F*^4YE:E-#M8,%,KT$@D'&L>:I5'2S[!<*TJM GCJ.ZU2F6O(]** MC[7"S&%4WW*ONEN[JFC#PF&T-=$>4(30NG2;TB/,;%PDH>LO;W&.4I3EE>*R MLYL*.WYV60/M ;O4TJ%/:H(Q 1G%]OCOPBN M,/4%#.-'E9MX3N%@#@;Q^R(<:QCJG#(PBG;M)EX4@6"Q$5J]@J4UW(BM$ )]""-QB;W2D@4AZ133 *_U-*-;(BW99@ M5=Y,D;^3-]Q6 X3/F&HV"8H.4642/4(^P9TTL%;7DD_J.I^D+E\Z5(U>+>1= M M=27*&2+[#::X'5=A'ZKE!,SDQME5!7*-3?I>3+C/HRHSY_6268V16"B%$] MHDF+@%U7[EDPC0"F1%=N53!-X-E?KMRV8-+P@^CTE4T=*"F4G;SZ"J@.E$)0 M\Y4KE5/A#Y-J)H.^"JH6BH3"[V%10IDK+[6*>"<+A71+PA-@"RQY[B;'J%!' M(99-GYCWC-(9,5WA6X5*\'0>MP0^&'6:$SO ITD>6ZE/R+/V4L-H(TM. MUB?DC8(PK]J4 MVP0-F3CJ]5' ='KO$IV Y?[@0J2R?&U!"5,5 F1E"%P1CI15LG,Q*\-0/J81 M("5>GV)F6W2$T4BQ5HV#*IJ:C;EE)2Q7+J?6= /5J'+%**U,)5U-)\>CI:G= MZ/QR(0[J:0K.#4#U!:=B$=09"%)8R4%E#4:=[MGZKMS@,"$% M]B^J5^N*1T2-)J!RY1J$[/<5:3!:EHZ8 5,(G/7KBDBM1A[5P@ON7,A*QZQ+ MGP.G8D#4Z"8O=>!4'(@:<50KN1Y(9:ZK6=ET]<<@1<\(TSLS17.RQ.6+L_M= M%LRV^[_/F>&B9=_[CE\QVN6L/X!]MS.MW<[J]H#3Q4.U%3?TO#9YD>@=7KFV M67@6_5]TVO.FM_5Z0.MQ@U@AC'Q['V_H1QZW&5,I6'(;*(T^9Z4BN"GRCRA?D8@/.A/ARN)_L"R!*)BGD_31Y0^Q_.F4I>R8:9@+&6# MZO-9XXT.&FNZ@B6#1EA&L'&,X5IU75^$'E;RU>PA+&RH&276VMKGRZ(O)U;.[RIKS M^=UW0<*"F+,@*S:;I/Q+F 3S,%L%BX1\"6*\('2UVA!1QF@$.=E-:N>+[O>C MYEW3.N#WGFJMGNKCQ)GI+(F7Y>9D?-D MG77 7[*B=Y^;=Y^/2[L,S+^4-7A M7*&+"8OO:(W>WN+;1 T%==&Y4P(F#-0LX-PA$E((HCXZYT@24J0WK8DR[M[1P1KV71Z2,'RO@RMO@R OBW8(D5/@'2S+1KXZVY0 M"E;]5S.L8?#JOINL29K'?Y>'%H -8+994SD#ZI*R",\ZOOO[ZYQK*R9Q :#\ M@69-BRNZH67A+ F\_('>=.M YM-C,4NJVXN5P.#!^6+02=V5<[(RB]XJ;SP^ M'^.Q"2/86"P]B^91*K!K&6W6!Z( M*&(1#4R3<50P ]7#YVF$$ M>_1?V?S.Z#/W-_P=02P,$% @ [TB(5Z(A MAX:@. $ +NL2 !0 !P<&EH,C R,S$P,S%?,3!Q+FAT;>R];7?B.-(__'X_ MA6YF]]KN>[^9H]@B>,?8C&W283_]7[(-&&([ MQLBV#-5G9P.VD275KQY4*E5]F=L+#;TN--WZI32W[>75Y\\_?OSX]*/^R3"? M/TO=;O?S*WNFY#YT99+9WH.O3Z;F/%JK5EN?Z=W-@^R&HFZ?W7_.O;EY5,>J M;.T_:1'YT[/Q\MFY17]3J_O;54.[4/^LZI:-=9ELG[>4H)'19Z7/__?M_E&> MDP7>/*R^VA7ZZKT?;+JBZIJJD_^[?KC_;)M8MV:&N<"V:NBT+:E9J78J=6G[ M4OKH'^$3RN[Z7AD\FJCWU:J5:JTBU3:-K*R*O5Z2W23.L/7DM+*YPSK9KE0E M7R0PG0_4SO[\86]IQ4]XW/-PK3T$)&X=P)&H6]-(.Q MP^[L0><-4?:1PVX_86N+'-4R&C6I'84U]XD]R-N!D&^ZD+=WJ%3?1V7E$,OV M?*4KQ%2,!=G[]#=>TA>F2;1Y75P MBYN[^^VJ<@BF5'GO0?(JSX.?9'?VNV&L=-L,ZX5[<[]M60EI6E;V'J3<\8SQ M,I!MV(V]AQ7;/.#Z/6S0VY_9;4_(2)6:5.K]!7V9$ZSTT%\0^F*KMD9ZC*H; MHOTN5?_\1)7$E\_N/>>Q_Z]205^)3DQL$P4]K='4!>\M!2^:&*:--51!4NUS MV^D>ZE[5I2NIBB;?4*7B-K$@-D:LDQ7RYTI]^:5T8^@VT>W*E':PA&3WVR\E MF[S:GUTE];GWY?.FJU^>#&6-+'NM46Z9T8^KK%>LS,=V/JJ(0 MO?<7]ID^,5HM:$]D=[2O]@/3O\KO;,J8"JA*[D>IZHA$'3/)0#GP:J!36JQO MZ/R86!O2B7_]C:Q+2*60\DF12O!CO2K]UY4:4JWVY?->-_ATZX$\JQ93:O:( MW@GKU<%3O0F3&)4)%1EH2%]JZHXVI##ZU:#&!!5^97I=_L2YQ_T%T17ZGWVG MX><2 MQ56"G-]W:\BKQ?:%=+Y50[FCUZQ2[W_KJ;Z+#_EZMX;5[KJ7O[^>+MYOR<7K_J:9OQ@2NW.H')I]63/5EI?=F2Q M]4!DHK[@)XUX5"@AUE'ZZ_H^"O35HJ(8=D4ALKK 5 9Y'ZB K=1+O6:[L1G- MIO?O#*<1.!S/Z,E[."VI=M1PFJU67.I0O#W.L4D.AW5C+!:&_F@;\A\3;([- M1YNIE']B;45V/_$&4XT]F.'HCLJY3U7IR.&TXU*G&,/IQ*+.>P-Q[EO]E3TW M3*HKE23@:E->J9:IXCER!-U8!!%X!.TJ1QH,+6N5K/>4N=OE;O-( +5K'#L_ M7MELD<&4>88CD#@"Z*3I[U#L'*L\Z=/?Y(1G""!IB;!ULI<.V/P MAN.,)&'WI6KWR,Z?('QX=[Y^5->[(7JYVJ9=__U.U:D=07&P,QLLUQR<8,N^ M79'^JVI5@IX:_+G"VM3X2@='3?3I'.O=ZBU>6][OOI'%$S%YF#';66H=-4O' MR>;NH7;9&+:=?TY7A'\Y0+E_1E[RR4%F;1W<)9@B>GT[\:P M;&NH.RX^NI UO^NRL5AJA-K;S)7$7F/U=5N5U25VKFD:<=[LRKJ2CTKUJK0O M:-@^P95"Y3==N?KZ'F/%6I>:M5A2Y3T-XER\QA;K^6))=,LA7=\TL?Y,V-KZ M>KU[9(+7[%+_!S:5\9(]:'UEOA4Z/^YHOYJ&E0G@Z?CKP>-_0\MS'7^0B,Q^ M_)0C9D2U5VSAHRN#UZ7J,O]V2KC/1A@C2Q3YW4JMZO]X0WE6M>^PK&JJO79$ M%54&AO9"#8Y[52?6R##M>=]I$&]DU?X$W9(G>ZA;MNEXFJ;$7.RQ=*W9B&#I MXQU>$NNYU/9_S&(047*I>//E;IT0;55 M'?=TL4!O7:]4UP$[U._)$Z:M3XE.QV81$CRD>^>>:SZ2>VH&$S:L\6PCE*7] M$78Z49(W=(A!K%?K!JWVTAESN-Y\._Z-)O4XK>6!-9!-*_7(GQV01Q*Y2)1G_5]1O4LJ7UNW&=HMRGGZ>]4 MXEZO!\_KI?VX>K)41<6F2JQ:U/K'A8:A/].%TX*]Q_/4?L-41*LV_?G@5=96 M;,;]4F._GTF614WF.0Q?/H8*[19;+=8Z_H\!TW.#=4R'KW^C?7[&SV1DV"'P MV/^Q-^RUL^&Q1\^6M#\VA3Y1H\[:JRAX76$PJ1"]U+NEIC![U__\](JK M/]?J952K-D)WM0+A$^5A/'; 4>O>6S(CCJ'J\H=CO-)U3V**'F=/^_TNOS\P M"\(9S#=55Q>K110_CY=LDY?A[ZTDWR=<5TIB0A_36_S*L;=1$JA>/09#C6HK M>(G7V5\41P-DO^O47J,F7W*&;P?#8V88MDX1R\(%KJ@.>/ZE1/3*RG+G9M:9 M*8UVO=FL8*4^JS0Z3[4*;C1(I567JM690FK23"KUZ)J+"BIBH1>(6J9(72R8GTC%FKMONWE[S_GFWPHW&7?0U2ZQZ'<6JG-E M.8$I=+*0$U!U-7=BTY@4K6PB$SZ]6E2'NK=95,,O)4ME"\ 2;7^_#?>%>R]Q MOEO&RG2_.H%G5QX1G?%,5]GVF$A,Y;R6!468WP]_VM]\/ M?]S;7-IO?>D8[)MOEHU-FPG.WJZ'F]_M[FV[J>P>=4:P>X5[9_-]\Y+/>W.Q MG1N&76=BW-7*IOV%X^_UCH]ST\3FWN8[:R)PKC<,3T?2%F""W6@HN[?K MU+8A[\ZQ^Z(@KU2:+6/.W;9O)DL,6O=BU*WKO:&*$ M^2ORI\LA\#N9 /_-W 1(=L'FIA9_;FKFBE5OTPDI*KUK M41MY9XS'&&.IYR[I8X[TR^? EV^G?]M'$7 ,-!:+QJGP\0/1V+[8A.J_]92= M07$7BM;UVG_'B&![%I)L8$,6F'A@"V;FN4N!N +8=*F,<6/"-G+-$/O9/:@4,&>2]\#Q_D\/=AE>7C@% M)!O8204F'M@[67G@N!*W!LE)4B16C>\9^WC$ A/F#(@()DPAR08F3(&)!R9, M-B9,.L05:Q.1WQC?)EZ&0ZEINA./RB#-]2CVT40&2^^"B0\6XD61&RS+"R0Z M6*19;2**! H!+-G\YT8%6S<#[R3/H^9@L^;DGB&![%I)L8$,6F'A@"V;F MG4R!N +8=*F,<6/"-G=$O>X<8WO4>RCB0R6W@43'RS$BR(W6)87 M2'2P2#/T3@H#"@$LV?SG1@5;-P/O),^CYF"SYN2=S)Z(8'L6DFQ@0Q:8>& + M9N:=3(&X MATJ8QQ8\)VMB8L'-A->9T2]RAVC>_Y_*.)#);>!1,?+,2+(C=8 MEA=(=+!(,_1.9@\*%>RY]#UPG(^:@UV6AP**YH'C-<:W-89!$ E;;9SW@JT&JW3Q3SCR3I-Z'*?#VNP".!N(7"A.WI1F M<%+F/!!K,RG>TF[W7?G/RK+9)W>XYR+?+=.^.AAVJ7=X\6#LH0@HI#;9KX:1 M1B8F@-5EPXIS?J0 NX.N$XT5'>?(L(EU;V#=ZNO*G:IC75;UYP%X'%?AAT#H"D& M:(1:X4Q,@[9BKR<:%6%T IFD7;)Q7:^WN+C'ND)O7:]4.AWZLS74[\D3U@U] M2G2=6!81W#D78XREWG*ISJ_BCO0R! I@0RAL""4W[@W]V2;FXI8\V5LPN-*7 MW%-SC(R?-/49LQU#P?5(T$@\DD>.YS)D -"Y^/R\TE67R).52;;D63B+)M+S MFJ ?-[_?W-E\9[\/715+S8I48T@),KTF3L'*K$;6R4ZI.:X,FOM4EFT M $3%!9%'RGC+/H?4'+?%VV"1%PHY^YO9/$\6!Q2%OJ'V .V,Z=@+#ZKUQ_7Z MFNCR?('-/QQ(/&(Z!]XNR8ALMK@#?K;U%-VL+-M8L$#7@V?$ALI[,[%#2>"4 MG&Y"1G+35(/B5#+/'K2_?\/_,8 MBZ3=!.+MULF VUUXXN&LG#ET\Y.WHD W:'DX_6%L+P# "[Q$?$O(,^2DFI^3 MW",OH 0NB4SJ8EU:T;,\>RK82C[O]C<,XG2MR>&JMM#G?Y.T+U# M!H2@@>\PN#<#I^,^QA3Z#SY&S>5E>*\!E@!+ ?W3 $N I4#K.)"6 $N!?,RQ M;,O')9%5K-GKB;IDI[?7EDT6[)#WC4$-??V9 UZ_6_2G0WVYHM-JSPVE:/AU MUB/QYBDC5+M>LJ.F^X+M5( X0/S,;5Z .$#\S.UG@#A '&QQ+A ?KVS >(88 M?SO?8(T#R 'D8(\#R 'D8)$#R"\5Y-EGY_HWP>:;[%PKV[SZ]^:G1R7F>EO$ MX"LQGDV\G*LRUAQL?U,512,#;-GB@C>T][L=E,-A\,1$*GE!]I+4 WEXD8=G MLG>IY:6UNUY1P4,LJR__N5(M=9MV:$+,!:92D]Q@'2OXWA94 6QS @6/PY.Z M8:-)AU:;R>5 JS O1O\'-I5MM";+4F^JLDV4 A3RV.NZOX1?P!@N8[4.Q#RC M52D0\XQ67T#,@JPR0LW/?0H.%DO-6!/BC'V\9%9"(:D8.@[AC<^P8RQ I\PY MCO^9BFA="$0ME$Y4@9(%<;& E2*&;HO@&"!*7IS"=)/48>EJ:U7_QQN3**I] MAV55HQWRB/1B:"^J_GS/7$DCP[3G_05]DXS%IM?;H7ANK_<&E);"VDQR#(5U M^.B)"@O(FQ)Y?=[- XJ=NAB06'-2V_\1B)>B,>E-KA7?]G]A465:%!XHJY_8UMIPOET;T=U_MU"+>S*); MFGAO*I.WO!G4(2UV=M\^4$H4Q8G:PAJ;V[[RGY5ELX>87E;&^I28B_%L2'MJ$LMVZ]H DXFO>?:" M*/T$]\:4F.S ]P7@^SUE"'Q?"+[GHUR![PO!]Z?Z97^_)\]8&SAC='[@?T2_ M-[ ^H<-0B>AIP;-G/86H5P>3Y[TS>@HORG$,Z"HPNO*7;F_CTJH-5EL6H'C) M4#PJFLX!#"]%NRW< 1N@X@<.[878 <6*$G\G,9:5&K\/==E8D.T2Y!IKU)HG MCW-"[+ZN[)8?MZHE:P8[=VQ=K^F7I6%A[:MIK)86;4);*71"V#/T/:J^HNL# MVB$G$;];]> >T\9TY7JE:NQ)^IM[\H1U@ZY@='8>D0B^RY?--'D(BSM9Z=FX M#!H<;5P':0 Z -T[IJ\?=N^8OOY'.3CT#A%Z2Y[L(06^N6*#<;UT5-(_XV'U=HP>%!*/]+RPL:#J._D T\KV3@,.IS62NK_J#\V+/L--T M(?LJ(E(MT9Y"INMZ+BF-^H/;-QF-5,MHU*0V1>7MYO?)\AH%+#GO#).HS_K^ M0LWS3P4H]NUS;E/.T]\MIO-V.6N(J3^NGBQ54;&I$DL2$U/OKETC9N;T#:-0 M>R+Y!!?>^P%0!"AFZ=;)52K6 (KI0K$&4A&@>!E0/$4J;@W/P==)J.%)[R4S M/.D*IA6R.\H-UX/G]=+V3S? F0N<0^8U/3=%R[.F;D "\